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