aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/SkImageShader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shaders/SkImageShader.cpp')
-rw-r--r--src/shaders/SkImageShader.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/shaders/SkImageShader.cpp b/src/shaders/SkImageShader.cpp
index af3dab92a0..4ca6cd9d8f 100644
--- a/src/shaders/SkImageShader.cpp
+++ b/src/shaders/SkImageShader.cpp
@@ -338,14 +338,22 @@ bool SkImageShader::onAppendStages(const StageRec& rec) const {
case kMirror_TileMode: p->append(SkRasterPipeline::mirror_y, limit_y); break;
case kRepeat_TileMode: p->append(SkRasterPipeline::repeat_y, limit_y); break;
}
+ void* ctx = gather;
switch (info.colorType()) {
- case kAlpha_8_SkColorType: p->append(SkRasterPipeline::gather_a8, gather); break;
- case kGray_8_SkColorType: p->append(SkRasterPipeline::gather_g8, gather); break;
- case kRGB_565_SkColorType: p->append(SkRasterPipeline::gather_565, gather); break;
- case kARGB_4444_SkColorType: p->append(SkRasterPipeline::gather_4444, gather); break;
- case kBGRA_8888_SkColorType: p->append(SkRasterPipeline::gather_bgra, gather); break;
- case kRGBA_8888_SkColorType: p->append(SkRasterPipeline::gather_8888, gather); break;
- case kRGBA_F16_SkColorType: p->append(SkRasterPipeline::gather_f16, gather); break;
+ case kAlpha_8_SkColorType: p->append(SkRasterPipeline::gather_a8, ctx); break;
+ case kGray_8_SkColorType: p->append(SkRasterPipeline::gather_g8, ctx); break;
+ case kRGB_565_SkColorType: p->append(SkRasterPipeline::gather_565, ctx); break;
+ case kARGB_4444_SkColorType: p->append(SkRasterPipeline::gather_4444, ctx); break;
+ case kBGRA_8888_SkColorType: p->append(SkRasterPipeline::gather_bgra, ctx); break;
+ case kRGBA_8888_SkColorType: p->append(SkRasterPipeline::gather_8888, ctx); break;
+ case kRGBA_1010102_SkColorType: p->append(SkRasterPipeline::gather_1010102, ctx); break;
+ case kRGBA_F16_SkColorType: p->append(SkRasterPipeline::gather_f16, ctx); break;
+
+ case kRGB_888x_SkColorType: p->append(SkRasterPipeline::gather_8888, ctx);
+ p->append(SkRasterPipeline::force_opaque ); break;
+ case kRGB_101010x_SkColorType: p->append(SkRasterPipeline::gather_1010102, ctx);
+ p->append(SkRasterPipeline::force_opaque ); break;
+
default: SkASSERT(false);
}
if (is_srgb) {