From 3e9dfdb3784c0cbfecf7589a74aa9aff7ef40abd Mon Sep 17 00:00:00 2001 From: egdaniel Date: Wed, 4 Feb 2015 06:14:22 -0800 Subject: Revert "Move DstCopy on gpu into the GrXferProcessor." This reverts commit 74a11753604768bf461b80cabb66060e8564d82c. TBR=joshualitt@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/896163003 --- src/gpu/GrPipeline.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/gpu/GrPipeline.cpp') diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp index bd508e9dc1..911169e336 100644 --- a/src/gpu/GrPipeline.cpp +++ b/src/gpu/GrPipeline.cpp @@ -48,7 +48,7 @@ void GrPipeline::internalConstructor(const GrPipelineBuilder& pipelineBuilder, const GrDeviceCoordTexture* dstCopy) { // Create XferProcessor from DS's XPFactory SkAutoTUnref xferProcessor( - pipelineBuilder.getXPFactory()->createXferProcessor(colorPOI, coveragePOI, dstCopy, caps)); + pipelineBuilder.getXPFactory()->createXferProcessor(colorPOI, coveragePOI)); GrColor overrideColor = GrColor_ILLEGAL; if (colorPOI.firstEffectiveStageIndex() != 0) { @@ -82,6 +82,10 @@ void GrPipeline::internalConstructor(const GrPipelineBuilder& pipelineBuilder, fScissorState = scissorState; fStencilSettings = pipelineBuilder.getStencil(); fDrawFace = pipelineBuilder.getDrawFace(); + // TODO move this out of GrPipeline + if (dstCopy) { + fDstCopy = *dstCopy; + } fFlags = 0; if (pipelineBuilder.isHWAntialias()) { @@ -103,6 +107,8 @@ void GrPipeline::internalConstructor(const GrPipelineBuilder& pipelineBuilder, this->adjustProgramFromOptimizations(pipelineBuilder, optFlags, colorPOI, coveragePOI, &firstColorStageIdx, &firstCoverageStageIdx); + fDescInfo.fReadsDst = fXferProcessor->willReadDstColor(); + bool usesLocalCoords = false; // Copy Stages from PipelineBuilder to Pipeline @@ -136,20 +142,20 @@ void GrPipeline::adjustProgramFromOptimizations(const GrPipelineBuilder& pipelin const GrProcOptInfo& coveragePOI, int* firstColorStageIdx, int* firstCoverageStageIdx) { - fReadsFragPosition = false; + fDescInfo.fReadsFragPosition = false; if ((flags & GrXferProcessor::kIgnoreColor_OptFlag) || (flags & GrXferProcessor::kOverrideColor_OptFlag)) { *firstColorStageIdx = pipelineBuilder.numColorStages(); } else { - fReadsFragPosition = colorPOI.readsFragPosition(); + fDescInfo.fReadsFragPosition = colorPOI.readsFragPosition(); } if (flags & GrXferProcessor::kIgnoreCoverage_OptFlag) { *firstCoverageStageIdx = pipelineBuilder.numCoverageStages(); } else { if (coveragePOI.readsFragPosition()) { - fReadsFragPosition = true; + fDescInfo.fReadsFragPosition = true; } } } @@ -163,7 +169,8 @@ bool GrPipeline::isEqual(const GrPipeline& that) const { this->fScissorState != that.fScissorState || this->fFlags != that.fFlags || this->fStencilSettings != that.fStencilSettings || - this->fDrawFace != that.fDrawFace) { + this->fDrawFace != that.fDrawFace || + this->fDstCopy.texture() != that.fDstCopy.texture()) { return false; } -- cgit v1.2.3