| Index: src/gpu/GrAtlasTextContext.cpp
|
| diff --git a/src/gpu/GrAtlasTextContext.cpp b/src/gpu/GrAtlasTextContext.cpp
|
| index fbbcdb68c47b74beb86e483fc0cadc20e0a35490..d7ccce54cf7d5c146497456e9e2eff972b21d1df 100644
|
| --- a/src/gpu/GrAtlasTextContext.cpp
|
| +++ b/src/gpu/GrAtlasTextContext.cpp
|
| @@ -55,8 +55,8 @@ GrAtlasTextContext::GrAtlasTextContext(GrContext* context, const SkSurfaceProps&
|
| , fDistanceAdjustTable(new DistanceAdjustTable) {
|
| // We overallocate vertices in our textblobs based on the assumption that A8 has the greatest
|
| // vertexStride
|
| - static_assert(GrAtlasTextBatch::kGrayTextVASize >= GrAtlasTextBatch::kColorTextVASize &&
|
| - GrAtlasTextBatch::kGrayTextVASize >= GrAtlasTextBatch::kLCDTextVASize,
|
| + static_assert(GrAtlasTextBlob::kGrayTextVASize >= GrAtlasTextBlob::kColorTextVASize &&
|
| + GrAtlasTextBlob::kGrayTextVASize >= GrAtlasTextBlob::kLCDTextVASize,
|
| "vertex_attribute_changed");
|
| fCurrStrike = nullptr;
|
| fCache = context->getTextBlobCache();
|
| @@ -349,7 +349,7 @@ void GrAtlasTextContext::drawTextBlob(GrDrawContext* dc,
|
| // but we'd have to clear the subrun information
|
| fCache->remove(cacheBlob);
|
| cacheBlob.reset(SkRef(fCache->createCachedBlob(blob, key, blurRec, skPaint,
|
| - GrAtlasTextBatch::kGrayTextVASize)));
|
| + GrAtlasTextBlob::kGrayTextVASize)));
|
| this->regenerateTextBlob(cacheBlob, skPaint, grPaint.getColor(), viewMatrix,
|
| blob, x, y, drawFilter, clip);
|
| } else {
|
| @@ -377,9 +377,9 @@ void GrAtlasTextContext::drawTextBlob(GrDrawContext* dc,
|
| } else {
|
| if (canCache) {
|
| cacheBlob.reset(SkRef(fCache->createCachedBlob(blob, key, blurRec, skPaint,
|
| - GrAtlasTextBatch::kGrayTextVASize)));
|
| + GrAtlasTextBlob::kGrayTextVASize)));
|
| } else {
|
| - cacheBlob.reset(fCache->createBlob(blob, GrAtlasTextBatch::kGrayTextVASize));
|
| + cacheBlob.reset(fCache->createBlob(blob, GrAtlasTextBlob::kGrayTextVASize));
|
| }
|
| this->regenerateTextBlob(cacheBlob, skPaint, grPaint.getColor(), viewMatrix,
|
| blob, x, y, drawFilter, clip);
|
| @@ -624,7 +624,7 @@ inline GrAtlasTextBlob*
|
| GrAtlasTextContext::setupDFBlob(int glyphCount, const SkPaint& origPaint,
|
| const SkMatrix& viewMatrix, SkPaint* dfPaint,
|
| SkScalar* textRatio) {
|
| - GrAtlasTextBlob* blob = fCache->createBlob(glyphCount, 1, GrAtlasTextBatch::kGrayTextVASize);
|
| + GrAtlasTextBlob* blob = fCache->createBlob(glyphCount, 1, GrAtlasTextBlob::kGrayTextVASize);
|
|
|
| *dfPaint = origPaint;
|
| this->initDistanceFieldPaint(blob, dfPaint, textRatio, viewMatrix);
|
| @@ -662,7 +662,7 @@ GrAtlasTextContext::createDrawTextBlob(const GrClip& clip,
|
| fallbackTxt, fallbackPos, 2, offset);
|
| }
|
| } else {
|
| - blob = fCache->createBlob(glyphCount, 1, GrAtlasTextBatch::kGrayTextVASize);
|
| + blob = fCache->createBlob(glyphCount, 1, GrAtlasTextBlob::kGrayTextVASize);
|
| blob->fViewMatrix = viewMatrix;
|
|
|
| SkGlyphCache* cache = this->setupCache(&blob->fRuns[0], skPaint, &viewMatrix, false);
|
| @@ -698,7 +698,7 @@ GrAtlasTextContext::createDrawPosTextBlob(const GrClip& clip,
|
| fallbackTxt, fallbackPos, scalarsPerPosition, offset);
|
| }
|
| } else {
|
| - blob = fCache->createBlob(glyphCount, 1, GrAtlasTextBatch::kGrayTextVASize);
|
| + blob = fCache->createBlob(glyphCount, 1, GrAtlasTextBlob::kGrayTextVASize);
|
| blob->fViewMatrix = viewMatrix;
|
| SkGlyphCache* cache = this->setupCache(&blob->fRuns[0], skPaint, &viewMatrix, false);
|
| this->internalDrawBMPPosText(blob, 0, cache, skPaint, paint.getColor(), viewMatrix, text,
|
| @@ -967,7 +967,6 @@ void GrAtlasTextContext::internalDrawDFPosText(GrAtlasTextBlob* blob, int runInd
|
| void GrAtlasTextContext::bmpAppendGlyph(GrAtlasTextBlob* blob, int runIndex,
|
| const SkGlyph& skGlyph,
|
| int vx, int vy, GrColor color, GrFontScaler* scaler) {
|
| - Run& run = blob->fRuns[runIndex];
|
| if (!fCurrStrike) {
|
| fCurrStrike = fContext->getBatchFontCache()->getStrike(scaler);
|
| }
|
| @@ -994,28 +993,13 @@ void GrAtlasTextContext::bmpAppendGlyph(GrAtlasTextBlob* blob, int runIndex,
|
| return;
|
| }
|
|
|
| - GrMaskFormat format = glyph->fMaskFormat;
|
| -
|
| - PerSubRunInfo* subRun = &run.fSubRunInfo.back();
|
| - if (run.fInitialized && subRun->maskFormat() != format) {
|
| - subRun = &run.push_back();
|
| - subRun->setStrike(fCurrStrike);
|
| - } else if (!run.fInitialized) {
|
| - subRun->setStrike(fCurrStrike);
|
| - }
|
| -
|
| - run.fInitialized = true;
|
| -
|
| - size_t vertexStride = GrAtlasTextBatch::GetVertexStride(format);
|
| -
|
| SkRect r;
|
| r.fLeft = SkIntToScalar(x);
|
| r.fTop = SkIntToScalar(y);
|
| r.fRight = r.fLeft + SkIntToScalar(width);
|
| r.fBottom = r.fTop + SkIntToScalar(height);
|
| - subRun->setMaskFormat(format);
|
| - blob->appendGlyph(&run, subRun, r, color, vertexStride,
|
| - kARGB_GrMaskFormat != format, glyph);
|
| +
|
| + blob->appendGlyph(runIndex, r, color, fCurrStrike, glyph);
|
| }
|
|
|
| bool GrAtlasTextContext::dfAppendGlyph(GrAtlasTextBlob* blob, int runIndex,
|
| @@ -1023,7 +1007,6 @@ bool GrAtlasTextContext::dfAppendGlyph(GrAtlasTextBlob* blob, int runIndex,
|
| SkScalar sx, SkScalar sy, GrColor color,
|
| GrFontScaler* scaler,
|
| SkScalar textRatio, const SkMatrix& viewMatrix) {
|
| - Run& run = blob->fRuns[runIndex];
|
| if (!fCurrStrike) {
|
| fCurrStrike = fContext->getBatchFontCache()->getStrike(scaler);
|
| }
|
| @@ -1063,17 +1046,7 @@ bool GrAtlasTextContext::dfAppendGlyph(GrAtlasTextBlob* blob, int runIndex,
|
| return true;
|
| }
|
|
|
| - PerSubRunInfo* subRun = &run.fSubRunInfo.back();
|
| - if (!run.fInitialized) {
|
| - subRun->setStrike(fCurrStrike);
|
| - }
|
| - run.fInitialized = true;
|
| - SkASSERT(glyph->fMaskFormat == kA8_GrMaskFormat);
|
| - subRun->setMaskFormat(kA8_GrMaskFormat);
|
| -
|
| - size_t vertexStride = GrAtlasTextBatch::GetVertexStride(kA8_GrMaskFormat);
|
| -
|
| - blob->appendGlyph(&run, subRun, glyphRect, color, vertexStride, true, glyph);
|
| + blob->appendGlyph(runIndex, glyphRect, color, fCurrStrike, glyph);
|
| return true;
|
| }
|
|
|
|
|