diff options
Diffstat (limited to 'src/atlastext')
-rw-r--r-- | src/atlastext/SkAtlasTextTarget.cpp | 11 | ||||
-rw-r--r-- | src/atlastext/SkInternalAtlasTextContext.cpp | 16 | ||||
-rw-r--r-- | src/atlastext/SkInternalAtlasTextContext.h | 4 |
3 files changed, 17 insertions, 14 deletions
diff --git a/src/atlastext/SkAtlasTextTarget.cpp b/src/atlastext/SkAtlasTextTarget.cpp index 9da5fd1e3d..f553ffad96 100644 --- a/src/atlastext/SkAtlasTextTarget.cpp +++ b/src/atlastext/SkAtlasTextTarget.cpp @@ -181,17 +181,20 @@ void GrAtlasTextOp::finalizeForTextTarget(uint32_t color, const GrCaps& caps) { void GrAtlasTextOp::executeForTextTarget(SkAtlasTextTarget* target) { FlushInfo flushInfo; - SkAutoGlyphCache autoGlyphCache; + SkAutoGlyphCache glyphCache; auto& context = target->context()->internal(); - auto glyphCache = context.grContext()->contextPriv().getGlyphCache(); - auto fullAtlasManager = context.grContext()->contextPriv().getFullAtlasManager(); + auto atlasGlyphCache = context.grContext()->contextPriv().getAtlasGlyphCache(); auto resourceProvider = context.grContext()->contextPriv().resourceProvider(); + auto drawingManager = context.grContext()->contextPriv().drawingManager(); + + GrOnFlushResourceProvider onFlushResourceProvider(drawingManager); + atlasGlyphCache->preFlush(&onFlushResourceProvider, nullptr, 0, nullptr); for (int i = 0; i < fGeoCount; ++i) { GrAtlasTextBlob::VertexRegenerator regenerator( resourceProvider, fGeoData[i].fBlob, fGeoData[i].fRun, fGeoData[i].fSubRun, fGeoData[i].fViewMatrix, fGeoData[i].fX, fGeoData[i].fY, fGeoData[i].fColor, - &context, glyphCache, fullAtlasManager, &autoGlyphCache); + &context, atlasGlyphCache, &glyphCache); GrAtlasTextBlob::VertexRegenerator::Result result; do { result = regenerator.regenerate(); diff --git a/src/atlastext/SkInternalAtlasTextContext.cpp b/src/atlastext/SkInternalAtlasTextContext.cpp index 1e9cbf3079..fcb4130665 100644 --- a/src/atlastext/SkInternalAtlasTextContext.cpp +++ b/src/atlastext/SkInternalAtlasTextContext.cpp @@ -10,7 +10,7 @@ #include "GrContextPriv.h" #include "SkAtlasTextContext.h" #include "SkAtlasTextRenderer.h" -#include "text/GrGlyphCache.h" +#include "text/GrAtlasGlyphCache.h" SkAtlasTextRenderer* SkGetAtlasTextRendererFromInternalContext( class SkInternalAtlasTextContext& internal) { @@ -38,17 +38,17 @@ SkInternalAtlasTextContext::SkInternalAtlasTextContext(sk_sp<SkAtlasTextRenderer SkInternalAtlasTextContext::~SkInternalAtlasTextContext() { if (fDistanceFieldAtlas.fProxy) { #ifdef SK_DEBUG - auto restrictedAtlasManager = fGrContext->contextPriv().getRestrictedAtlasManager(); + auto atlasGlyphCache = fGrContext->contextPriv().getAtlasGlyphCache(); unsigned int numProxies; - restrictedAtlasManager->getProxies(kA8_GrMaskFormat, &numProxies); + atlasGlyphCache->getProxies(kA8_GrMaskFormat, &numProxies); SkASSERT(1 == numProxies); #endif fRenderer->deleteTexture(fDistanceFieldAtlas.fTextureHandle); } } -GrGlyphCache* SkInternalAtlasTextContext::glyphCache() { - return fGrContext->contextPriv().getGlyphCache(); +GrAtlasGlyphCache* SkInternalAtlasTextContext::atlasGlyphCache() { + return fGrContext->contextPriv().getAtlasGlyphCache(); } GrTextBlobCache* SkInternalAtlasTextContext::textBlobCache() { @@ -86,11 +86,11 @@ void SkInternalAtlasTextContext::recordDraw(const void* srcVertexData, int glyph } void SkInternalAtlasTextContext::flush() { - auto* restrictedAtlasManager = fGrContext->contextPriv().getRestrictedAtlasManager(); + auto* atlasGlyphCache = fGrContext->contextPriv().getAtlasGlyphCache(); if (!fDistanceFieldAtlas.fProxy) { unsigned int numProxies; - fDistanceFieldAtlas.fProxy = restrictedAtlasManager->getProxies(kA8_GrMaskFormat, - &numProxies)->get(); + fDistanceFieldAtlas.fProxy = atlasGlyphCache->getProxies(kA8_GrMaskFormat, + &numProxies)->get(); SkASSERT(1 == numProxies); fDistanceFieldAtlas.fTextureHandle = fRenderer->createTexture(SkAtlasTextRenderer::AtlasFormat::kA8, diff --git a/src/atlastext/SkInternalAtlasTextContext.h b/src/atlastext/SkInternalAtlasTextContext.h index 22cda5ca51..cdba3ad8b0 100644 --- a/src/atlastext/SkInternalAtlasTextContext.h +++ b/src/atlastext/SkInternalAtlasTextContext.h @@ -13,8 +13,8 @@ #include "SkArenaAllocList.h" #include "SkRefCnt.h" +class GrAtlasGlyphCache; class GrContext; -class GrGlyphCache; class GrTextBlobCache; class SkAtlasTextRenderer; @@ -33,7 +33,7 @@ public: SkAtlasTextRenderer* renderer() const { return fRenderer.get(); } GrContext* grContext() const { return fGrContext.get(); } - GrGlyphCache* glyphCache(); + GrAtlasGlyphCache* atlasGlyphCache(); GrTextBlobCache* textBlobCache(); const GrTokenTracker* tokenTracker() final { return &fTokenTracker; } |