diff options
author | 2017-01-04 16:32:17 -0500 | |
---|---|---|
committer | 2017-01-05 20:07:12 +0000 | |
commit | f44373c119290b501d4aec7385e16d12c28a1f0f (patch) | |
tree | 41868954b14cf789f8789914d8f9651667fe834d /src/core/SkRasterPipelineBlitter.cpp | |
parent | ecea86af4170a52cda5c64dd187ddbe157a682ee (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.cpp | 5 |
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; |