diff options
author | 2015-08-26 06:48:27 -0700 | |
---|---|---|
committer | 2015-08-26 06:48:27 -0700 | |
commit | 4bf69f7bbc073c1dc257f93f8c5b2a530123cb3c (patch) | |
tree | d6c670d7230600b174d6f08799a7ad1f4b9c002e /src/gpu/GrPipelineBuilder.cpp | |
parent | 8cce8f139e4b91783722f11ccb6ac9bbdf8327e7 (diff) |
Revert of Remove GrStagedProcessor, remove the word Stage as it applies to FPs (patchset #6 id:90001 of https://codereview.chromium.org/1307223004/ )
Reason for revert:
Causes bot failures:
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/1639
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/1702
https://uberchromegw.corp.google.com/i/client.skia.android/builders/Test-Android-GCC-NexusPlayer-GPU-PowerVR-x86-Debug/builds/1223
Original issue's description:
> Remove GrStagedProcessor, remove the word Stage as it applies to FPs
>
> Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7
TBR=joshualitt@google.com,egdaniel@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1306803003
Diffstat (limited to 'src/gpu/GrPipelineBuilder.cpp')
-rw-r--r-- | src/gpu/GrPipelineBuilder.cpp | 66 |
1 files changed, 35 insertions, 31 deletions
diff --git a/src/gpu/GrPipelineBuilder.cpp b/src/gpu/GrPipelineBuilder.cpp index 0fb8ac0cca..64a1d0c428 100644 --- a/src/gpu/GrPipelineBuilder.cpp +++ b/src/gpu/GrPipelineBuilder.cpp @@ -22,6 +22,20 @@ GrPipelineBuilder::GrPipelineBuilder() SkDEBUGCODE(fBlockEffectRemovalCnt = 0;) } +GrPipelineBuilder& GrPipelineBuilder::operator=(const GrPipelineBuilder& that) { + fProcDataManager.reset(SkNEW_ARGS(GrProcessorDataManager, (*that.processorDataManager()))); + fRenderTarget.reset(SkSafeRef(that.fRenderTarget.get())); + fFlags = that.fFlags; + fStencilSettings = that.fStencilSettings; + fDrawFace = that.fDrawFace; + fXPFactory.reset(SkRef(that.getXPFactory())); + fColorStages = that.fColorStages; + fCoverageStages = that.fCoverageStages; + fClip = that.fClip; + + return *this; +} + GrPipelineBuilder::GrPipelineBuilder(const GrPaint& paint, GrRenderTarget* rt, const GrClip& clip) { SkDEBUGCODE(fBlockEffectRemovalCnt = 0;) @@ -29,12 +43,15 @@ GrPipelineBuilder::GrPipelineBuilder(const GrPaint& paint, GrRenderTarget* rt, c fProcDataManager.reset( const_cast<GrProcessorDataManager*>(SkRef(paint.processorDataManager()))); - for (int i = 0; i < paint.numColorFragmentProcessors(); ++i) { - fColorFragmentProcessors.push_back(SkRef(paint.getColorFragmentProcessor(i))); + fColorStages.reset(); + fCoverageStages.reset(); + + for (int i = 0; i < paint.numColorStages(); ++i) { + fColorStages.push_back(paint.getColorStage(i)); } - for (int i = 0; i < paint.numCoverageFragmentProcessors(); ++i) { - fCoverageFragmentProcessors.push_back(SkRef(paint.getCoverageFragmentProcessor(i))); + for (int i = 0; i < paint.numCoverageStages(); ++i) { + fCoverageStages.push_back(paint.getCoverageStage(i)); } fXPFactory.reset(SkRef(paint.getXPFactory())); @@ -65,26 +82,21 @@ bool GrPipelineBuilder::willXPNeedDstTexture(const GrCaps& caps, void GrPipelineBuilder::AutoRestoreFragmentProcessorState::set( const GrPipelineBuilder* pipelineBuilder) { if (fPipelineBuilder) { - int m = fPipelineBuilder->numColorFragmentProcessors() - fColorEffectCnt; + int m = fPipelineBuilder->numColorFragmentStages() - fColorEffectCnt; SkASSERT(m >= 0); - for (int i = 0; i < m; ++i) { - fPipelineBuilder->fColorFragmentProcessors.fromBack(i)->unref(); - } - fPipelineBuilder->fColorFragmentProcessors.pop_back_n(m); + fPipelineBuilder->fColorStages.pop_back_n(m); - int n = fPipelineBuilder->numCoverageFragmentProcessors() - fCoverageEffectCnt; + int n = fPipelineBuilder->numCoverageFragmentStages() - fCoverageEffectCnt; SkASSERT(n >= 0); - for (int i = 0; i < n; ++i) { - fPipelineBuilder->fCoverageFragmentProcessors.fromBack(i)->unref(); - } - fPipelineBuilder->fCoverageFragmentProcessors.pop_back_n(n); + fPipelineBuilder->fCoverageStages.pop_back_n(n); + SkDEBUGCODE(--fPipelineBuilder->fBlockEffectRemovalCnt;) fPipelineBuilder->getProcessorDataManager()->restoreToSaveMarker(/*fSaveMarker*/); } fPipelineBuilder = const_cast<GrPipelineBuilder*>(pipelineBuilder); if (NULL != pipelineBuilder) { - fColorEffectCnt = pipelineBuilder->numColorFragmentProcessors(); - fCoverageEffectCnt = pipelineBuilder->numCoverageFragmentProcessors(); + fColorEffectCnt = pipelineBuilder->numColorFragmentStages(); + fCoverageEffectCnt = pipelineBuilder->numCoverageFragmentStages(); SkDEBUGCODE(++pipelineBuilder->fBlockEffectRemovalCnt;) fSaveMarker = pipelineBuilder->processorDataManager()->currentSaveMarker(); } @@ -94,33 +106,25 @@ void GrPipelineBuilder::AutoRestoreFragmentProcessorState::set( GrPipelineBuilder::~GrPipelineBuilder() { SkASSERT(0 == fBlockEffectRemovalCnt); - for (int i = 0; i < fColorFragmentProcessors.count(); ++i) { - fColorFragmentProcessors[i]->unref(); - } - for (int i = 0; i < fCoverageFragmentProcessors.count(); ++i) { - fCoverageFragmentProcessors[i]->unref(); - } } //////////////////////////////////////////////////////////////////////////////// void GrPipelineBuilder::calcColorInvariantOutput(const GrPrimitiveProcessor* pp) const { - fColorProcInfo.calcColorWithPrimProc(pp, fColorFragmentProcessors.begin(), - this->numColorFragmentProcessors()); - + fColorProcInfo.calcColorWithPrimProc(pp, fColorStages.begin(), this->numColorFragmentStages()); } void GrPipelineBuilder::calcCoverageInvariantOutput(const GrPrimitiveProcessor* pp) const { - fCoverageProcInfo.calcCoverageWithPrimProc(pp, fCoverageFragmentProcessors.begin(), - this->numCoverageFragmentProcessors()); + fCoverageProcInfo.calcCoverageWithPrimProc(pp, fCoverageStages.begin(), + this->numCoverageFragmentStages()); } void GrPipelineBuilder::calcColorInvariantOutput(const GrDrawBatch* batch) const { - fColorProcInfo.calcColorWithBatch(batch, fColorFragmentProcessors.begin(), - this->numColorFragmentProcessors()); + fColorProcInfo.calcColorWithBatch(batch, fColorStages.begin(), this->numColorFragmentStages()); } void GrPipelineBuilder::calcCoverageInvariantOutput(const GrDrawBatch* batch) const { - fCoverageProcInfo.calcCoverageWithBatch(batch, fCoverageFragmentProcessors.begin(), - this->numCoverageFragmentProcessors()); + fCoverageProcInfo.calcCoverageWithBatch(batch, fCoverageStages.begin(), + this->numCoverageFragmentStages()); } + |