aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkCanvas.cpp
diff options
context:
space:
mode:
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