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