aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrInOrderDrawBuffer.cpp
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-03-27 14:34:08 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-03-27 14:34:08 +0000
commit290e5363bb630be97bcf6777be77a7ca9b04f3c1 (patch)
tree9ef741fbc2e282db39a03c46ea5fa4e2af0e5868 /src/gpu/GrInOrderDrawBuffer.cpp
parent67bddc497e30034c78e08de1f35502293a885596 (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.cpp10
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;
}
}