diff options
author | Brian Salomon <bsalomon@google.com> | 2017-12-13 10:59:33 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-12-20 14:00:44 +0000 |
commit | b5086961f335d6757a88ce7507c445485aaba2e6 (patch) | |
tree | a635252858428f4f0f04144d532cc4ab96388d95 /src/atlastext/SkInternalAtlasTextContext.cpp | |
parent | e1367b4a064737cbcf78f2297fa89e0a032b2060 (diff) |
Add matrix stack to SkAtlasTextTarget.
Makes SkAtlasTextRenderer::SDFVertex now has a 3 component position vector.
Change-Id: I7ec1a8068fb84388a82e1748d6e9d02820d55abd
Reviewed-on: https://skia-review.googlesource.com/84202
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Diffstat (limited to 'src/atlastext/SkInternalAtlasTextContext.cpp')
-rw-r--r-- | src/atlastext/SkInternalAtlasTextContext.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/atlastext/SkInternalAtlasTextContext.cpp b/src/atlastext/SkInternalAtlasTextContext.cpp index 858ae4da01..6dde9ae096 100644 --- a/src/atlastext/SkInternalAtlasTextContext.cpp +++ b/src/atlastext/SkInternalAtlasTextContext.cpp @@ -30,6 +30,7 @@ SkInternalAtlasTextContext::SkInternalAtlasTextContext(sk_sp<SkAtlasTextRenderer options.fAllowMultipleGlyphCacheTextures = GrContextOptions::Enable::kNo; options.fMinDistanceFieldFontSize = 0.f; options.fGlyphsAsPathsFontSize = SK_ScalarInfinity; + options.fDistanceFieldGlyphVerticesAlwaysHaveW = GrContextOptions::Enable::kYes; fGrContext = GrContext::MakeMock(nullptr, options); } @@ -62,7 +63,7 @@ GrDeferredUploadToken SkInternalAtlasTextContext::addASAPUpload( } void SkInternalAtlasTextContext::recordDraw(const void* srcVertexData, int glyphCnt, - void* targetHandle) { + const SkMatrix& matrix, void* targetHandle) { auto vertexDataSize = sizeof(SkAtlasTextRenderer::SDFVertex) * 4 * glyphCnt; auto vertexData = fArena.makeArrayDefault<char>(vertexDataSize); memcpy(vertexData, srcVertexData, vertexDataSize); @@ -72,6 +73,7 @@ void SkInternalAtlasTextContext::recordDraw(const void* srcVertexData, int glyph // This isn't expected by SkAtlasTextRenderer subclasses. vertex->fTextureCoord.fX /= 2; vertex->fTextureCoord.fY /= 2; + matrix.mapHomogeneousPoints(&vertex->fPosition, &vertex->fPosition, 1); } fDraws.append(&fArena, Draw{glyphCnt, this->issueDrawToken(), targetHandle, vertexData}); } |