Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(427)

Unified Diff: src/gpu/GrDistanceFieldTextContext.cpp

Issue 1066613003: Revert of Calculate inverse scale for distance fields in vertex shader (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/gpu/effects/GrDistanceFieldTextureEffect.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « no previous file | src/gpu/effects/GrDistanceFieldTextureEffect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698