Index: src/gpu/GrPipeline.cpp |
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp |
index 4feddb00ab2e43c6d63a8991e0176288a4265c94..e3a9259867e369ce381ed56fa3fc43f5d48c1672 100644 |
--- a/src/gpu/GrPipeline.cpp |
+++ b/src/gpu/GrPipeline.cpp |
@@ -98,13 +98,25 @@ GrPipeline::GrPipeline(const GrPipelineBuilder& pipelineBuilder, |
pipelineBuilder.fCoverageStages[i].processor()->usesLocalCoords(); |
} |
- // 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); |
+ // 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; |
+ } |
} |
void GrPipeline::adjustProgramFromOptimizations(const GrPipelineBuilder& pipelineBuilder, |