aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkRasterPipelineBlitter.cpp
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2017-01-04 16:32:17 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-01-05 20:07:12 +0000
commitf44373c119290b501d4aec7385e16d12c28a1f0f (patch)
tree41868954b14cf789f8789914d8f9651667fe834d /src/core/SkRasterPipelineBlitter.cpp
parentecea86af4170a52cda5c64dd187ddbe157a682ee (diff)
SkRasterPipelineBlitter: support A8
This adds support for loading and storing A8, then uses it in SkRasterPipelineBlitter. I think this handles all dst formats now: A8, 565, 8888 (by policy, sRGB only) and F16. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: Id207f6e6c56b6bfcc301d77dd23e0959bb7afba8 Reviewed-on: https://skia-review.googlesource.com/6554 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/core/SkRasterPipelineBlitter.cpp')
-rw-r--r--src/core/SkRasterPipelineBlitter.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/SkRasterPipelineBlitter.cpp b/src/core/SkRasterPipelineBlitter.cpp
index cbdb09faa4..19e00dedf5 100644
--- a/src/core/SkRasterPipelineBlitter.cpp
+++ b/src/core/SkRasterPipelineBlitter.cpp
@@ -79,9 +79,10 @@ SkBlitter* SkCreateRasterPipelineBlitter(const SkPixmap& dst,
static bool supported(const SkImageInfo& info) {
switch (info.colorType()) {
+ case kAlpha_8_SkColorType: return true;
+ case kRGB_565_SkColorType: return true;
case kN32_SkColorType: return info.gammaCloseToSRGB();
case kRGBA_F16_SkColorType: return true;
- case kRGB_565_SkColorType: return true;
default: return false;
}
}
@@ -187,6 +188,7 @@ void SkRasterPipelineBlitter::append_load_d(SkRasterPipeline* p) const {
SkASSERT(supported(fDst.info()));
switch (fDst.info().colorType()) {
+ case kAlpha_8_SkColorType: p->append(SkRasterPipeline::load_a8_d, &fDstPtr); break;
case kRGB_565_SkColorType: p->append(SkRasterPipeline::load_565_d, &fDstPtr); break;
case kBGRA_8888_SkColorType:
case kRGBA_8888_SkColorType: p->append(SkRasterPipeline::load_8888_d, &fDstPtr); break;
@@ -211,6 +213,7 @@ void SkRasterPipelineBlitter::append_store(SkRasterPipeline* p) const {
SkASSERT(supported(fDst.info()));
switch (fDst.info().colorType()) {
+ case kAlpha_8_SkColorType: p->append(SkRasterPipeline::store_a8, &fDstPtr); break;
case kRGB_565_SkColorType: p->append(SkRasterPipeline::store_565, &fDstPtr); break;
case kBGRA_8888_SkColorType:
case kRGBA_8888_SkColorType: p->append(SkRasterPipeline::store_8888, &fDstPtr); break;