| Index: src/gpu/GrDistanceFieldTextContext.cpp
|
| diff --git a/src/gpu/GrDistanceFieldTextContext.cpp b/src/gpu/GrDistanceFieldTextContext.cpp
|
| index 18058be17f01924bafe0c363a6448fb0c770267e..313c02ac5132b069a9cb7fed8357ae6976ac0355 100755
|
| --- a/src/gpu/GrDistanceFieldTextContext.cpp
|
| +++ b/src/gpu/GrDistanceFieldTextContext.cpp
|
| @@ -273,30 +273,32 @@ void GrDistanceFieldTextContext::drawPackedGlyph(GrGlyph::PackedID packed,
|
| }
|
| */
|
| if (NULL == glyph->fPlot) {
|
| - if (fStrike->addGlyphToAtlas(glyph, scaler)) {
|
| - goto HAS_ATLAS;
|
| - }
|
| + if (!fStrike->glyphTooLargeForAtlas(glyph)) {
|
| + if (fStrike->addGlyphToAtlas(glyph, scaler)) {
|
| + goto HAS_ATLAS;
|
| + }
|
|
|
| - // try to clear out an unused plot before we flush
|
| - if (fContext->getFontCache()->freeUnusedPlot(fStrike) &&
|
| - fStrike->addGlyphToAtlas(glyph, scaler)) {
|
| - goto HAS_ATLAS;
|
| - }
|
| + // try to clear out an unused plot before we flush
|
| + if (fContext->getFontCache()->freeUnusedPlot(fStrike) &&
|
| + fStrike->addGlyphToAtlas(glyph, scaler)) {
|
| + goto HAS_ATLAS;
|
| + }
|
|
|
| - if (c_DumpFontCache) {
|
| + if (c_DumpFontCache) {
|
| #ifdef SK_DEVELOPER
|
| - fContext->getFontCache()->dump();
|
| + fContext->getFontCache()->dump();
|
| #endif
|
| - }
|
| + }
|
|
|
| - // before we purge the cache, we must flush any accumulated draws
|
| - this->flushGlyphs();
|
| - fContext->flush();
|
| + // before we purge the cache, we must flush any accumulated draws
|
| + this->flushGlyphs();
|
| + fContext->flush();
|
|
|
| - // we should have an unused plot now
|
| - if (fContext->getFontCache()->freeUnusedPlot(fStrike) &&
|
| - fStrike->addGlyphToAtlas(glyph, scaler)) {
|
| - goto HAS_ATLAS;
|
| + // we should have an unused plot now
|
| + if (fContext->getFontCache()->freeUnusedPlot(fStrike) &&
|
| + fStrike->addGlyphToAtlas(glyph, scaler)) {
|
| + goto HAS_ATLAS;
|
| + }
|
| }
|
|
|
| if (NULL == glyph->fPath) {
|
|
|