diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkGlyphRun.cpp | 10 | ||||
-rw-r--r-- | src/core/SkGlyphRun.h | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/core/SkGlyphRun.cpp b/src/core/SkGlyphRun.cpp index 006a4ba067..f53f90986e 100644 --- a/src/core/SkGlyphRun.cpp +++ b/src/core/SkGlyphRun.cpp @@ -534,6 +534,16 @@ void SkGlyphRunBuilder::drawTextBlob(const SkPaint& paint, const SkTextBlob& blo this->makeGlyphRunList(paint, &blob, origin); } +void SkGlyphRunBuilder::drawGlyphPos( + const SkPaint& paint, SkSpan<const SkGlyphID> glyphIDs, const SkPoint* pos) { + if (!glyphIDs.empty()) { + this->initialize(glyphIDs.size()); + this->simplifyDrawPosText(paint, glyphIDs, pos, + fUniqueGlyphIDIndices, fUniqueGlyphIDs); + this->makeGlyphRunList(paint, nullptr, SkPoint::Make(0, 0)); + } +} + const SkGlyphRunList& SkGlyphRunBuilder::useGlyphRunList() { return fGlyphRunList; } diff --git a/src/core/SkGlyphRun.h b/src/core/SkGlyphRun.h index 003c13c91c..26590c1251 100644 --- a/src/core/SkGlyphRun.h +++ b/src/core/SkGlyphRun.h @@ -240,6 +240,8 @@ public: void drawPosText( const SkPaint& paint, const void* bytes, size_t byteLength, const SkPoint* pos); void drawTextBlob(const SkPaint& paint, const SkTextBlob& blob, SkPoint origin); + void drawGlyphPos( + const SkPaint& paint, SkSpan<const SkGlyphID> glyphIDs, const SkPoint* pos); const SkGlyphRunList& useGlyphRunList(); |