Index: src/gpu/GrPipeline.cpp |
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp |
index 73b20a9042065f3d99b4b1cc67f8131fb6286329..aef528d096bbe258dbbb372405f4ebbf9f4a8c59 100644 |
--- a/src/gpu/GrPipeline.cpp |
+++ b/src/gpu/GrPipeline.cpp |
@@ -17,23 +17,23 @@ |
#include "batches/GrBatch.h" |
GrPipeline* GrPipeline::CreateAt(void* memory, const CreateArgs& args, |
- GrPipelineOptimizations* opts) { |
+ GrXPOverridesForBatch* overrides) { |
const GrPipelineBuilder& builder = *args.fPipelineBuilder; |
// Create XferProcessor from DS's XPFactory |
const GrXPFactory* xpFactory = builder.getXPFactory(); |
SkAutoTUnref<GrXferProcessor> xferProcessor; |
if (xpFactory) { |
- xferProcessor.reset(xpFactory->createXferProcessor(args.fColorPOI, |
- args.fCoveragePOI, |
+ xferProcessor.reset(xpFactory->createXferProcessor(args.fOpts.fColorPOI, |
+ args.fOpts.fCoveragePOI, |
builder.hasMixedSamples(), |
&args.fDstTexture, |
*args.fCaps)); |
} else { |
xferProcessor.reset(GrPorterDuffXPFactory::CreateSrcOverXferProcessor( |
*args.fCaps, |
- args.fColorPOI, |
- args.fCoveragePOI, |
+ args.fOpts.fColorPOI, |
+ args.fOpts.fCoveragePOI, |
builder.hasMixedSamples(), |
&args.fDstTexture)); |
} |
@@ -43,17 +43,17 @@ GrPipeline* GrPipeline::CreateAt(void* memory, const CreateArgs& args, |
} |
GrColor overrideColor = GrColor_ILLEGAL; |
- if (args.fColorPOI.firstEffectiveProcessorIndex() != 0) { |
- overrideColor = args.fColorPOI.inputColorToFirstEffectiveProccesor(); |
+ if (args.fOpts.fColorPOI.firstEffectiveProcessorIndex() != 0) { |
+ overrideColor = args.fOpts.fColorPOI.inputColorToFirstEffectiveProccesor(); |
} |
GrXferProcessor::OptFlags optFlags = GrXferProcessor::kNone_OptFlags; |
- optFlags = xferProcessor->getOptimizations(args.fColorPOI, |
- args.fCoveragePOI, |
- builder.getStencil().doesWrite(), |
- &overrideColor, |
- *args.fCaps); |
+ optFlags = xferProcessor->getOptimizations(args.fOpts.fColorPOI, |
+ args.fOpts.fCoveragePOI, |
+ builder.getStencil().doesWrite(), |
+ &overrideColor, |
+ *args.fCaps); |
// When path rendering the stencil settings are not always set on the GrPipelineBuilder |
// so we must check the draw type. In cases where we will skip drawing we simply return a |
@@ -84,15 +84,16 @@ GrPipeline* GrPipeline::CreateAt(void* memory, const CreateArgs& args, |
pipeline->fFlags |= kSnapVertices_Flag; |
} |
- int firstColorProcessorIdx = args.fColorPOI.firstEffectiveProcessorIndex(); |
+ int firstColorProcessorIdx = args.fOpts.fColorPOI.firstEffectiveProcessorIndex(); |
// TODO: Once we can handle single or four channel input into coverage GrFragmentProcessors |
// then we can use GrPipelineBuilder's coverageProcInfo (like color above) to set this initial |
// information. |
int firstCoverageProcessorIdx = 0; |
- pipeline->adjustProgramFromOptimizations(builder, optFlags, args.fColorPOI, args.fCoveragePOI, |
- &firstColorProcessorIdx, &firstCoverageProcessorIdx); |
+ pipeline->adjustProgramFromOptimizations(builder, optFlags, args.fOpts.fColorPOI, |
+ args.fOpts.fCoveragePOI, &firstColorProcessorIdx, |
+ &firstCoverageProcessorIdx); |
bool usesLocalCoords = false; |
@@ -117,35 +118,35 @@ GrPipeline* GrPipeline::CreateAt(void* memory, const CreateArgs& args, |
} |
// Setup info we need to pass to GrPrimitiveProcessors that are used with this GrPipeline. |
- opts->fFlags = 0; |
+ overrides->fFlags = 0; |
if (!SkToBool(optFlags & GrXferProcessor::kIgnoreColor_OptFlag)) { |
- opts->fFlags |= GrPipelineOptimizations::kReadsColor_Flag; |
+ overrides->fFlags |= GrXPOverridesForBatch::kReadsColor_Flag; |
} |
if (GrColor_ILLEGAL != overrideColor) { |
- opts->fFlags |= GrPipelineOptimizations::kUseOverrideColor_Flag; |
- opts->fOverrideColor = overrideColor; |
+ overrides->fFlags |= GrXPOverridesForBatch::kUseOverrideColor_Flag; |
+ overrides->fOverrideColor = overrideColor; |
} |
if (!SkToBool(optFlags & GrXferProcessor::kIgnoreCoverage_OptFlag)) { |
- opts->fFlags |= GrPipelineOptimizations::kReadsCoverage_Flag; |
+ overrides->fFlags |= GrXPOverridesForBatch::kReadsCoverage_Flag; |
} |
if (usesLocalCoords) { |
- opts->fFlags |= GrPipelineOptimizations::kReadsLocalCoords_Flag; |
+ overrides->fFlags |= GrXPOverridesForBatch::kReadsLocalCoords_Flag; |
} |
if (SkToBool(optFlags & GrXferProcessor::kCanTweakAlphaForCoverage_OptFlag)) { |
- opts->fFlags |= GrPipelineOptimizations::kCanTweakAlphaForCoverage_Flag; |
+ overrides->fFlags |= GrXPOverridesForBatch::kCanTweakAlphaForCoverage_Flag; |
} |
GrXPFactory::InvariantBlendedColor blendedColor; |
if (xpFactory) { |
- xpFactory->getInvariantBlendedColor(args.fColorPOI, &blendedColor); |
+ xpFactory->getInvariantBlendedColor(args.fOpts.fColorPOI, &blendedColor); |
} else { |
- GrPorterDuffXPFactory::SrcOverInvariantBlendedColor(args.fColorPOI.color(), |
- args.fColorPOI.validFlags(), |
- args.fColorPOI.isOpaque(), |
+ GrPorterDuffXPFactory::SrcOverInvariantBlendedColor(args.fOpts.fColorPOI.color(), |
+ args.fOpts.fColorPOI.validFlags(), |
+ args.fOpts.fColorPOI.isOpaque(), |
&blendedColor); |
} |
if (blendedColor.fWillBlendWithDst) { |
- opts->fFlags |= GrPipelineOptimizations::kWillColorBlendWithDst_Flag; |
+ overrides->fFlags |= GrXPOverridesForBatch::kWillColorBlendWithDst_Flag; |
} |
return pipeline; |