diff options
Diffstat (limited to 'src/gpu/text')
-rw-r--r-- | src/gpu/text/GrTextBlob.cpp | 3 | ||||
-rw-r--r-- | src/gpu/text/GrTextBlob.h | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/gpu/text/GrTextBlob.cpp b/src/gpu/text/GrTextBlob.cpp index c3d06e81fd..b6fc3ce170 100644 --- a/src/gpu/text/GrTextBlob.cpp +++ b/src/gpu/text/GrTextBlob.cpp @@ -353,7 +353,8 @@ void GrTextBlob::flush(GrTextUtils::Target* target, const SkSurfaceProps& props, skipClip = true; // We only need to do clipping work if the subrun isn't contained by the clip SkRect subRunBounds; - this->computeSubRunBounds(&subRunBounds, runIndex, subRun, viewMatrix, x, y); + this->computeSubRunBounds(&subRunBounds, runIndex, subRun, viewMatrix, x, y, + false); if (!clipRRect.getBounds().contains(subRunBounds)) { // If the subrun is completely outside, don't add an op for it if (!clipRRect.getBounds().intersects(subRunBounds)) { diff --git a/src/gpu/text/GrTextBlob.h b/src/gpu/text/GrTextBlob.h index 49615a92ed..e34ab88ef2 100644 --- a/src/gpu/text/GrTextBlob.h +++ b/src/gpu/text/GrTextBlob.h @@ -210,7 +210,8 @@ public: SkScalar y); void computeSubRunBounds(SkRect* outBounds, int runIndex, int subRunIndex, - const SkMatrix& viewMatrix, SkScalar x, SkScalar y) { + const SkMatrix& viewMatrix, SkScalar x, SkScalar y, + bool needsGlyphTransform) { // We don't yet position distance field text on the cpu, so we have to map the vertex bounds // into device space. // We handle vertex bounds differently for distance field text and bitmap text because @@ -219,7 +220,7 @@ public: const Run& run = fRuns[runIndex]; const Run::SubRunInfo& subRun = run.fSubRunInfo[subRunIndex]; *outBounds = subRun.vertexBounds(); - if (subRun.drawAsDistanceFields()) { + if (needsGlyphTransform) { // Distance field text is positioned with the (X,Y) as part of the glyph position, // and currently the view matrix is applied on the GPU outBounds->offset(x - fInitialX, y - fInitialY); |