aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/text
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/text')
-rw-r--r--src/gpu/text/GrTextBlob.cpp3
-rw-r--r--src/gpu/text/GrTextBlob.h5
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);