|
1 |
|
2 #include "SkColor.h" |
|
3 #include "SkColorPriv.h" |
|
4 #include "SkBlitMask.h" |
|
5 #include "SkUtilsArm.h" |
|
6 #include "SkBlitMask_opts_arm_neon.h" |
|
7 |
|
8 SkBlitMask::ColorProc SkBlitMask::PlatformColorProcs(SkBitmap::Config dstConfig, |
|
9 SkMask::Format maskFormat, |
|
10 SkColor color) { |
|
11 #if SK_ARM_NEON_IS_NONE |
|
12 return NULL; |
|
13 #else |
|
14 /* ** This has been disabled until we can diagnose and fix the SIGILL generated |
|
15 ** in the NEON code. See http://skbug.com/2067 for details. |
|
16 #if SK_ARM_NEON_IS_DYNAMIC |
|
17 if (!sk_cpu_arm_has_neon()) { |
|
18 return NULL; |
|
19 } |
|
20 #endif |
|
21 if ((SkBitmap::kARGB_8888_Config == dstConfig) && |
|
22 (SkMask::kA8_Format == maskFormat)) { |
|
23 return D32_A8_Factory_neon(color); |
|
24 } |
|
25 */ |
|
26 #endif |
|
27 |
|
28 // We don't need to handle the SkMask::kLCD16_Format case as the default |
|
29 // LCD16 will call us through SkBlitMask::PlatformBlitRowProcs16() |
|
30 |
|
31 return NULL; |
|
32 } |
|
33 |
|
34 SkBlitMask::BlitLCD16RowProc SkBlitMask::PlatformBlitRowProcs16(bool isOpaque) { |
|
35 if (isOpaque) { |
|
36 return SK_ARM_NEON_WRAP(SkBlitLCD16OpaqueRow); |
|
37 } else { |
|
38 return SK_ARM_NEON_WRAP(SkBlitLCD16Row); |
|
39 } |
|
40 } |
|
41 |
|
42 SkBlitMask::RowProc SkBlitMask::PlatformRowProcs(SkBitmap::Config dstConfig, |
|
43 SkMask::Format maskFormat, |
|
44 RowFlags flags) { |
|
45 return NULL; |
|
46 } |