diff options
Diffstat (limited to 'src/gpu/GrPipeline.cpp')
-rw-r--r-- | src/gpu/GrPipeline.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp index 4083afae1c..a0eceb32af 100644 --- a/src/gpu/GrPipeline.cpp +++ b/src/gpu/GrPipeline.cpp @@ -48,12 +48,9 @@ GrPipeline::GrPipeline(const InitArgs& args, GrProcessorSet&& processors, // Copy GrFragmentProcessors from GrProcessorSet to Pipeline fNumColorProcessors = processors.numColorFragmentProcessors(); - int numTotalProcessors = - fNumColorProcessors + processors.numCoverageFragmentProcessors(); - auto clipFP = appliedClip.detachClipCoverageFragmentProcessor(); - if (clipFP) { - ++numTotalProcessors; - } + int numTotalProcessors = fNumColorProcessors + + processors.numCoverageFragmentProcessors() + + appliedClip.numClipCoverageFragmentProcessors(); fFragmentProcessors.reset(numTotalProcessors); int currFPIdx = 0; for (int i = 0; i < processors.numColorFragmentProcessors(); ++i, ++currFPIdx) { @@ -62,15 +59,14 @@ GrPipeline::GrPipeline(const InitArgs& args, GrProcessorSet&& processors, this->markAsBad(); } } - for (int i = 0; i < processors.numCoverageFragmentProcessors(); ++i, ++currFPIdx) { fFragmentProcessors[currFPIdx] = processors.detachCoverageFragmentProcessor(i); if (!fFragmentProcessors[currFPIdx]->instantiate(args.fResourceProvider)) { this->markAsBad(); } } - if (clipFP) { - fFragmentProcessors[currFPIdx] = std::move(clipFP); + for (int i = 0; i < appliedClip.numClipCoverageFragmentProcessors(); ++i, ++currFPIdx) { + fFragmentProcessors[currFPIdx] = appliedClip.detachClipCoverageFragmentProcessor(i); if (!fFragmentProcessors[currFPIdx]->instantiate(args.fResourceProvider)) { this->markAsBad(); } |