aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkBlitter.cpp
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2017-01-13 07:59:23 -0500
committerGravatar Mike Klein <mtklein@chromium.org>2017-01-13 13:25:28 +0000
commite71b167dbd4d8da76495ca85db83d1a3b49aaabd (patch)
tree4624f3a1daebaa48a831f8b028606f45217ee3f6 /src/core/SkBlitter.cpp
parentaeef5610d7a3fe4a53fc27b20486da79bf7a949a (diff)
Attempt 3: SkRasterPipelineBlitter: support A8
Now that SkOpts_hsw.cpp no longer hooks in SkRasterPipeline_opts, it should be safe to try this again. This reverts commit 86d55b312a2649d80890ccf75f24571ada0265f1. Change-Id: I2d495600ca9d3a0f49c2e02fbaaae349cefac3a1 Reviewed-on: https://skia-review.googlesource.com/6985 Reviewed-by: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/core/SkBlitter.cpp')
-rw-r--r--src/core/SkBlitter.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp
index c97956c20f..86c49d08ae 100644
--- a/src/core/SkBlitter.cpp
+++ b/src/core/SkBlitter.cpp
@@ -857,6 +857,12 @@ SkBlitter* SkBlitter::Choose(const SkPixmap& device,
p->setColor(0);
}
+ if (kAlpha_8_SkColorType == device.colorType() && drawCoverage) {
+ SkASSERT(nullptr == shader);
+ SkASSERT(paint->isSrcOver());
+ return allocator->createT<SkA8_Coverage_Blitter>(device, *paint);
+ }
+
if (SkBlitter* blitter = SkCreateRasterPipelineBlitter(device, *paint, matrix, allocator)) {
return blitter;
}
@@ -913,11 +919,8 @@ SkBlitter* SkBlitter::Choose(const SkPixmap& device,
SkBlitter* blitter = nullptr;
switch (device.colorType()) {
case kAlpha_8_SkColorType:
- if (drawCoverage) {
- SkASSERT(nullptr == shader);
- SkASSERT(paint->isSrcOver());
- blitter = allocator->createT<SkA8_Coverage_Blitter>(device, *paint);
- } else if (shader) {
+ SkASSERT(!drawCoverage); // Handled above.
+ if (shader) {
blitter = allocator->createT<SkA8_Shader_Blitter>(device, *paint, shaderContext);
} else {
blitter = allocator->createT<SkA8_Blitter>(device, *paint);