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