Fix LCD distance field text color filtering
Distance field text was applying the color filter to determine any gamma
adjustments, but not any effects of the shader as well.
Bug: skia:6669
Change-Id: I73384f68141fb523ea2058e00d0a9fbb2fbc622b
Reviewed-on: https://skia-review.googlesource.com/19049
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
diff --git a/src/gpu/text/GrAtlasTextBlob.cpp b/src/gpu/text/GrAtlasTextBlob.cpp
index be9bb27..a68f6f9 100644
--- a/src/gpu/text/GrAtlasTextBlob.cpp
+++ b/src/gpu/text/GrAtlasTextBlob.cpp
@@ -179,7 +179,7 @@
// to regenerate the blob on any color change
// We use the grPaint to get any color filter effects
if (fKey.fCanonicalColor == SK_ColorTRANSPARENT &&
- fFilteredPaintColor != paint.filteredUnpremulColor()) {
+ fLuminanceColor != paint.luminanceColor()) {
return true;
}
@@ -266,10 +266,10 @@
std::unique_ptr<GrAtlasTextOp> op;
if (info.drawAsDistanceFields()) {
- GrColor filteredColor = paint.filteredUnpremulColor();
+ SkColor luminanceColor = paint.luminanceColor();
bool useBGR = SkPixelGeometryIsBGR(props.pixelGeometry());
op = GrAtlasTextOp::MakeDistanceField(glyphCount, cache, distanceAdjustTable,
- useGammaCorrectDistanceTable, filteredColor,
+ useGammaCorrectDistanceTable, luminanceColor,
info.hasUseLCDText(), useBGR);
} else {
op = GrAtlasTextOp::MakeBitmap(format, glyphCount, cache);