Index: src/opts/SkBitmapProcState_opts_SSSE3.cpp |
diff --git a/src/opts/SkBitmapProcState_opts_SSSE3.cpp b/src/opts/SkBitmapProcState_opts_SSSE3.cpp |
index 165f1f5ce068ffe560fa85ddbbaf80f93ad0ea68..99bc19216cf68a8fb10295bb108c42bb8e23577e 100644 |
--- a/src/opts/SkBitmapProcState_opts_SSSE3.cpp |
+++ b/src/opts/SkBitmapProcState_opts_SSSE3.cpp |
@@ -6,6 +6,7 @@ |
*/ |
#include "SkBitmapProcState_opts_SSSE3.h" |
+#include "SkColorPriv.h" |
#include "SkPaint.h" |
#include "SkUtils.h" |
@@ -720,17 +721,28 @@ void S32_alpha_D32_filter_DX_SSSE3(const SkBitmapProcState& s, |
} |
void S32_opaque_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s, |
- const uint32_t* xy, |
- int count, uint32_t* colors) { |
+ const uint32_t* xy, |
+ int count, uint32_t* colors) { |
S32_generic_D32_filter_DXDY_SSSE3<false>(s, xy, count, colors); |
} |
void S32_alpha_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s, |
- const uint32_t* xy, |
- int count, uint32_t* colors) { |
+ const uint32_t* xy, |
+ int count, uint32_t* colors) { |
S32_generic_D32_filter_DXDY_SSSE3<true>(s, xy, count, colors); |
} |
+void S32_D16_filter_DXDY_SSSE3(const SkBitmapProcState& s, |
+ const uint32_t* xy, |
+ int count, uint16_t* colors) { |
+ SkASSERT(64 >= count); |
+ SkAutoSTMalloc<64, uint32_t> colors32(count); |
+ S32_generic_D32_filter_DXDY_SSSE3<false>(s, xy, count, colors32); |
+ for(int i = 0; i < count; i++) { |
+ *colors++ = SkPixel32ToPixel16(colors32[i]); |
+ } |
+} |
+ |
#else // SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3 |
void S32_opaque_D32_filter_DX_SSSE3(const SkBitmapProcState& s, |
@@ -746,14 +758,20 @@ void S32_alpha_D32_filter_DX_SSSE3(const SkBitmapProcState& s, |
} |
void S32_opaque_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s, |
- const uint32_t* xy, |
- int count, uint32_t* colors) { |
+ const uint32_t* xy, |
+ int count, uint32_t* colors) { |
sk_throw(); |
} |
void S32_alpha_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s, |
- const uint32_t* xy, |
- int count, uint32_t* colors) { |
+ const uint32_t* xy, |
+ int count, uint32_t* colors) { |
+ sk_throw(); |
+} |
+ |
+void S32_D16_filter_DXDY_SSSE3(const SkBitmapProcState& s, |
+ const uint32_t* xy, |
+ int count, uint16_t* colors) { |
sk_throw(); |
} |