Home | History | Annotate | Download | only in opts
      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