speedup 16bit shaders in the blitRect case
faster 32->16 blend by using the expand_16 intermediate format
git-svn-id: http://skia.googlecode.com/svn/trunk@263 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkCoreBlitters.h b/src/core/SkCoreBlitters.h
index d45467f..7da7cad 100644
--- a/src/core/SkCoreBlitters.h
+++ b/src/core/SkCoreBlitters.h
@@ -112,25 +112,25 @@
typedef SkRasterBlitter INHERITED;
};
-class SkARGB32_Black_Blitter : public SkARGB32_Blitter {
+class SkARGB32_Opaque_Blitter : public SkARGB32_Blitter {
public:
- SkARGB32_Black_Blitter(const SkBitmap& device, const SkPaint& paint)
- : SkARGB32_Blitter(device, paint) {}
+ SkARGB32_Opaque_Blitter(const SkBitmap& device, const SkPaint& paint)
+ : INHERITED(device, paint) { SkASSERT(paint.getAlpha() == 0xFF); }
virtual void blitMask(const SkMask&, const SkIRect&);
- virtual void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]);
-
+
private:
typedef SkARGB32_Blitter INHERITED;
};
-class SkARGB32_Opaque_Blitter : public SkARGB32_Blitter {
+class SkARGB32_Black_Blitter : public SkARGB32_Opaque_Blitter {
public:
- SkARGB32_Opaque_Blitter(const SkBitmap& device, const SkPaint& paint)
- : SkARGB32_Blitter(device, paint) { SkASSERT(paint.getAlpha() == 0xFF); }
+ SkARGB32_Black_Blitter(const SkBitmap& device, const SkPaint& paint)
+ : INHERITED(device, paint) {}
virtual void blitMask(const SkMask&, const SkIRect&);
-
+ virtual void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]);
+
private:
- typedef SkARGB32_Blitter INHERITED;
+ typedef SkARGB32_Opaque_Blitter INHERITED;
};
class SkARGB32_Shader_Blitter : public SkShaderBlitter {
@@ -188,14 +188,14 @@
typedef SkRGB16_Blitter INHERITED;
};
-class SkRGB16_Black_Blitter : public SkRGB16_Blitter {
+class SkRGB16_Black_Blitter : public SkRGB16_Opaque_Blitter {
public:
SkRGB16_Black_Blitter(const SkBitmap& device, const SkPaint& paint);
virtual void blitMask(const SkMask&, const SkIRect&);
virtual void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]);
private:
- typedef SkRGB16_Blitter INHERITED;
+ typedef SkRGB16_Opaque_Blitter INHERITED;
};
class SkRGB16_Shader_Blitter : public SkShaderBlitter {
@@ -224,6 +224,7 @@
SkRGB16_Shader16_Blitter(const SkBitmap& device, const SkPaint& paint);
virtual void blitH(int x, int y, int width);
virtual void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]);
+ virtual void blitRect(int x, int y, int width, int height);
private:
typedef SkRGB16_Shader_Blitter INHERITED;