diff options
Diffstat (limited to 'src/atlastext')
-rw-r--r-- | src/atlastext/SkAtlasTextTarget.cpp | 9 | ||||
-rw-r--r-- | src/atlastext/SkInternalAtlasTextContext.cpp | 15 |
2 files changed, 15 insertions, 9 deletions
diff --git a/src/atlastext/SkAtlasTextTarget.cpp b/src/atlastext/SkAtlasTextTarget.cpp index 4513952781..937498b826 100644 --- a/src/atlastext/SkAtlasTextTarget.cpp +++ b/src/atlastext/SkAtlasTextTarget.cpp @@ -184,14 +184,19 @@ void GrAtlasTextOp::executeForTextTarget(SkAtlasTextTarget* target) { SkAutoGlyphCache autoGlyphCache; auto& context = target->context()->internal(); auto glyphCache = context.grContext()->contextPriv().getGlyphCache(); - auto fullAtlasManager = context.grContext()->contextPriv().getFullAtlasManager(); + auto atlasManager = context.grContext()->contextPriv().getAtlasManager(); auto resourceProvider = context.grContext()->contextPriv().resourceProvider(); + unsigned int numProxies; + if (!atlasManager->getProxies(kA8_GrMaskFormat, &numProxies)) { + return; + } + 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, glyphCache, atlasManager, &autoGlyphCache); bool done = false; while (!done) { GrAtlasTextBlob::VertexRegenerator::Result result; diff --git a/src/atlastext/SkInternalAtlasTextContext.cpp b/src/atlastext/SkInternalAtlasTextContext.cpp index 1e9cbf3079..0ff4f3e5d3 100644 --- a/src/atlastext/SkInternalAtlasTextContext.cpp +++ b/src/atlastext/SkInternalAtlasTextContext.cpp @@ -38,10 +38,12 @@ SkInternalAtlasTextContext::SkInternalAtlasTextContext(sk_sp<SkAtlasTextRenderer SkInternalAtlasTextContext::~SkInternalAtlasTextContext() { if (fDistanceFieldAtlas.fProxy) { #ifdef SK_DEBUG - auto restrictedAtlasManager = fGrContext->contextPriv().getRestrictedAtlasManager(); - unsigned int numProxies; - restrictedAtlasManager->getProxies(kA8_GrMaskFormat, &numProxies); - SkASSERT(1 == numProxies); + auto atlasManager = fGrContext->contextPriv().getAtlasManager(); + if (atlasManager) { + unsigned int numProxies; + atlasManager->getProxies(kA8_GrMaskFormat, &numProxies); + SkASSERT(1 == numProxies); + } #endif fRenderer->deleteTexture(fDistanceFieldAtlas.fTextureHandle); } @@ -86,11 +88,10 @@ void SkInternalAtlasTextContext::recordDraw(const void* srcVertexData, int glyph } void SkInternalAtlasTextContext::flush() { - auto* restrictedAtlasManager = fGrContext->contextPriv().getRestrictedAtlasManager(); + auto* atlasManager = fGrContext->contextPriv().getAtlasManager(); if (!fDistanceFieldAtlas.fProxy) { unsigned int numProxies; - fDistanceFieldAtlas.fProxy = restrictedAtlasManager->getProxies(kA8_GrMaskFormat, - &numProxies)->get(); + fDistanceFieldAtlas.fProxy = atlasManager->getProxies(kA8_GrMaskFormat, &numProxies)->get(); SkASSERT(1 == numProxies); fDistanceFieldAtlas.fTextureHandle = fRenderer->createTexture(SkAtlasTextRenderer::AtlasFormat::kA8, |