Index: src/gpu/GrOptDrawState.cpp |
diff --git a/src/gpu/GrOptDrawState.cpp b/src/gpu/GrOptDrawState.cpp |
index bc1ce7dc930258052749c203fde00296401dd236..8d28f446b27912d2d6e6687ef54485a73a93e326 100644 |
--- a/src/gpu/GrOptDrawState.cpp |
+++ b/src/gpu/GrOptDrawState.cpp |
@@ -18,15 +18,11 @@ GrOptDrawState::GrOptDrawState(const GrDrawState& drawState, |
const GrDrawTargetCaps& caps, |
const GrScissorState& scissorState, |
const GrDeviceCoordTexture* dstCopy, |
- GrGpu::DrawType drawType) |
- : fFinalized(false) { |
+ GrGpu::DrawType drawType) { |
fDrawType = drawType; |
- fPrimitiveProcessor.reset(primProc); |
- |
- |
- const GrProcOptInfo& colorPOI = drawState.colorProcInfo(fPrimitiveProcessor); |
- const GrProcOptInfo& coveragePOI = drawState.coverageProcInfo(fPrimitiveProcessor); |
+ const GrProcOptInfo& colorPOI = drawState.colorProcInfo(primProc); |
+ const GrProcOptInfo& coveragePOI = drawState.coverageProcInfo(primProc); |
// Create XferProcessor from DS's XPFactory |
SkAutoTUnref<GrXferProcessor> xferProcessor( |
@@ -112,12 +108,10 @@ GrOptDrawState::GrOptDrawState(const GrDrawState& drawState, |
} |
// let the GP init the batch tracker |
- GrGeometryProcessor::InitBT init; |
- init.fColorIgnored = SkToBool(optFlags & GrXferProcessor::kIgnoreColor_OptFlag); |
- init.fOverrideColor = init.fColorIgnored ? GrColor_ILLEGAL : overrideColor; |
- init.fCoverageIgnored = SkToBool(optFlags & GrXferProcessor::kIgnoreCoverage_OptFlag); |
- init.fUsesLocalCoords = usesLocalCoords; |
- fPrimitiveProcessor->initBatchTracker(&fBatchTracker, init); |
+ fInitBT.fColorIgnored = SkToBool(optFlags & GrXferProcessor::kIgnoreColor_OptFlag); |
+ fInitBT.fOverrideColor = fInitBT.fColorIgnored ? GrColor_ILLEGAL : overrideColor; |
+ fInitBT.fCoverageIgnored = SkToBool(optFlags & GrXferProcessor::kIgnoreCoverage_OptFlag); |
+ fInitBT.fUsesLocalCoords = usesLocalCoords; |
} |
void GrOptDrawState::adjustProgramFromOptimizations(const GrDrawState& ds, |
@@ -144,18 +138,9 @@ void GrOptDrawState::adjustProgramFromOptimizations(const GrDrawState& ds, |
} |
} |
-void GrOptDrawState::finalize(GrGpu* gpu) { |
- gpu->buildProgramDesc(*this, fDescInfo, fDrawType, &fDesc); |
- fFinalized = true; |
-} |
- |
//////////////////////////////////////////////////////////////////////////////// |
-bool GrOptDrawState::combineIfPossible(const GrOptDrawState& that) { |
- if (fDescInfo != that.fDescInfo) { |
- return false; |
- } |
- |
+bool GrOptDrawState::isEqual(const GrOptDrawState& that) const { |
if (this->getRenderTarget() != that.getRenderTarget() || |
this->fFragmentStages.count() != that.fFragmentStages.count() || |
this->fNumColorStages != that.fNumColorStages || |
@@ -168,12 +153,6 @@ bool GrOptDrawState::combineIfPossible(const GrOptDrawState& that) { |
return false; |
} |
- if (!this->getPrimitiveProcessor()->canMakeEqual(fBatchTracker, |
- *that.getPrimitiveProcessor(), |
- that.getBatchTracker())) { |
- return false; |
- } |
- |
if (!this->getXferProcessor()->isEqual(*that.getXferProcessor())) { |
return false; |
} |
@@ -186,9 +165,6 @@ bool GrOptDrawState::combineIfPossible(const GrOptDrawState& that) { |
return false; |
} |
} |
- |
- // Now update the GrPrimitiveProcessor's batch tracker |
- fPrimitiveProcessor->makeEqual(&fBatchTracker, that.getBatchTracker()); |
return true; |
} |