aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkCanvas.cpp
diff options
context:
space:
mode:
authorGravatar Herb Derby <herb@google.com>2018-07-18 13:41:15 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-07-18 20:54:02 +0000
commit2eacff02f1436e282468670373f5867ab2b27916 (patch)
treeb30485e7fe8b0e11c88fee44a94e2ba8577c56d0 /src/core/SkCanvas.cpp
parent8364706c02c6ad33637132ff126a48011e4d8b13 (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.cpp9
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