diff options
-rw-r--r-- | src/opts/SkBlurImage_opts_neon.cpp | 8 | ||||
-rw-r--r-- | src/opts/SkBlurImage_opts_neon.h | 13 | ||||
-rw-r--r-- | src/opts/opts_check_arm.cpp | 17 |
3 files changed, 34 insertions, 4 deletions
diff --git a/src/opts/SkBlurImage_opts_neon.cpp b/src/opts/SkBlurImage_opts_neon.cpp index a1d9cc18ac..14907ea1d2 100644 --- a/src/opts/SkBlurImage_opts_neon.cpp +++ b/src/opts/SkBlurImage_opts_neon.cpp @@ -92,10 +92,10 @@ void SkBoxBlur_NEON(const SkPMColor* src, int srcStride, SkPMColor* dst, int ker } // namespace -bool SkBoxBlurGetPlatformProcs(SkBoxBlurProc* boxBlurX, - SkBoxBlurProc* boxBlurY, - SkBoxBlurProc* boxBlurXY, - SkBoxBlurProc* boxBlurYX) { +bool SkBoxBlurGetPlatformProcs_NEON(SkBoxBlurProc* boxBlurX, + SkBoxBlurProc* boxBlurY, + SkBoxBlurProc* boxBlurXY, + SkBoxBlurProc* boxBlurYX) { *boxBlurX = SkBoxBlur_NEON<kX, kX>; *boxBlurY = SkBoxBlur_NEON<kY, kY>; *boxBlurXY = SkBoxBlur_NEON<kX, kY>; diff --git a/src/opts/SkBlurImage_opts_neon.h b/src/opts/SkBlurImage_opts_neon.h new file mode 100644 index 0000000000..7fbe9633e6 --- /dev/null +++ b/src/opts/SkBlurImage_opts_neon.h @@ -0,0 +1,13 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkBlurImage_opts.h" + +bool SkBoxBlurGetPlatformProcs_NEON(SkBoxBlurProc* boxBlurX, + SkBoxBlurProc* boxBlurY, + SkBoxBlurProc* boxBlurXY, + SkBoxBlurProc* boxBlurYX); diff --git a/src/opts/opts_check_arm.cpp b/src/opts/opts_check_arm.cpp index a9afa75b07..a9f7db7cb0 100644 --- a/src/opts/opts_check_arm.cpp +++ b/src/opts/opts_check_arm.cpp @@ -19,6 +19,7 @@ #include "SkUtilsArm.h" #include "SkMorphology_opts.h" #include "SkMorphology_opts_neon.h" +#include "SkBlurImage_opts_neon.h" #if defined(SK_CPU_LENDIAN) && !SK_ARM_NEON_IS_NONE extern "C" void memset16_neon(uint16_t dst[], uint16_t value, int count); @@ -91,3 +92,19 @@ SkMorphologyProc SkMorphologyGetPlatformProc(SkMorphologyProcType type) { } #endif } + +bool SkBoxBlurGetPlatformProcs(SkBoxBlurProc* boxBlurX, + SkBoxBlurProc* boxBlurY, + SkBoxBlurProc* boxBlurXY, + SkBoxBlurProc* boxBlurYX) { +#if SK_ARM_NEON_IS_NONE + return NULL; +#else +#if SK_ARM_NEON_IS_DYNAMIC + if (!sk_cpu_arm_has_neon()) { + return NULL; + } +#endif + return SkBoxBlurGetPlatformProcs_NEON(boxBlurX, boxBlurY, boxBlurXY, boxBlurYX); +#endif +} |