1 /* 2 * Copyright 2012 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 #ifndef SkBlitRow_opts_arm_DEFINED 8 #define SkBlitRow_opts_arm_DEFINED 9 10 #include "SkBlitRow.h" 11 #include "SkUtilsArm.h" 12 13 // Define USE_NEON_CODE to indicate that we need to build NEON routines 14 #define USE_NEON_CODE (!SK_ARM_NEON_IS_NONE) 15 16 // Define USE_ARM_CODE to indicate that we need to build ARM routines 17 #define USE_ARM_CODE (!SK_ARM_NEON_IS_ALWAYS) 18 19 #if USE_NEON_CODE 20 // These are defined in SkBlitRow_opts_arm_neon.cpp 21 extern const SkBlitRow::Proc sk_blitrow_platform_565_procs_arm_neon[]; 22 extern const SkBlitRow::Proc sk_blitrow_platform_4444_procs_arm_neon[]; 23 extern const SkBlitRow::Proc32 sk_blitrow_platform_32_procs_arm_neon[]; 24 25 extern void Color32_arm_neon(SkPMColor* dst, const SkPMColor* src, int count, 26 SkPMColor color); 27 #endif 28 29 #if USE_ARM_CODE 30 // These are defined in SkBlitRow_opts_arm.cpp 31 extern const SkBlitRow::Proc sk_blitrow_platform_565_procs_arm[]; 32 extern const SkBlitRow::Proc sk_blitrow_platform_4444_procs_arm[]; 33 extern const SkBlitRow::Proc32 sk_blitrow_platform_32_procs_arm[]; 34 #endif 35 36 // Defined in SkBlitRow_opts_arm.cpp, used in all cases. 37 extern void S32A_Blend_BlitRow32_arm(SkPMColor* SK_RESTRICT dst, 38 const SkPMColor* SK_RESTRICT src, 39 int count, U8CPU alpha); 40 41 #endif 42