| Index: src/gpu/GrDrawState.cpp
|
| diff --git a/src/gpu/GrDrawState.cpp b/src/gpu/GrDrawState.cpp
|
| index 6558b0d5facc8785587116f9c19b255b3a40fc86..fef549463a327d0236f647a18243f6d01ecd5e4b 100644
|
| --- a/src/gpu/GrDrawState.cpp
|
| +++ b/src/gpu/GrDrawState.cpp
|
| @@ -72,43 +72,6 @@ bool GrDrawState::isEqual(const GrDrawState& that) const {
|
| return true;
|
| }
|
|
|
| -GrDrawState::CombinedState GrDrawState::CombineIfPossible(
|
| - const GrDrawState& a, const GrDrawState& b, const GrDrawTargetCaps& caps) {
|
| -
|
| - if (!a.isEqual(b)) {
|
| - return kIncompatible_CombinedState;
|
| - }
|
| -
|
| - // If the general draw states are equal (from check above) we know hasColorVertexAttribute()
|
| - // is equivalent for both a and b
|
| - if (a.hasColorVertexAttribute()) {
|
| - // If one is opaque and the other is not then the combined state is not opaque. Moreover,
|
| - // if the opaqueness affects the ability to get color/coverage blending correct then we
|
| - // don't combine the draw states.
|
| - bool aIsOpaque = (kVertexColorsAreOpaque_Hint & a.fHints);
|
| - bool bIsOpaque = (kVertexColorsAreOpaque_Hint & b.fHints);
|
| - if (aIsOpaque != bIsOpaque) {
|
| - const GrDrawState* opaque;
|
| - const GrDrawState* nonOpaque;
|
| - if (aIsOpaque) {
|
| - opaque = &a;
|
| - nonOpaque = &b;
|
| - } else {
|
| - opaque = &b;
|
| - nonOpaque = &a;
|
| - }
|
| - if (!opaque->hasSolidCoverage() && opaque->couldApplyCoverage(caps)) {
|
| - SkASSERT(!nonOpaque->hasSolidCoverage());
|
| - if (!nonOpaque->couldApplyCoverage(caps)) {
|
| - return kIncompatible_CombinedState;
|
| - }
|
| - }
|
| - return aIsOpaque ? kB_CombinedState : kA_CombinedState;
|
| - }
|
| - }
|
| - return kAOrB_CombinedState;
|
| -}
|
| -
|
| //////////////////////////////////////////////////////////////////////////////s
|
|
|
| GrDrawState::GrDrawState(const GrDrawState& state, const SkMatrix& preConcatMatrix) {
|
| @@ -125,10 +88,7 @@ GrDrawState::GrDrawState(const GrDrawState& state, const SkMatrix& preConcatMatr
|
| }
|
|
|
| GrDrawState& GrDrawState::operator=(const GrDrawState& that) {
|
| - SkASSERT(0 == fBlockEffectRemovalCnt || 0 == this->numTotalStages());
|
| - SkASSERT(!that.fRenderTarget.ownsPendingIO());
|
| - SkASSERT(!this->fRenderTarget.ownsPendingIO());
|
| - this->setRenderTarget(that.getRenderTarget());
|
| + fRenderTarget.reset(SkSafeRef(that.fRenderTarget.get()));
|
| fColor = that.fColor;
|
| fViewMatrix = that.fViewMatrix;
|
| fSrcBlend = that.fSrcBlend;
|
| @@ -141,11 +101,7 @@ GrDrawState& GrDrawState::operator=(const GrDrawState& that) {
|
| fStencilSettings = that.fStencilSettings;
|
| fCoverage = that.fCoverage;
|
| fDrawFace = that.fDrawFace;
|
| - if (that.hasGeometryProcessor()) {
|
| - fGeometryProcessor.initAndRef(that.fGeometryProcessor);
|
| - } else {
|
| - fGeometryProcessor.reset(NULL);
|
| - }
|
| + fGeometryProcessor.reset(SkSafeRef(that.fGeometryProcessor.get()));
|
| fColorStages = that.fColorStages;
|
| fCoverageStages = that.fCoverageStages;
|
|
|
| @@ -168,13 +124,12 @@ GrDrawState& GrDrawState::operator=(const GrDrawState& that) {
|
|
|
| void GrDrawState::onReset(const SkMatrix* initialViewMatrix) {
|
| SkASSERT(0 == fBlockEffectRemovalCnt || 0 == this->numTotalStages());
|
| - SkASSERT(!fRenderTarget.ownsPendingIO());
|
| + fRenderTarget.reset(NULL);
|
|
|
| fGeometryProcessor.reset(NULL);
|
| fColorStages.reset();
|
| fCoverageStages.reset();
|
|
|
| - fRenderTarget.reset();
|
|
|
| this->setDefaultVertexAttribs();
|
|
|
| @@ -577,22 +532,6 @@ void GrDrawState::AutoViewMatrixRestore::doEffectCoordChanges(const SkMatrix& co
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|
| -void GrDrawState::convertToPendingExec() {
|
| - fRenderTarget.markPendingIO();
|
| - fRenderTarget.removeRef();
|
| - for (int i = 0; i < fColorStages.count(); ++i) {
|
| - fColorStages[i].convertToPendingExec();
|
| - }
|
| - if (fGeometryProcessor) {
|
| - fGeometryProcessor.convertToPendingExec();
|
| - }
|
| - for (int i = 0; i < fCoverageStages.count(); ++i) {
|
| - fCoverageStages[i].convertToPendingExec();
|
| - }
|
| -}
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -
|
| GrDrawState::~GrDrawState() {
|
| SkASSERT(0 == fBlockEffectRemovalCnt);
|
| }
|
|
|