diff options
Diffstat (limited to 'src/gpu/GrAADistanceFieldPathRenderer.cpp')
-rwxr-xr-x | src/gpu/GrAADistanceFieldPathRenderer.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/gpu/GrAADistanceFieldPathRenderer.cpp b/src/gpu/GrAADistanceFieldPathRenderer.cpp index 21fbcb37fb..b6a9797bc3 100755 --- a/src/gpu/GrAADistanceFieldPathRenderer.cpp +++ b/src/gpu/GrAADistanceFieldPathRenderer.cpp @@ -197,10 +197,9 @@ public: this->viewMatrix(), atlas->getTexture(), params, - flags, - this->usesLocalCoords())); + flags)); - batchTarget->initDraw(dfProcessor, pipeline); + this->initDraw(batchTarget, dfProcessor, pipeline); FlushInfo flushInfo; @@ -415,7 +414,7 @@ private: &atlasLocation); if (!success) { this->flush(batchTarget, flushInfo); - batchTarget->initDraw(dfProcessor, pipeline); + this->initDraw(batchTarget, dfProcessor, pipeline); SkDEBUGCODE(success =) atlas->addToAtlas(&id, batchTarget, width, height, dfStorage.get(), &atlasLocation); @@ -492,6 +491,20 @@ private: vertexStride); } + void initDraw(GrBatchTarget* batchTarget, + const GrGeometryProcessor* dfProcessor, + const GrPipeline* pipeline) { + batchTarget->initDraw(dfProcessor, pipeline); + + // TODO remove this when batch is everywhere + GrPipelineInfo init; + init.fColorIgnored = fBatch.fColorIgnored; + init.fOverrideColor = GrColor_ILLEGAL; + init.fCoverageIgnored = fBatch.fCoverageIgnored; + init.fUsesLocalCoords = this->usesLocalCoords(); + dfProcessor->initBatchTracker(batchTarget->currentBatchTracker(), init); + } + void flush(GrBatchTarget* batchTarget, FlushInfo* flushInfo) { GrVertices vertices; int maxInstancesPerDraw = flushInfo->fIndexBuffer->maxQuads(); |