diff options
author | Herb Derby <herb@google.com> | 2018-07-18 13:41:15 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-07-18 20:54:02 +0000 |
commit | 2eacff02f1436e282468670373f5867ab2b27916 (patch) | |
tree | b30485e7fe8b0e11c88fee44a94e2ba8577c56d0 /src/core/SkCanvas.cpp | |
parent | 8364706c02c6ad33637132ff126a48011e4d8b13 (diff) |
Redo drawTextRSXForm for glyph runs
Change-Id: Iec9ad6a2c91b16c4e25150902b433fc7aae68a33
Reviewed-on: https://skia-review.googlesource.com/142171
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Diffstat (limited to 'src/core/SkCanvas.cpp')
-rw-r--r-- | src/core/SkCanvas.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index cb98b09b37..8fc431864d 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -2478,7 +2478,7 @@ void SkCanvas::onDrawTextOnPath(const void* text, size_t byteLength, const SkPat LOOPER_END } -void SkCanvas::onDrawTextRSXform(const void* text, size_t byteLength, const SkRSXform xform[], +void SkCanvas::onDrawTextRSXform(const void* text, size_t len, const SkRSXform xform[], const SkRect* cullRect, const SkPaint& paint) { if (cullRect && this->quickReject(*cullRect)) { return; @@ -2487,7 +2487,12 @@ void SkCanvas::onDrawTextRSXform(const void* text, size_t byteLength, const SkRS LOOPER_BEGIN(paint, nullptr) while (iter.next()) { - iter.fDevice->drawTextRSXform(text, byteLength, xform, looper.paint()); + fScratchGlyphRunBuilder->drawTextAtOrigin(paint, text, len); + auto list = fScratchGlyphRunBuilder->useGlyphRunList(); + if (!list->empty()) { + auto glyphRun = (*list)[0]; + iter.fDevice->drawGlyphRunRSXform(&glyphRun, xform); + } } LOOPER_END |