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)14SkBlitMask::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)40SkBlitMask::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)48SkBlitMask::RowProc SkBlitMask::PlatformRowProcs(SkColorType dstCT, 49 SkMask::Format maskFormat, 50 RowFlags flags) { 51 return NULL; 52 } 53