diff options
author | 2012-03-27 14:34:08 +0000 | |
---|---|---|
committer | 2012-03-27 14:34:08 +0000 | |
commit | 290e5363bb630be97bcf6777be77a7ca9b04f3c1 (patch) | |
tree | 9ef741fbc2e282db39a03c46ea5fa4e2af0e5868 /src/gpu/GrInOrderDrawBuffer.cpp | |
parent | 67bddc497e30034c78e08de1f35502293a885596 (diff) |
Revert 3503
git-svn-id: http://skia.googlecode.com/svn/trunk@3504 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/gpu/GrInOrderDrawBuffer.cpp')
-rw-r--r-- | src/gpu/GrInOrderDrawBuffer.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp index 37cac0fa65..05f9a3f878 100644 --- a/src/gpu/GrInOrderDrawBuffer.cpp +++ b/src/gpu/GrInOrderDrawBuffer.cpp @@ -509,10 +509,9 @@ void GrInOrderDrawBuffer::playback(GrDrawTarget* target) { fVertexPool.unlock(); fIndexPool.unlock(); + GrDrawTarget::AutoStateRestore asr(target); GrDrawTarget::AutoClipRestore acr(target); AutoGeometryPush agp(target); - GrDrawState* prevDrawState = target->drawState(); - prevDrawState->ref(); int currState = ~0; int currClip = ~0; @@ -528,8 +527,7 @@ void GrInOrderDrawBuffer::playback(GrDrawTarget* target) { const Draw& draw = fDraws[i]; if (draw.fStateChanged) { ++currState; - GrDrawState* ds = &GrDrawTarget::accessSavedDrawState(fStates[currState]); - target->setDrawState(ds); + target->restoreDrawState(fStates[currState]); } if (draw.fClipChanged) { ++currClip; @@ -559,8 +557,6 @@ void GrInOrderDrawBuffer::playback(GrDrawTarget* target) { target->clear(&fClears[currClear].fRect, fClears[currClear].fColor); ++currClear; } - target->setDrawState(prevDrawState); - prevDrawState->unref(); } void GrInOrderDrawBuffer::setAutoFlushTarget(GrDrawTarget* target) { @@ -780,7 +776,7 @@ bool GrInOrderDrawBuffer::needsNewState() const { return true; } else { const GrDrawState& old = this->accessSavedDrawState(fStates.back()); - return old != this->getDrawState(); + return old != fCurrDrawState; } } |