releaseTextures portion of GrDrawState Ref textures CL (http://codereview.appspot.com/6251049/)

http://codereview.appspot.com/6299081/



git-svn-id: http://skia.googlecode.com/svn/trunk@4254 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 2e5bd7f..3cc2c89 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -744,6 +744,7 @@
     SK_TRACE_EVENT0("GrContext::drawRect");
 
     GrDrawTarget* target = this->prepareToDraw(paint, kUnbuffered_DrawCategory);
+    GrDrawState::AutoTextureRelease atr(fDrawState);
     int stageMask = paint.getActiveStageMask();
 
     GrRect devRect = rect;
@@ -863,6 +864,7 @@
 
 #if GR_STATIC_RECT_VB
     GrDrawTarget* target = this->prepareToDraw(paint, kUnbuffered_DrawCategory);
+    GrDrawState::AutoTextureRelease atr(fDrawState);
     GrDrawState* drawState = target->drawState();
     GrVertexLayout layout = PaintStageVertexLayoutBits(paint, NULL);
     GrDrawState::AutoViewMatrixRestore avmr(drawState);
@@ -907,6 +909,7 @@
 #else
     target = this->prepareToDraw(paint, kUnbuffered_DrawCategory);
 #endif
+    GrDrawState::AutoTextureRelease atr(fDrawState);
 
     const GrRect* srcRects[GrDrawState::kNumStages] = {NULL};
     const GrMatrix* srcMatrices[GrDrawState::kNumStages] = {NULL};
@@ -930,6 +933,7 @@
     GrDrawTarget::AutoReleaseGeometry geo;
 
     GrDrawTarget* target = this->prepareToDraw(paint, kUnbuffered_DrawCategory);
+    GrDrawState::AutoTextureRelease atr(fDrawState);
 
     bool hasTexCoords[GrPaint::kTotalStages] = {
         NULL != texCoords,   // texCoordSrc provides explicit stage 0 coords
@@ -1034,6 +1038,7 @@
     DrawCategory category = (DEFER_PATHS) ? kBuffered_DrawCategory :
                                             kUnbuffered_DrawCategory;
     GrDrawTarget* target = this->prepareToDraw(paint, category);
+    GrDrawState::AutoTextureRelease atr(fDrawState);
     GrDrawState* drawState = target->drawState();
     GrMatrix vm = drawState->getViewMatrix();
 
@@ -1139,6 +1144,7 @@
     DrawCategory category = (DEFER_PATHS) ? kBuffered_DrawCategory :
                                             kUnbuffered_DrawCategory;
     GrDrawTarget* target = this->prepareToDraw(paint, category);
+    GrDrawState::AutoTextureRelease atr(fDrawState);
     GrDrawState::StageMask stageMask = paint.getActiveStageMask();
 
     bool prAA = paint.fAntiAlias && !this->getRenderTarget()->isMultisampled();
@@ -1813,7 +1819,9 @@
         srcRect = dstRect;
         SkTSwap(srcTexture, dstTexture);
         // If temp2 is non-NULL, don't render back to origTexture
-        if (temp2 && dstTexture == origTexture) dstTexture = temp2->texture();
+        if (temp2 && dstTexture == origTexture) {
+            dstTexture = temp2->texture();
+        }
     }
 
     SkIRect srcIRect;