Index: src/gpu/GrDistanceFieldTextContext.cpp |
diff --git a/src/gpu/GrDistanceFieldTextContext.cpp b/src/gpu/GrDistanceFieldTextContext.cpp |
index 66c97c7dc0dc8e5eed6aaa2ffe0a7758e584eaa2..1fe43200c2ba6a88c12293eda86817244a289af6 100755 |
--- a/src/gpu/GrDistanceFieldTextContext.cpp |
+++ b/src/gpu/GrDistanceFieldTextContext.cpp |
@@ -271,12 +271,6 @@ |
fSkPaint.setAutohinted(false); |
fSkPaint.setHinting(SkPaint::kNormal_Hinting); |
fSkPaint.setSubpixelText(true); |
- |
- // fix for skia:3528 |
- // if we're scaling up, include any scaling to match text size in the view matrix |
- if (fTextRatio > 1.0f) { |
- fViewMatrix.preScale(fTextRatio, fTextRatio); |
- } |
} |
void GrDistanceFieldTextContext::onDrawText(GrRenderTarget* rt, const GrClip& clip, |
@@ -489,24 +483,13 @@ |
kRectToRect_DistanceFieldEffectFlag : 0; |
bool useBGR = SkPixelGeometryIsBGR(fDeviceProperties.pixelGeometry()); |
flags |= fUseLCDText && useBGR ? kBGR_DistanceFieldEffectFlag : 0; |
- |
- // fix for skia:3528 |
- // set the local matrix to correct any text size scaling for gradients et al. |
- SkMatrix localMatrix; |
- if (fTextRatio > 1.0f) { |
- localMatrix.setScale(fTextRatio, fTextRatio); |
- } else { |
- localMatrix.reset(); |
- } |
- |
+ |
// see if we need to create a new effect |
if (textureUniqueID != fEffectTextureUniqueID || |
filteredColor != fEffectColor || |
flags != fEffectFlags || |
- !fCachedGeometryProcessor->viewMatrix().cheapEqualTo(fViewMatrix) || |
- !fCachedGeometryProcessor->localMatrix().cheapEqualTo(localMatrix)) { |
+ !fCachedGeometryProcessor->viewMatrix().cheapEqualTo(fViewMatrix)) { |
GrColor color = fPaint.getColor(); |
- |
if (fUseLCDText) { |
GrColor colorNoPreMul = skcolor_to_grcolor_nopremultiply(filteredColor); |
@@ -522,7 +505,6 @@ |
blueCorrection); |
fCachedGeometryProcessor.reset(GrDistanceFieldLCDTextureEffect::Create(color, |
fViewMatrix, |
- localMatrix, |
fCurrTexture, |
params, |
widthAdjust, |
@@ -536,7 +518,6 @@ |
float correction = fDistanceAdjustTable[lum >> kDistanceAdjustLumShift]; |
fCachedGeometryProcessor.reset(GrDistanceFieldTextureEffect::Create(color, |
fViewMatrix, |
- localMatrix, |
fCurrTexture, |
params, |
correction, |
@@ -545,7 +526,6 @@ |
#else |
fCachedGeometryProcessor.reset(GrDistanceFieldTextureEffect::Create(color, |
fViewMatrix, |
- localMatrix, |
fCurrTexture, |
params, |
flags, |
@@ -624,18 +604,12 @@ |
SkScalar height = SkIntToScalar(glyph->fBounds.height() - 2*SK_DistanceFieldInset); |
SkScalar scale = fTextRatio; |
- // if we're scaling up, using fix for skia:3528 |
- if (scale > 1.0f) { |
- sx /= scale; |
- sy /= scale; |
- } else { |
- dx *= scale; |
- dy *= scale; |
- width *= scale; |
- height *= scale; |
- } |
+ dx *= scale; |
+ dy *= scale; |
sx += dx; |
sy += dy; |
+ width *= scale; |
+ height *= scale; |
SkRect glyphRect = SkRect::MakeXYWH(sx, sy, width, height); |
// check if we clipped out |
@@ -669,6 +643,7 @@ |
this->flush(); |
SkMatrix ctm; |
+ ctm.setScale(fTextRatio, fTextRatio); |
ctm.postTranslate(sx - dx, sy - dy); |
SkPath tmpPath(*glyph->fPath); |