| Index: src/gpu/batches/GrAtlasTextBatch.cpp
|
| diff --git a/src/gpu/batches/GrAtlasTextBatch.cpp b/src/gpu/batches/GrAtlasTextBatch.cpp
|
| index fa34036af6e6c1614c62442e1b283d70734332d6..b1ec1f8ef5fada21903083d212ebe40f4c670a83 100644
|
| --- a/src/gpu/batches/GrAtlasTextBatch.cpp
|
| +++ b/src/gpu/batches/GrAtlasTextBatch.cpp
|
| @@ -135,7 +135,7 @@ inline void GrAtlasTextBatch::regenBlob(Target* target, FlushInfo* flushInfo, Bl
|
| static_assert(!regenGlyphs || regenTexCoords, "must regenTexCoords along regenGlyphs");
|
| GrBatchTextStrike* strike = nullptr;
|
| if (regenTexCoords) {
|
| - info->fBulkUseToken.reset();
|
| + info->resetBulkUseToken();
|
|
|
| // We can reuse if we have a valid strike and our descriptors / typeface are the
|
| // same. The override descriptor is only for the non distance field text within
|
| @@ -151,14 +151,14 @@ inline void GrAtlasTextBatch::regenBlob(Target* target, FlushInfo* flushInfo, Bl
|
| *desc = newDesc;
|
| *cache = SkGlyphCache::DetachCache(run->fTypeface, *desc);
|
| *scaler = GrTextContext::GetGrFontScaler(*cache);
|
| - strike = info->fStrike;
|
| + strike = info->strike();
|
| *typeface = run->fTypeface;
|
| }
|
|
|
| if (regenGlyphs) {
|
| strike = fFontCache->getStrike(*scaler);
|
| } else {
|
| - strike = info->fStrike;
|
| + strike = info->strike();
|
| }
|
| }
|
|
|
| @@ -166,7 +166,7 @@ inline void GrAtlasTextBatch::regenBlob(Target* target, FlushInfo* flushInfo, Bl
|
| for (int glyphIdx = 0; glyphIdx < glyphCount; glyphIdx++) {
|
| GrGlyph* glyph = nullptr;
|
| if (regenTexCoords) {
|
| - size_t glyphOffset = glyphIdx + info->fGlyphStartIndex;
|
| + size_t glyphOffset = glyphIdx + info->glyphStartIndex();
|
|
|
| if (regenGlyphs) {
|
| // Get the id from the old glyph, and use the new strike to lookup
|
| @@ -190,12 +190,12 @@ inline void GrAtlasTextBatch::regenBlob(Target* target, FlushInfo* flushInfo, Bl
|
| this->maskFormat());
|
| SkASSERT(success);
|
| }
|
| - fFontCache->addGlyphToBulkAndSetUseToken(&info->fBulkUseToken, glyph,
|
| + fFontCache->addGlyphToBulkAndSetUseToken(info->bulkUseToken(), glyph,
|
| target->currentToken());
|
| }
|
|
|
| intptr_t vertex = reinterpret_cast<intptr_t>(blob->fVertices);
|
| - vertex += info->fVertexStartIndex;
|
| + vertex += info->vertexStartIndex();
|
| vertex += vertexStride * glyphIdx * GrAtlasTextBatch::kVerticesPerGlyph;
|
| regen_vertices<regenPos, regenCol, regenTexCoords>(vertex, glyph, vertexStride,
|
| this->usesDistanceFields(), transX,
|
| @@ -207,10 +207,10 @@ inline void GrAtlasTextBatch::regenBlob(Target* target, FlushInfo* flushInfo, Bl
|
| run->fColor = color;
|
| if (regenTexCoords) {
|
| if (regenGlyphs) {
|
| - info->fStrike.reset(SkRef(strike));
|
| + info->setStrike(strike);
|
| }
|
| - info->fAtlasGeneration = brokenRun ? GrBatchAtlas::kInvalidAtlasGeneration :
|
| - fFontCache->atlasGeneration(this->maskFormat());
|
| + info->setAtlasGeneration(brokenRun ? GrBatchAtlas::kInvalidAtlasGeneration :
|
| + fFontCache->atlasGeneration(this->maskFormat()));
|
| }
|
| }
|
| ///////////////////////////////////////////////////////////////////////////////////////////////////
|
| @@ -378,8 +378,8 @@ void GrAtlasTextBatch::onPrepareDraws(Target* target) const {
|
| // new strike, we instead keep our ref to the old strike and use the packed ids from
|
| // it. These ids will still be valid as long as we hold the ref. When we are done
|
| // updating our cache of the GrGlyph*s, we drop our ref on the old strike
|
| - bool regenerateGlyphs = info.fStrike->isAbandoned();
|
| - bool regenerateTextureCoords = info.fAtlasGeneration != currentAtlasGen ||
|
| + bool regenerateGlyphs = info.strike()->isAbandoned();
|
| + bool regenerateTextureCoords = info.atlasGeneration() != currentAtlasGen ||
|
| regenerateGlyphs;
|
| bool regenerateColors;
|
| if (usesDistanceFields) {
|
| @@ -388,7 +388,7 @@ void GrAtlasTextBatch::onPrepareDraws(Target* target) const {
|
| regenerateColors = kA8_GrMaskFormat == maskFormat && run.fColor != args.fColor;
|
| }
|
| bool regeneratePositions = args.fTransX != 0.f || args.fTransY != 0.f;
|
| - int glyphCount = info.fGlyphEndIndex - info.fGlyphStartIndex;
|
| + int glyphCount = info.glyphCount();
|
|
|
| uint32_t regenMaskBits = kNoRegen;
|
| regenMaskBits |= regeneratePositions ? kRegenPos : 0;
|
| @@ -416,13 +416,14 @@ void GrAtlasTextBatch::onPrepareDraws(Target* target) const {
|
|
|
| // set use tokens for all of the glyphs in our subrun. This is only valid if we
|
| // have a valid atlas generation
|
| - fFontCache->setUseTokenBulk(info.fBulkUseToken, target->currentToken(), maskFormat);
|
| + fFontCache->setUseTokenBulk(*info.bulkUseToken(), target->currentToken(),
|
| + maskFormat);
|
| break;
|
| }
|
|
|
| // now copy all vertices
|
| - size_t byteCount = info.fVertexEndIndex - info.fVertexStartIndex;
|
| - memcpy(currVertex, blob->fVertices + info.fVertexStartIndex, byteCount);
|
| + size_t byteCount = info.byteCount();
|
| + memcpy(currVertex, blob->fVertices + info.vertexStartIndex(), byteCount);
|
|
|
| currVertex += byteCount;
|
| }
|
|
|