Home | History | Annotate | Download | only in opts
      1 
      2 /*
      3  * Copyright 2012 Google Inc.
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 #include "SkBitmapProcState.h"
      9 #include "SkBitmapProcState_filter.h"
     10 #include "SkColorPriv.h"
     11 #include "SkFilterProc.h"
     12 #include "SkPaint.h"
     13 #include "SkShader.h"   // for tilemodes
     14 #include "SkUtilsArm.h"
     15 
     16 // Required to ensure the table is part of the final binary.
     17 extern const SkBitmapProcState::SampleProc32 gSkBitmapProcStateSample32_neon[];
     18 extern const SkBitmapProcState::SampleProc16 gSkBitmapProcStateSample16_neon[];
     19 
     20 #define   NAME_WRAP(x)  x ## _neon
     21 #include "SkBitmapProcState_filter_neon.h"
     22 #include "SkBitmapProcState_procs.h"
     23 
     24 const SkBitmapProcState::SampleProc32 gSkBitmapProcStateSample32_neon[] = {
     25     S32_opaque_D32_nofilter_DXDY_neon,
     26     S32_alpha_D32_nofilter_DXDY_neon,
     27     S32_opaque_D32_nofilter_DX_neon,
     28     S32_alpha_D32_nofilter_DX_neon,
     29     S32_opaque_D32_filter_DXDY_neon,
     30     S32_alpha_D32_filter_DXDY_neon,
     31     S32_opaque_D32_filter_DX_neon,
     32     S32_alpha_D32_filter_DX_neon,
     33 
     34     S16_opaque_D32_nofilter_DXDY_neon,
     35     S16_alpha_D32_nofilter_DXDY_neon,
     36     S16_opaque_D32_nofilter_DX_neon,
     37     S16_alpha_D32_nofilter_DX_neon,
     38     S16_opaque_D32_filter_DXDY_neon,
     39     S16_alpha_D32_filter_DXDY_neon,
     40     S16_opaque_D32_filter_DX_neon,
     41     S16_alpha_D32_filter_DX_neon,
     42 
     43     SI8_opaque_D32_nofilter_DXDY_neon,
     44     SI8_alpha_D32_nofilter_DXDY_neon,
     45     SI8_opaque_D32_nofilter_DX_neon,
     46     SI8_alpha_D32_nofilter_DX_neon,
     47     SI8_opaque_D32_filter_DXDY_neon,
     48     SI8_alpha_D32_filter_DXDY_neon,
     49     SI8_opaque_D32_filter_DX_neon,
     50     SI8_alpha_D32_filter_DX_neon,
     51 
     52     S4444_opaque_D32_nofilter_DXDY_neon,
     53     S4444_alpha_D32_nofilter_DXDY_neon,
     54     S4444_opaque_D32_nofilter_DX_neon,
     55     S4444_alpha_D32_nofilter_DX_neon,
     56     S4444_opaque_D32_filter_DXDY_neon,
     57     S4444_alpha_D32_filter_DXDY_neon,
     58     S4444_opaque_D32_filter_DX_neon,
     59     S4444_alpha_D32_filter_DX_neon,
     60 
     61     // A8 treats alpha/opauqe the same (equally efficient)
     62     SA8_alpha_D32_nofilter_DXDY_neon,
     63     SA8_alpha_D32_nofilter_DXDY_neon,
     64     SA8_alpha_D32_nofilter_DX_neon,
     65     SA8_alpha_D32_nofilter_DX_neon,
     66     SA8_alpha_D32_filter_DXDY_neon,
     67     SA8_alpha_D32_filter_DXDY_neon,
     68     SA8_alpha_D32_filter_DX_neon,
     69     SA8_alpha_D32_filter_DX_neon
     70 };
     71 
     72 const SkBitmapProcState::SampleProc16 gSkBitmapProcStateSample16_neon[] = {
     73     S32_D16_nofilter_DXDY_neon,
     74     S32_D16_nofilter_DX_neon,
     75     S32_D16_filter_DXDY_neon,
     76     S32_D16_filter_DX_neon,
     77 
     78     S16_D16_nofilter_DXDY_neon,
     79     S16_D16_nofilter_DX_neon,
     80     S16_D16_filter_DXDY_neon,
     81     S16_D16_filter_DX_neon,
     82 
     83     SI8_D16_nofilter_DXDY_neon,
     84     SI8_D16_nofilter_DX_neon,
     85     SI8_D16_filter_DXDY_neon,
     86     SI8_D16_filter_DX_neon,
     87 
     88     // Don't support 4444 -> 565
     89     NULL, NULL, NULL, NULL,
     90     // Don't support A8 -> 565
     91     NULL, NULL, NULL, NULL
     92 };
     93