Fixed retrieving a render target interface and not releasing it
TRAC #12149
Signed-off-by: Andrew Lewycky
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@234 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libEGL/Surface.cpp b/src/libEGL/Surface.cpp
index f58f07a..d1e7eec 100644
--- a/src/libEGL/Surface.cpp
+++ b/src/libEGL/Surface.cpp
@@ -146,6 +146,9 @@
mDisplay->startScene();
device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, quad, 6 * sizeof(float));
+ textureSurface->Release();
+ texture->Release();
+
mDisplay->endScene();
result = mSwapChain->Present(NULL, NULL, NULL, NULL, D3DPRESENT_INTERVAL_IMMEDIATE | D3DPRESENT_DONOTWAIT); // FIXME: Get the swap interval from the associated Display
@@ -153,9 +156,6 @@
{
return error(EGL_BAD_ALLOC);
}
-
- textureSurface->Release();
- texture->Release();
}
}
diff --git a/src/libGLESv2/Texture.cpp b/src/libGLESv2/Texture.cpp
index 2257c03..af5b1d7 100644
--- a/src/libGLESv2/Texture.cpp
+++ b/src/libGLESv2/Texture.cpp
@@ -550,7 +550,7 @@
}
else
{
- getRenderTarget(GL_TEXTURE_2D);
+ needRenderTarget();
}
RECT sourceRect;