Index: src/gpu/GrInOrderCommandBuilder.cpp |
diff --git a/src/gpu/GrInOrderCommandBuilder.cpp b/src/gpu/GrInOrderCommandBuilder.cpp |
index b9387e9486c49de4f7ee12e4310b0c177427b2a9..bbe42a6de5fdbafb82d80e9b12ebea5a93d72428 100644 |
--- a/src/gpu/GrInOrderCommandBuilder.cpp |
+++ b/src/gpu/GrInOrderCommandBuilder.cpp |
@@ -12,19 +12,6 @@ |
#include "GrColor.h" |
#include "SkPoint.h" |
-static bool path_fill_type_is_winding(const GrStencilSettings& pathStencilSettings) { |
- static const GrStencilSettings::Face pathFace = GrStencilSettings::kFront_Face; |
- bool isWinding = kInvert_StencilOp != pathStencilSettings.passOp(pathFace); |
- if (isWinding) { |
- // Double check that it is in fact winding. |
- SkASSERT(kIncClamp_StencilOp == pathStencilSettings.passOp(pathFace)); |
- SkASSERT(kIncClamp_StencilOp == pathStencilSettings.failOp(pathFace)); |
- SkASSERT(0x1 != pathStencilSettings.writeMask(pathFace)); |
- SkASSERT(!pathStencilSettings.isTwoSided()); |
- } |
- return isWinding; |
-} |
- |
GrTargetCommands::Cmd* GrInOrderCommandBuilder::recordDrawBatch(GrBatch* batch, |
const GrCaps& caps) { |
GrBATCH_INFO("In-Recording (%s, %u)\n", batch->name(), batch->uniqueID()); |
@@ -40,65 +27,3 @@ GrTargetCommands::Cmd* GrInOrderCommandBuilder::recordDrawBatch(GrBatch* batch, |
return GrNEW_APPEND_TO_RECORDER(*this->cmdBuffer(), DrawBatch, (batch)); |
} |
- |
-GrTargetCommands::Cmd* |
-GrInOrderCommandBuilder::recordDrawPaths(State* state, |
- GrBufferedDrawTarget* bufferedDrawTarget, |
- const GrPathProcessor* pathProc, |
- const GrPathRange* pathRange, |
- const void* indexValues, |
- GrDrawTarget::PathIndexType indexType, |
- const float transformValues[], |
- GrDrawTarget::PathTransformType transformType, |
- int count, |
- const GrStencilSettings& stencilSettings, |
- const GrPipelineOptimizations& opts) { |
- SkASSERT(pathRange); |
- SkASSERT(indexValues); |
- SkASSERT(transformValues); |
- |
- char* savedIndices; |
- float* savedTransforms; |
- |
- bufferedDrawTarget->appendIndicesAndTransforms(indexValues, indexType, |
- transformValues, transformType, |
- count, &savedIndices, &savedTransforms); |
- |
- if (!this->cmdBuffer()->empty() && |
- Cmd::kDrawPaths_CmdType == this->cmdBuffer()->back().type()) { |
- // Try to combine this call with the previous DrawPaths. We do this by stenciling all the |
- // paths together and then covering them in a single pass. This is not equivalent to two |
- // separate draw calls, so we can only do it if there is no blending (no overlap would also |
- // work). Note that it's also possible for overlapping paths to cancel each other's winding |
- // numbers, and we only partially account for this by not allowing even/odd paths to be |
- // combined. (Glyphs in the same font tend to wind the same direction so it works out OK.) |
- DrawPaths* previous = static_cast<DrawPaths*>(&this->cmdBuffer()->back()); |
- if (pathRange == previous->pathRange() && |
- indexType == previous->fIndexType && |
- transformType == previous->fTransformType && |
- stencilSettings == previous->fStencilSettings && |
- path_fill_type_is_winding(stencilSettings) && |
- previous->fState == state && |
- !opts.willColorBlendWithDst()) { |
- |
- const int indexBytes = GrPathRange::PathIndexSizeInBytes(indexType); |
- const int xformSize = GrPathRendering::PathTransformSize(transformType); |
- if (&previous->fIndices[previous->fCount * indexBytes] == savedIndices && |
- (0 == xformSize || |
- &previous->fTransforms[previous->fCount * xformSize] == savedTransforms)) { |
- // Combine this DrawPaths call with the one previous. |
- previous->fCount += count; |
- return nullptr; |
- } |
- } |
- } |
- |
- DrawPaths* dp = GrNEW_APPEND_TO_RECORDER(*this->cmdBuffer(), DrawPaths, (state, pathRange)); |
- dp->fIndices = savedIndices; |
- dp->fIndexType = indexType; |
- dp->fTransforms = savedTransforms; |
- dp->fTransformType = transformType; |
- dp->fCount = count; |
- dp->fStencilSettings = stencilSettings; |
- return dp; |
-} |