Creates new depthstencils for surfaces.
Trac #11396
Creates new depthstencils for new windows when multiple windows exist,
repurposes original depthstencil if old windows have all been destroyed.
Author: Shannon Woods
Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch
git-svn-id: https://angleproject.googlecode.com/svn/trunk@28 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/libGLESv2/Context.cpp b/libGLESv2/Context.cpp
index 6fc2cd4..c5a2623 100644
--- a/libGLESv2/Context.cpp
+++ b/libGLESv2/Context.cpp
@@ -202,13 +202,12 @@
// Wrap the existing Direct3D 9 resources into GL objects and assign them to the '0' names
IDirect3DSurface9 *defaultRenderTarget = surface->getRenderTarget();
- IDirect3DSurface9 *defaultDepthStencil = NULL;
- device->GetDepthStencilSurface(&defaultDepthStencil);
+ IDirect3DSurface9 *depthStencil = surface->getDepthStencil();
Framebuffer *framebufferZero = new Framebuffer();
Colorbuffer *colorbufferZero = new Colorbuffer(defaultRenderTarget);
- Depthbuffer *depthbufferZero = new Depthbuffer(defaultDepthStencil);
- Stencilbuffer *stencilbufferZero = new Stencilbuffer(defaultDepthStencil);
+ Depthbuffer *depthbufferZero = new Depthbuffer(depthStencil);
+ Stencilbuffer *stencilbufferZero = new Stencilbuffer(depthStencil);
setFramebufferZero(framebufferZero);
setColorbufferZero(colorbufferZero);
@@ -221,9 +220,9 @@
defaultRenderTarget->Release();
- if (defaultDepthStencil)
+ if (depthStencil)
{
- defaultDepthStencil->Release();
+ depthStencil->Release();
}
}