Regenerate LCD text blobs if GrPaint's color changes, not SkPaint.
The GrPaint's color takes into account shaders and color filters, so is a
more accurate picture of the color state.
BUG=chromium:511787
Review URL: https://codereview.chromium.org/1297053004
diff --git a/src/gpu/GrAtlasTextContext.h b/src/gpu/GrAtlasTextContext.h
index 2945b02..7ebe42e 100644
--- a/src/gpu/GrAtlasTextContext.h
+++ b/src/gpu/GrAtlasTextContext.h
@@ -96,8 +96,7 @@
// A helper for drawing BitmapText in a run of distance fields
inline void fallbackDrawPosText(GrAtlasTextBlob*, int runIndex,
- GrRenderTarget*, const GrClip&,
- const GrPaint&,
+ GrRenderTarget*, const GrClip&, GrColor color,
const SkPaint&, const SkMatrix& viewMatrix,
const SkTDArray<char>& fallbackTxt,
const SkTDArray<SkScalar>& fallbackPos,
@@ -136,14 +135,14 @@
inline static GrColor ComputeCanonicalColor(const SkPaint&, bool lcd);
inline SkGlyphCache* setupCache(Run*, const SkPaint&, const SkMatrix* viewMatrix, bool noGamma);
static inline bool MustRegenerateBlob(SkScalar* outTransX, SkScalar* outTransY,
- const GrAtlasTextBlob&, const SkPaint&,
+ const GrAtlasTextBlob&, const SkPaint&, GrColor,
const SkMaskFilter::BlurRec&,
const SkMatrix& viewMatrix, SkScalar x, SkScalar y);
void regenerateTextBlob(GrAtlasTextBlob* bmp, const SkPaint& skPaint, GrColor,
const SkMatrix& viewMatrix,
const SkTextBlob* blob, SkScalar x, SkScalar y,
SkDrawFilter* drawFilter, const SkIRect& clipRect, GrRenderTarget*,
- const GrClip&, const GrPaint&);
+ const GrClip&);
inline static bool HasLCD(const SkTextBlob*);
inline void initDistanceFieldPaint(GrAtlasTextBlob*, SkPaint*, SkScalar* textRatio,
const SkMatrix&);