Index: src/opts/opts_check_SSE2.cpp |
diff --git a/src/opts/opts_check_SSE2.cpp b/src/opts/opts_check_SSE2.cpp |
index b40ca9d4b846d3dbdd185f195ecf7f5dd5f31b0e..e419ec1866df60a1175459529b1713708daba654 100644 |
--- a/src/opts/opts_check_SSE2.cpp |
+++ b/src/opts/opts_check_SSE2.cpp |
@@ -12,6 +12,7 @@ |
#include "SkBlitRow.h" |
#include "SkBlitRect_opts_SSE2.h" |
#include "SkBlitRow_opts_SSE2.h" |
+#include "SkBlurImage_opts_SSE2.h" |
#include "SkUtils_opts_SSE2.h" |
#include "SkUtils.h" |
#include "SkMorphology_opts.h" |
@@ -268,6 +269,30 @@ SkMorphologyProc SkMorphologyGetPlatformProc(SkMorphologyProcType type) { |
} |
} |
+SkBoxBlurProc SkBoxBlurGetPlatformProc(SkBlurDirection srcDirection, SkBlurDirection dstDirection) { |
+#ifdef SK_DISABLE_BLUR_DIVISION_OPTIMIZATION |
+ return NULL; |
mtklein
2013/11/08 02:11:03
Line counter in me cries out for:
#ifndef SK_DISA
|
+#else |
+ if (!cachedHasSSE2()) { |
+ return NULL; |
+ } |
+ if (srcDirection == kX_BlurDirection) { |
+ if (dstDirection == kX_BlurDirection) { |
+ return SkBoxBlur_SSE2<kX_BlurDirection, kX_BlurDirection>; |
+ } else if (dstDirection == kY_BlurDirection) { |
+ return SkBoxBlur_SSE2<kX_BlurDirection, kY_BlurDirection>; |
+ } |
+ } else { |
+ if (dstDirection == kX_BlurDirection) { |
+ return SkBoxBlur_SSE2<kY_BlurDirection, kX_BlurDirection>; |
+ } else if (dstDirection == kY_BlurDirection) { |
+ return SkBoxBlur_SSE2<kY_BlurDirection, kY_BlurDirection>; |
+ } |
+ } |
+ return NULL; |
+#endif |
+} |
+ |
SkBlitRow::ColorRectProc PlatformColorRectProcFactory(); // suppress warning |
SkBlitRow::ColorRectProc PlatformColorRectProcFactory() { |