| Index: src/gpu/GrAtlasTextContext.cpp
|
| diff --git a/src/gpu/GrAtlasTextContext.cpp b/src/gpu/GrAtlasTextContext.cpp
|
| index b6e0acc58f8660d7fd6b60fabebe94390df443dd..fbfb2e1c94d26034ebf470444abfe23f4b5a6c68 100644
|
| --- a/src/gpu/GrAtlasTextContext.cpp
|
| +++ b/src/gpu/GrAtlasTextContext.cpp
|
| @@ -7,7 +7,7 @@
|
| #include "GrAtlasTextContext.h"
|
|
|
| #include "GrBatchFontCache.h"
|
| -#include "GrBatchTarget.h"
|
| +#include "GrBatchFlushState.h"
|
| #include "GrBatchTest.h"
|
| #include "GrBlurUtils.h"
|
| #include "GrDefaultGeoProcFactory.h"
|
| @@ -1535,7 +1535,7 @@ public:
|
| int fVertexOffset;
|
| };
|
|
|
| - void generateGeometry(GrBatchTarget* batchTarget) override {
|
| + void onPrepareDraws(Target* target) override {
|
| // if we have RGB, then we won't have any SkShaders so no need to use a localmatrix.
|
| // TODO actually only invert if we don't have RGBA
|
| SkMatrix localMatrix;
|
| @@ -1575,17 +1575,17 @@ public:
|
| get_vertex_stride_df(maskFormat, isLCD) :
|
| get_vertex_stride(maskFormat)));
|
|
|
| - batchTarget->initDraw(gp, this->pipeline());
|
| + target->initDraw(gp, this->pipeline());
|
|
|
| int glyphCount = this->numGlyphs();
|
| const GrVertexBuffer* vertexBuffer;
|
|
|
| - void* vertices = batchTarget->makeVertSpace(vertexStride,
|
| - glyphCount * kVerticesPerGlyph,
|
| - &vertexBuffer,
|
| - &flushInfo.fVertexOffset);
|
| + void* vertices = target->makeVertexSpace(vertexStride,
|
| + glyphCount * kVerticesPerGlyph,
|
| + &vertexBuffer,
|
| + &flushInfo.fVertexOffset);
|
| flushInfo.fVertexBuffer.reset(SkRef(vertexBuffer));
|
| - flushInfo.fIndexBuffer.reset(batchTarget->resourceProvider()->refQuadIndexBuffer());
|
| + flushInfo.fIndexBuffer.reset(target->resourceProvider()->refQuadIndexBuffer());
|
| if (!vertices || !flushInfo.fVertexBuffer) {
|
| SkDebugf("Could not allocate vertices\n");
|
| return;
|
| @@ -1689,13 +1689,12 @@ public:
|
| //SkASSERT(glyph->fMaskFormat == this->maskFormat());
|
|
|
| if (!fFontCache->hasGlyph(glyph) &&
|
| - !strike->addGlyphToAtlas(batchTarget, glyph, scaler, skGlyph,
|
| - maskFormat)) {
|
| - this->flush(batchTarget, &flushInfo);
|
| - batchTarget->initDraw(gp, this->pipeline());
|
| + !strike->addGlyphToAtlas(target, glyph, scaler, skGlyph, maskFormat)) {
|
| + this->flush(target, &flushInfo);
|
| + target->initDraw(gp, this->pipeline());
|
| brokenRun = glyphIdx > 0;
|
|
|
| - SkDEBUGCODE(bool success =) strike->addGlyphToAtlas(batchTarget,
|
| + SkDEBUGCODE(bool success =) strike->addGlyphToAtlas(target,
|
| glyph,
|
| scaler,
|
| skGlyph,
|
| @@ -1703,7 +1702,7 @@ public:
|
| SkASSERT(success);
|
| }
|
| fFontCache->addGlyphToBulkAndSetUseToken(&info.fBulkUseToken, glyph,
|
| - batchTarget->currentToken());
|
| + target->currentToken());
|
|
|
| // Texture coords are the last vertex attribute so we get a pointer to the
|
| // first one and then map with stride in regenerateTextureCoords
|
| @@ -1747,9 +1746,7 @@ public:
|
|
|
| // 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,
|
| - batchTarget->currentToken(),
|
| - maskFormat);
|
| + fFontCache->setUseTokenBulk(info.fBulkUseToken, target->currentToken(), maskFormat);
|
| }
|
|
|
| // now copy all vertices
|
| @@ -1762,7 +1759,7 @@ public:
|
| if (cache) {
|
| SkGlyphCache::AttachCache(cache);
|
| }
|
| - this->flush(batchTarget, &flushInfo);
|
| + this->flush(target, &flushInfo);
|
| }
|
|
|
| // to avoid even the initial copy of the struct, we have a getter for the first item which
|
| @@ -1875,14 +1872,14 @@ private:
|
| }
|
| }
|
|
|
| - void flush(GrBatchTarget* batchTarget, FlushInfo* flushInfo) {
|
| + void flush(GrVertexBatch::Target* target, FlushInfo* flushInfo) {
|
| GrVertices vertices;
|
| int maxGlyphsPerDraw = flushInfo->fIndexBuffer->maxQuads();
|
| vertices.initInstanced(kTriangles_GrPrimitiveType, flushInfo->fVertexBuffer,
|
| flushInfo->fIndexBuffer, flushInfo->fVertexOffset,
|
| kVerticesPerGlyph, kIndicesPerGlyph, flushInfo->fGlyphsToFlush,
|
| maxGlyphsPerDraw);
|
| - batchTarget->draw(vertices);
|
| + target->draw(vertices);
|
| flushInfo->fVertexOffset += kVerticesPerGlyph * flushInfo->fGlyphsToFlush;
|
| flushInfo->fGlyphsToFlush = 0;
|
| }
|
|
|