aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/atlastext
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2018-03-07 15:13:18 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-03-08 14:29:11 +0000
commit5a66efbbab2926793a7f4dc57931253ab3046375 (patch)
tree5df12b8abca8e8db6fd4a37b38811abef37c117e /src/atlastext
parentfa303398d503a48d054e26dd1582282d3121b8ec (diff)
Remove GrRestrictedAtlasManager
Philosophically this relies on: https://skia-review.googlesource.com/c/skia/+/111807 (Revise Text & Small Path Atlas so instantiation failure is handled at flush time) Change-Id: I4fdcf1af8c5e9ffefdfb973104045f4f5d223a4e Reviewed-on: https://skia-review.googlesource.com/112702 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/atlastext')
-rw-r--r--src/atlastext/SkAtlasTextTarget.cpp9
-rw-r--r--src/atlastext/SkInternalAtlasTextContext.cpp15
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,