aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/SkBlitRow_D32.cpp83
-rw-r--r--src/core/SkBlitter_ARGB32.cpp11
-rw-r--r--src/core/SkCoreBlitters.h1
-rw-r--r--src/opts/SkBlitRow_opts_arm.cpp3
-rw-r--r--src/opts/SkBlitRow_opts_mips_dsp.cpp4
-rw-r--r--src/opts/SkBlitRow_opts_none.cpp3
-rw-r--r--src/opts/opts_check_x86.cpp6
7 files changed, 3 insertions, 108 deletions
diff --git a/src/core/SkBlitRow_D32.cpp b/src/core/SkBlitRow_D32.cpp
index f8cf9a34a9..509eeeb1a0 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;
-}
diff --git a/src/core/SkBlitter_ARGB32.cpp b/src/core/SkBlitter_ARGB32.cpp
index f86bc47074..bbad6c7926 100644
--- a/src/core/SkBlitter_ARGB32.cpp
+++ b/src/core/SkBlitter_ARGB32.cpp
@@ -53,7 +53,6 @@ SkARGB32_Blitter::SkARGB32_Blitter(const SkBitmap& device, const SkPaint& paint)
fPMColor = SkPackARGB32(fSrcA, fSrcR, fSrcG, fSrcB);
fColor32Proc = SkBlitRow::ColorProcFactory();
- fColorRect32Proc = SkBlitRow::ColorRectProcFactory();
}
const SkBitmap* SkARGB32_Blitter::justAnOpaqueColor(uint32_t* value) {
@@ -214,13 +213,9 @@ void SkARGB32_Blitter::blitRect(int x, int y, int width, int height) {
uint32_t color = fPMColor;
size_t rowBytes = fDevice.rowBytes();
- if (255 == SkGetPackedA32(color)) {
- fColorRect32Proc(device, width, height, rowBytes, color);
- } else {
- while (--height >= 0) {
- fColor32Proc(device, device, width, color);
- device = (uint32_t*)((char*)device + rowBytes);
- }
+ while (--height >= 0) {
+ fColor32Proc(device, device, width, color);
+ device = (uint32_t*)((char*)device + rowBytes);
}
}
diff --git a/src/core/SkCoreBlitters.h b/src/core/SkCoreBlitters.h
index 60211c98b3..e6be38a583 100644
--- a/src/core/SkCoreBlitters.h
+++ b/src/core/SkCoreBlitters.h
@@ -125,7 +125,6 @@ protected:
SkColor fColor;
SkPMColor fPMColor;
SkBlitRow::ColorProc fColor32Proc;
- SkBlitRow::ColorRectProc fColorRect32Proc;
private:
unsigned fSrcA, fSrcR, fSrcG, fSrcB;
diff --git a/src/opts/SkBlitRow_opts_arm.cpp b/src/opts/SkBlitRow_opts_arm.cpp
index eacaa402c3..a8ab8ce114 100644
--- a/src/opts/SkBlitRow_opts_arm.cpp
+++ b/src/opts/SkBlitRow_opts_arm.cpp
@@ -396,6 +396,3 @@ SkBlitRow::ColorProc SkBlitRow::PlatformColorProc() {
return SK_ARM_NEON_WRAP(Color32_arm);
}
-SkBlitRow::ColorRectProc PlatformColorRectProcFactory() {
- return NULL;
-}
diff --git a/src/opts/SkBlitRow_opts_mips_dsp.cpp b/src/opts/SkBlitRow_opts_mips_dsp.cpp
index 1db38baf5f..528eb07eb5 100644
--- a/src/opts/SkBlitRow_opts_mips_dsp.cpp
+++ b/src/opts/SkBlitRow_opts_mips_dsp.cpp
@@ -954,10 +954,6 @@ SkBlitRow::Proc32 SkBlitRow::PlatformProcs32(unsigned flags) {
return platform_32_procs_mips_dsp[flags];
}
-SkBlitRow::ColorRectProc PlatformColorRectProcFactory() {
- return NULL;
-}
-
SkBlitRow::ColorProc SkBlitRow::PlatformColorProc() {
return NULL;
}
diff --git a/src/opts/SkBlitRow_opts_none.cpp b/src/opts/SkBlitRow_opts_none.cpp
index 9558f14337..87ceb69760 100644
--- a/src/opts/SkBlitRow_opts_none.cpp
+++ b/src/opts/SkBlitRow_opts_none.cpp
@@ -25,6 +25,3 @@ SkBlitRow::ColorProc SkBlitRow::PlatformColorProc() {
return NULL;
}
-SkBlitRow::ColorRectProc PlatformColorRectProcFactory() {
- return NULL;
-}
diff --git a/src/opts/opts_check_x86.cpp b/src/opts/opts_check_x86.cpp
index cfd4a3b46b..6b9758c123 100644
--- a/src/opts/opts_check_x86.cpp
+++ b/src/opts/opts_check_x86.cpp
@@ -261,12 +261,6 @@ SkBlitRow::ColorProc SkBlitRow::PlatformColorProc() {
}
}
-SkBlitRow::ColorRectProc PlatformColorRectProcFactory(); // suppress warning
-
-SkBlitRow::ColorRectProc PlatformColorRectProcFactory() {
- return NULL;
-}
-
////////////////////////////////////////////////////////////////////////////////
SkBlitMask::ColorProc SkBlitMask::PlatformColorProcs(SkColorType dstCT,