Home | History | Annotate | Download | only in opts
      1 /*
      2  * Copyright 2012 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      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 
     19 #define   NAME_WRAP(x)  x ## _neon
     20 #include "SkBitmapProcState_filter_neon.h"
     21 #include "SkBitmapProcState_procs.h"
     22 
     23 const SkBitmapProcState::SampleProc32 gSkBitmapProcStateSample32_neon[] = {
     24     S32_opaque_D32_nofilter_DXDY_neon,
     25     S32_alpha_D32_nofilter_DXDY_neon,
     26     S32_opaque_D32_nofilter_DX_neon,
     27     S32_alpha_D32_nofilter_DX_neon,
     28     S32_opaque_D32_filter_DXDY_neon,
     29     S32_alpha_D32_filter_DXDY_neon,
     30     S32_opaque_D32_filter_DX_neon,
     31     S32_alpha_D32_filter_DX_neon,
     32 
     33     S16_opaque_D32_nofilter_DXDY_neon,
     34     S16_alpha_D32_nofilter_DXDY_neon,
     35     S16_opaque_D32_nofilter_DX_neon,
     36     S16_alpha_D32_nofilter_DX_neon,
     37     S16_opaque_D32_filter_DXDY_neon,
     38     S16_alpha_D32_filter_DXDY_neon,
     39     S16_opaque_D32_filter_DX_neon,
     40     S16_alpha_D32_filter_DX_neon,
     41 
     42     SI8_opaque_D32_nofilter_DXDY_neon,
     43     SI8_alpha_D32_nofilter_DXDY_neon,
     44     SI8_opaque_D32_nofilter_DX_neon,
     45     SI8_alpha_D32_nofilter_DX_neon,
     46     SI8_opaque_D32_filter_DXDY_neon,
     47     SI8_alpha_D32_filter_DXDY_neon,
     48     SI8_opaque_D32_filter_DX_neon,
     49     SI8_alpha_D32_filter_DX_neon,
     50 
     51     S4444_opaque_D32_nofilter_DXDY_neon,
     52     S4444_alpha_D32_nofilter_DXDY_neon,
     53     S4444_opaque_D32_nofilter_DX_neon,
     54     S4444_alpha_D32_nofilter_DX_neon,
     55     S4444_opaque_D32_filter_DXDY_neon,
     56     S4444_alpha_D32_filter_DXDY_neon,
     57     S4444_opaque_D32_filter_DX_neon,
     58     S4444_alpha_D32_filter_DX_neon,
     59 
     60     // A8 treats alpha/opauqe the same (equally efficient)
     61     SA8_alpha_D32_nofilter_DXDY_neon,
     62     SA8_alpha_D32_nofilter_DXDY_neon,
     63     SA8_alpha_D32_nofilter_DX_neon,
     64     SA8_alpha_D32_nofilter_DX_neon,
     65     SA8_alpha_D32_filter_DXDY_neon,
     66     SA8_alpha_D32_filter_DXDY_neon,
     67     SA8_alpha_D32_filter_DX_neon,
     68     SA8_alpha_D32_filter_DX_neon,
     69 
     70     // todo: possibly specialize on opaqueness
     71     SG8_alpha_D32_nofilter_DXDY_neon,
     72     SG8_alpha_D32_nofilter_DXDY_neon,
     73     SG8_alpha_D32_nofilter_DX_neon,
     74     SG8_alpha_D32_nofilter_DX_neon,
     75     SG8_alpha_D32_filter_DXDY_neon,
     76     SG8_alpha_D32_filter_DXDY_neon,
     77     SG8_alpha_D32_filter_DX_neon,
     78     SG8_alpha_D32_filter_DX_neon,
     79 };
     80