Revert 7342 to investigate failures.
git-svn-id: http://skia.googlecode.com/svn/trunk@7345 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp
index 233682f..e327413 100644
--- a/src/gpu/GrInOrderDrawBuffer.cpp
+++ b/src/gpu/GrInOrderDrawBuffer.cpp
@@ -570,11 +570,8 @@
GrDrawTarget::AutoClipRestore acr(target);
AutoGeometryPush agp(target);
-
- GrDrawState playbackState;
GrDrawState* prevDrawState = target->drawState();
prevDrawState->ref();
- target->setDrawState(&playbackState);
GrClipData clipData;
@@ -584,7 +581,6 @@
int currDraw = 0;
int currStencilPath = 0;
-
for (int c = 0; c < numCmds; ++c) {
switch (fCmds[c]) {
case kDraw_Cmd: {
@@ -615,7 +611,7 @@
break;
}
case kSetState_Cmd:
- fStates[currState].restoreTo(&playbackState);
+ target->setDrawState(&fStates[currState]);
++currState;
break;
case kSetClip_Cmd:
@@ -864,7 +860,7 @@
}
bool GrInOrderDrawBuffer::needsNewState() const {
- return fStates.empty() || fStates.back().isEqual(this->getDrawState());
+ return fStates.empty() || fStates.back() != this->getDrawState();
}
bool GrInOrderDrawBuffer::needsNewClip() const {
@@ -887,8 +883,19 @@
fCmds.push_back(kSetClip_Cmd);
}
+void GrInOrderDrawBuffer::recordDefaultClip() {
+ fClips.push_back() = SkClipStack();
+ fClipOrigins.push_back() = SkIPoint::Make(0, 0);
+ fCmds.push_back(kSetClip_Cmd);
+}
+
void GrInOrderDrawBuffer::recordState() {
- fStates.push_back().saveFrom(this->getDrawState());
+ fStates.push_back(this->getDrawState());
+ fCmds.push_back(kSetState_Cmd);
+}
+
+void GrInOrderDrawBuffer::recordDefaultState() {
+ fStates.push_back(GrDrawState());
fCmds.push_back(kSetState_Cmd);
}