New bitmap filter checkin; this time with less build breakage

BUG=

Review URL: https://codereview.chromium.org/18942002

git-svn-id: http://skia.googlecode.com/svn/trunk@9944 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/opts/opts_check_SSE2.cpp b/src/opts/opts_check_SSE2.cpp
index d23e384..37ce903 100644
--- a/src/opts/opts_check_SSE2.cpp
+++ b/src/opts/opts_check_SSE2.cpp
@@ -7,6 +7,7 @@
 
 #include "SkBitmapProcState_opts_SSE2.h"
 #include "SkBitmapProcState_opts_SSSE3.h"
+#include "SkBitmapFilter_opts_SSE2.h"
 #include "SkBlitMask.h"
 #include "SkBlitRow.h"
 #include "SkBlitRect_opts_SSE2.h"
@@ -14,6 +15,8 @@
 #include "SkUtils_opts_SSE2.h"
 #include "SkUtils.h"
 
+#include "SkRTConf.h"
+
 #if defined(_MSC_VER) && defined(_WIN64)
 #include <intrin.h>
 #endif
@@ -102,6 +105,8 @@
     return gHasSSSE3;
 }
 
+SK_CONF_DECLARE( bool, c_hqfilter_sse, "bitmap.filter.highQualitySSE", false, "Use SSE optimized version of high quality image filters");
+
 void SkBitmapProcState::platformProcs() {
     if (cachedHasSSSE3()) {
 #if !defined(SK_BUILD_FOR_ANDROID)
@@ -142,6 +147,14 @@
         } else if (fMatrixProc == ClampX_ClampY_nofilter_affine) {
             fMatrixProc = ClampX_ClampY_nofilter_affine_SSE2;
         }
+        if (c_hqfilter_sse) {
+            if (fShaderProc32 == highQualityFilter) {
+                fShaderProc32 = highQualityFilter_SSE2;
+            }
+            if (fShaderProc32 == highQualityFilter_ScaleOnly) {
+                fShaderProc32 = highQualityFilter_ScaleOnly_SSE2;
+            }
+        }
     }
 }