diff options
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 |