aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkCoreBlitters.h
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-10-05 16:04:41 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-10-05 20:25:04 +0000
commitef8ce2858b7692c9ec9874c43656e603f304c760 (patch)
tree1b3abd8bd47acfc2e13168df79b58d82878df097 /src/core/SkCoreBlitters.h
parentded7aa82afa9672002fcd2a0eff09db59bfd0010 (diff)
experiments to speed up drawing 32bit images into 565
New (legacy style) blitters only coded for shaders (and very restricted blendmodes) Bug: skia: See https://buganizer.corp.google.com/issues/64884885 Change-Id: Ie2546093bfe1e670a825dfd9542d252d53732c40 Reviewed-on: https://skia-review.googlesource.com/54103 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Herb Derby <herb@google.com>
Diffstat (limited to 'src/core/SkCoreBlitters.h')
-rw-r--r--src/core/SkCoreBlitters.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/core/SkCoreBlitters.h b/src/core/SkCoreBlitters.h
index 47b20176e6..9d227e9b43 100644
--- a/src/core/SkCoreBlitters.h
+++ b/src/core/SkCoreBlitters.h
@@ -137,6 +137,27 @@ private:
typedef SkShaderBlitter INHERITED;
};
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+typedef void (*SkS32D16BlendProc)(uint16_t*, const SkPMColor*, int, uint8_t);
+
+class SkRGB565_Shader_Blitter : public SkShaderBlitter {
+public:
+ SkRGB565_Shader_Blitter(const SkPixmap& device, const SkPaint&, SkShaderBase::Context*);
+ ~SkRGB565_Shader_Blitter() override;
+ void blitH(int x, int y, int width) override;
+ void blitAntiH(int x, int y, const SkAlpha[], const int16_t[]) override;
+
+ static bool Supports(const SkPixmap& device, const SkPaint&);
+
+private:
+ SkPMColor* fBuffer;
+ SkS32D16BlendProc fBlend;
+ SkS32D16BlendProc fBlendCoverage;
+
+ typedef SkShaderBlitter INHERITED;
+};
+
///////////////////////////////////////////////////////////////////////////////
// Neither of these ever returns nullptr, but this first factory may return a SkNullBlitter.