Discard scratch render targets before reusing them.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/225183012

git-svn-id: http://skia.googlecode.com/svn/trunk@14075 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 89548ab..8084557 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -457,6 +457,11 @@
         // Ensure we have exclusive access to the texture so future 'find' calls don't return it
         resource = fTextureCache->find(key, GrResourceCache::kHide_OwnershipFlag);
         if (NULL != resource) {
+            // If the scratch texture is a render target, discard its contents.
+            GrRenderTarget* rt = static_cast<GrTexture*>(resource)->asRenderTarget();
+            if (NULL != rt) {
+                rt->discard();
+            }
             resource->ref();
             break;
         }