Move paint modulation after color space xform when drawing images
The paint color has already been transformed to the destination color
space, so this prevents a double-transform when doing alpha-image draws.
Bug: skia:10555
Change-Id: I9d026d231199b22d9a67bc92bfe9a615295490b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306855
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp
index b3dae0a..41ee9a5 100644
--- a/src/gpu/ops/GrTextureOp.cpp
+++ b/src/gpu/ops/GrTextureOp.cpp
@@ -1107,8 +1107,8 @@
} else {
fp = GrTextureEffect::Make(std::move(proxyView), alphaType, SkMatrix::I(), filter);
}
- fp = GrBlendFragmentProcessor::Make(std::move(fp), nullptr, SkBlendMode::kModulate);
fp = GrColorSpaceXformEffect::Make(std::move(fp), std::move(textureXform));
+ fp = GrBlendFragmentProcessor::Make(std::move(fp), nullptr, SkBlendMode::kModulate);
if (saturate == GrTextureOp::Saturate::kYes) {
fp = GrClampFragmentProcessor::Make(std::move(fp), /*clampToPremul=*/false);
}