diff options
author | Herb Derby <herb@google.com> | 2018-07-28 18:07:54 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-07-31 13:52:20 +0000 |
commit | 74c6ed3d1f179209ec90025532310d9c8151999f (patch) | |
tree | 2d20cc433c2136b8a1832698e9c14118615696dc /src/atlastext/SkAtlasTextTarget.cpp | |
parent | 0bf5408286ea3dacb197c220e1033dea3eeef2a8 (diff) |
Move one leaf loop from GPU to glyph drawer
Encapsulate the bitmap inner loop of regenerate in the
SkGlyphRunListDrawer. This changed required placing an
SkGlyphRunListDrawer in the two TextTargets.
Change-Id: I7ef7a2d0074fe898fce4da82d26ea1f47e1f7a98
Reviewed-on: https://skia-review.googlesource.com/144302
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Diffstat (limited to 'src/atlastext/SkAtlasTextTarget.cpp')
-rw-r--r-- | src/atlastext/SkAtlasTextTarget.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/atlastext/SkAtlasTextTarget.cpp b/src/atlastext/SkAtlasTextTarget.cpp index 4d7d65d746..8a382c7233 100644 --- a/src/atlastext/SkAtlasTextTarget.cpp +++ b/src/atlastext/SkAtlasTextTarget.cpp @@ -74,6 +74,8 @@ void SkAtlasTextTarget::concat(const SkMatrix& matrix) { this->accessCTM()->preC ////////////////////////////////////////////////////////////////////////////// static const GrColorSpaceInfo kColorSpaceInfo(nullptr, kRGBA_8888_GrPixelConfig); +static const SkSurfaceProps kProps( + SkSurfaceProps::kUseDistanceFieldFonts_Flag, kUnknown_SkPixelGeometry); ////////////////////////////////////////////////////////////////////////////// @@ -83,7 +85,8 @@ public: int width, int height, void* handle) : GrTextUtils::Target(width, height, kColorSpaceInfo) - , SkAtlasTextTarget(std::move(context), width, height, handle) { + , SkAtlasTextTarget(std::move(context), width, height, handle) + , fGlyphDrawer(kProps, kColorSpaceInfo) { fOpMemoryPool = fContext->internal().grContext()->contextPriv().refOpMemoryPool(); } @@ -109,6 +112,10 @@ public: return this->context()->internal().grContext(); } + SkGlyphRunListDrawer* glyphDrawer() override { + return &fGlyphDrawer; + } + /** SkAtlasTextTarget overrides */ void drawText(const SkGlyphID[], const SkPoint[], int glyphCnt, uint32_t color, @@ -123,6 +130,7 @@ private: using SkAtlasTextTarget::fHeight; SkTArray<std::unique_ptr<GrAtlasTextOp>, true> fOps; sk_sp<GrOpMemoryPool> fOpMemoryPool; + SkGlyphRunListDrawer fGlyphDrawer; }; ////////////////////////////////////////////////////////////////////////////// |