Index: src/gpu/GrPipeline.cpp |
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp |
index 7bdc3000d51cc6d24de19661dfcfd448e00cf6ec..4feddb00ab2e43c6d63a8991e0176288a4265c94 100644 |
--- a/src/gpu/GrPipeline.cpp |
+++ b/src/gpu/GrPipeline.cpp |
@@ -30,7 +30,7 @@ |
overrideColor = colorPOI.inputColorToEffectiveStage(); |
} |
- GrXferProcessor::OptFlags optFlags = GrXferProcessor::kNone_OptFlags; |
+ GrXferProcessor::OptFlags optFlags; |
if (xferProcessor) { |
fXferProcessor.reset(xferProcessor.get()); |
@@ -39,11 +39,6 @@ |
pipelineBuilder.getStencil().doesWrite(), |
&overrideColor, |
caps); |
- } |
- |
- // No need to have an override color if it isn't even going to be used. |
- if (SkToBool(GrXferProcessor::kIgnoreColor_OptFlag)) { |
- overrideColor = GrColor_ILLEGAL; |
} |
// When path rendering the stencil settings are not always set on the GrPipelineBuilder |
@@ -103,25 +98,13 @@ |
pipelineBuilder.fCoverageStages[i].processor()->usesLocalCoords(); |
} |
- // Setup info we need to pass to GrPrimitiveProcessors that are used with this GrPipeline. |
- fInfoForPrimitiveProcessor.fFlags = 0; |
- if (!SkToBool(optFlags & GrXferProcessor::kIgnoreColor_OptFlag)) { |
- fInfoForPrimitiveProcessor.fFlags |= GrPipelineInfo::kReadsColor_GrPipelineInfoFlag; |
- } |
- if (GrColor_ILLEGAL != overrideColor) { |
- fInfoForPrimitiveProcessor.fFlags |= GrPipelineInfo::kUseOverrideColor_GrPipelineInfoFlag; |
- fInfoForPrimitiveProcessor.fOverrideColor = overrideColor; |
- } |
- if (!SkToBool(optFlags & GrXferProcessor::kIgnoreCoverage_OptFlag)) { |
- fInfoForPrimitiveProcessor.fFlags |= GrPipelineInfo::kReadsCoverage_GrPipelineInfoFlag; |
- } |
- if (usesLocalCoords) { |
- fInfoForPrimitiveProcessor.fFlags |= GrPipelineInfo::kReadsLocalCoords_GrPipelineInfoFlag; |
- } |
- if (SkToBool(optFlags & GrXferProcessor::kCanTweakAlphaForCoverage_OptFlag)) { |
- fInfoForPrimitiveProcessor.fFlags |= |
- GrPipelineInfo::kCanTweakAlphaForCoverage_GrPipelineInfoFlag; |
- } |
+ // let the GP init the batch tracker |
+ fInitBT.fColorIgnored = SkToBool(optFlags & GrXferProcessor::kIgnoreColor_OptFlag); |
+ fInitBT.fOverrideColor = fInitBT.fColorIgnored ? GrColor_ILLEGAL : overrideColor; |
+ fInitBT.fCoverageIgnored = SkToBool(optFlags & GrXferProcessor::kIgnoreCoverage_OptFlag); |
+ fInitBT.fUsesLocalCoords = usesLocalCoords; |
+ fInitBT.fCanTweakAlphaForCoverage = |
+ SkToBool(optFlags & GrXferProcessor::kCanTweakAlphaForCoverage_OptFlag); |
} |
void GrPipeline::adjustProgramFromOptimizations(const GrPipelineBuilder& pipelineBuilder, |