Pass alpha rather than full colors to TextureOps made from image sets.
Bug: skia:8563
Change-Id: Iff1a5544df7f5dfeca3bfa14723ce39e653007eb
Reviewed-on: https://skia-review.googlesource.com/c/171903
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 8e88dfd..e36b0ce 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -1466,7 +1466,6 @@
sampler.setFilterMode(kNone_SkFilterQuality == filterQuality ? GrSamplerState::Filter::kNearest
: GrSamplerState::Filter::kBilerp);
SkAutoTArray<GrRenderTargetContext::TextureSetEntry> textures(count);
- SkPMColor4f color = { alpha, alpha, alpha, alpha };
// We accumulate compatible proxies until we find an an incompatible one or reach the end and
// issue the accumulated 'n' draws starting at 'base'.
int base = 0, n = 0;
@@ -1476,7 +1475,7 @@
set[base].fImage->colorSpace(), set[base].fImage->alphaType(),
fRenderTargetContext->colorSpaceInfo().colorSpace(), kPremul_SkAlphaType);
fRenderTargetContext->drawTextureSet(this->clip(), textures.get() + base, n,
- sampler.filter(), color, this->ctm(),
+ sampler.filter(), alpha, this->ctm(),
std::move(textureXform));
}
};