Chromium Code Reviews| 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() { |