| Index: src/core/SkBlitRow_D32.cpp
|
| diff --git a/src/core/SkBlitRow_D32.cpp b/src/core/SkBlitRow_D32.cpp
|
| index f8cf9a34a9c31e9347f093007f65f3a2074126e0..509eeeb1a060bc5f5a1aadf3a87492a943c14929 100644
|
| --- a/src/core/SkBlitRow_D32.cpp
|
| +++ b/src/core/SkBlitRow_D32.cpp
|
| @@ -12,8 +12,6 @@
|
|
|
| #define UNROLL
|
|
|
| -SkBlitRow::ColorRectProc PlatformColorRectProcFactory();
|
| -
|
| static void S32_Opaque_BlitRow32(SkPMColor* SK_RESTRICT dst,
|
| const SkPMColor* SK_RESTRICT src,
|
| int count, U8CPU alpha) {
|
| @@ -166,84 +164,3 @@ void SkBlitRow::Color32(SkPMColor* SK_RESTRICT dst,
|
| }
|
| }
|
|
|
| -template <size_t N> void assignLoop(SkPMColor* dst, SkPMColor color) {
|
| - for (size_t i = 0; i < N; ++i) {
|
| - *dst++ = color;
|
| - }
|
| -}
|
| -
|
| -static inline void assignLoop(SkPMColor dst[], SkPMColor color, int count) {
|
| - while (count >= 4) {
|
| - *dst++ = color;
|
| - *dst++ = color;
|
| - *dst++ = color;
|
| - *dst++ = color;
|
| - count -= 4;
|
| - }
|
| - if (count >= 2) {
|
| - *dst++ = color;
|
| - *dst++ = color;
|
| - count -= 2;
|
| - }
|
| - if (count > 0) {
|
| - *dst++ = color;
|
| - }
|
| -}
|
| -
|
| -void SkBlitRow::ColorRect32(SkPMColor* dst, int width, int height,
|
| - size_t rowBytes, SkPMColor color) {
|
| - if (width <= 0 || height <= 0 || 0 == color) {
|
| - return;
|
| - }
|
| -
|
| - // Just made up this value, since I saw it once in a SSE2 file.
|
| - // We should consider writing some tests to find the optimimal break-point
|
| - // (or query the Platform proc?)
|
| - static const int MIN_WIDTH_FOR_SCANLINE_PROC = 32;
|
| -
|
| - bool isOpaque = (0xFF == SkGetPackedA32(color));
|
| -
|
| - if (!isOpaque || width >= MIN_WIDTH_FOR_SCANLINE_PROC) {
|
| - SkBlitRow::ColorProc proc = SkBlitRow::ColorProcFactory();
|
| - while (--height >= 0) {
|
| - (*proc)(dst, dst, width, color);
|
| - dst = (SkPMColor*) ((char*)dst + rowBytes);
|
| - }
|
| - } else {
|
| - switch (width) {
|
| - case 1:
|
| - while (--height >= 0) {
|
| - assignLoop<1>(dst, color);
|
| - dst = (SkPMColor*) ((char*)dst + rowBytes);
|
| - }
|
| - break;
|
| - case 2:
|
| - while (--height >= 0) {
|
| - assignLoop<2>(dst, color);
|
| - dst = (SkPMColor*) ((char*)dst + rowBytes);
|
| - }
|
| - break;
|
| - case 3:
|
| - while (--height >= 0) {
|
| - assignLoop<3>(dst, color);
|
| - dst = (SkPMColor*) ((char*)dst + rowBytes);
|
| - }
|
| - break;
|
| - default:
|
| - while (--height >= 0) {
|
| - assignLoop(dst, color, width);
|
| - dst = (SkPMColor*) ((char*)dst + rowBytes);
|
| - }
|
| - break;
|
| - }
|
| - }
|
| -}
|
| -
|
| -SkBlitRow::ColorRectProc SkBlitRow::ColorRectProcFactory() {
|
| - SkBlitRow::ColorRectProc proc = PlatformColorRectProcFactory();
|
| - if (NULL == proc) {
|
| - proc = ColorRect32;
|
| - }
|
| - SkASSERT(proc);
|
| - return proc;
|
| -}
|
|
|