Fixed leak of render target associated with ColorBuffer.

Following r853, I am assuming that any render target returned by FrameBuffer::getRenderTarget has to be released. Updating the usage of getRenderTarget to reflect that.

This is not reproducible in Chrome at the moment but it will be once I start rendering to pbuffers.

I ran the WebGL conformance tests. No regressions or crashes.
Review URL: http://codereview.appspot.com/5451110

git-svn-id: https://angleproject.googlecode.com/svn/trunk@903 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index 0de524a..629ca0f 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -2293,6 +2293,8 @@
 
     result = mDevice->GetRenderTargetData(renderTarget, systemSurface);
 
+    renderTarget->Release();
+
     if (FAILED(result))
     {
         systemSurface->Release();
@@ -2609,6 +2611,8 @@
     D3DSURFACE_DESC desc;
     renderTarget->GetDesc(&desc);
 
+    renderTarget->Release();
+
     bool alphaUnmasked = (dx2es::GetAlphaSize(desc.Format) == 0) || mState.colorMaskAlpha;
 
     const bool needMaskedStencilClear = (flags & D3DCLEAR_STENCIL) &&
@@ -3791,8 +3795,14 @@
 
         if (blitRenderTarget)
         {
-            HRESULT result = mDevice->StretchRect(readFramebuffer->getRenderTarget(), &sourceTrimmedRect, 
-                                                 drawFramebuffer->getRenderTarget(), &destTrimmedRect, D3DTEXF_NONE);
+            IDirect3DSurface9* readRenderTarget = readFramebuffer->getRenderTarget();
+            IDirect3DSurface9* drawRenderTarget = drawFramebuffer->getRenderTarget();
+
+            HRESULT result = mDevice->StretchRect(readRenderTarget, &sourceTrimmedRect, 
+                                                  drawRenderTarget, &destTrimmedRect, D3DTEXF_NONE);
+
+            readRenderTarget->Release();
+            drawRenderTarget->Release();
 
             if (FAILED(result))
             {