Use SkGlyphRunListIterator in gpu
Instead of using the text blob through the stack start
using the glyph run list.
This CL is similar to a portion of https://skia-review.googlesource.com/c/skia/+/137224
which was reverted.
Change-Id: I1f0619bd2d13523f9af1a68ab27fb26abd086add
Reviewed-on: https://skia-review.googlesource.com/141543
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
diff --git a/src/gpu/text/GrTextContext.h b/src/gpu/text/GrTextContext.h
index 50ec0ab..25aeea0 100644
--- a/src/gpu/text/GrTextContext.h
+++ b/src/gpu/text/GrTextContext.h
@@ -48,9 +48,9 @@
const SkMatrix& viewMatrix, const SkSurfaceProps&, const char text[],
size_t byteLength, const SkScalar pos[], int scalarsPerPosition,
const SkPoint& offset, const SkIRect& regionClipBounds);
- void drawTextBlob(GrContext*, GrTextUtils::Target*, const GrClip&, const SkPaint&,
- const SkMatrix& viewMatrix, const SkSurfaceProps&, const SkTextBlob*,
- SkScalar x, SkScalar y, const SkIRect& clipBounds);
+ void drawGlyphRunList(GrContext*, GrTextUtils::Target*, const GrClip&,
+ const SkMatrix& viewMatrix, const SkSurfaceProps&, SkGlyphRunList*,
+ const SkIRect& clipBounds);
std::unique_ptr<GrDrawOp> createOp_TestingOnly(GrContext*,
GrTextContext*,
@@ -115,16 +115,15 @@
static SkColor ComputeCanonicalColor(const SkPaint&, bool lcd);
// Determines if we need to use fake gamma (and contrast boost):
static SkScalerContextFlags ComputeScalerContextFlags(const GrColorSpaceInfo&);
- void regenerateTextBlob(GrTextBlob* bmp,
+
+ void regenerateGlyphRunList(GrTextBlob* bmp,
GrGlyphCache*,
const GrShaderCaps&,
const GrTextUtils::Paint&,
SkScalerContextFlags scalerContextFlags,
const SkMatrix& viewMatrix,
const SkSurfaceProps&,
- const SkTextBlob* blob, SkScalar x, SkScalar y) const;
-
- static bool HasLCD(const SkTextBlob*);
+ SkGlyphRunList* glyphRunList) const;
sk_sp<GrTextBlob> makeDrawPosTextBlob(GrTextBlobCache*, GrGlyphCache*,
const GrShaderCaps&,