Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / src / opts / SkBlitMask_opts_arm.cpp
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 }