Add renderer::SwapChain class and move functionality from egl::Surface
Trac #21810
Signed-off-by: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1351 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index bc1115c..1a998c5 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -317,8 +317,10 @@
}
// Wrap the existing Direct3D 9 resources into GL objects and assign them to the '0' names
- IDirect3DSurface9 *defaultRenderTarget = surface->getRenderTarget();
- IDirect3DSurface9 *depthStencil = surface->getDepthStencil();
+ // D3D9_REPLACE
+ renderer::SwapChain *swapchain = surface->getSwapChain();
+ IDirect3DSurface9 *defaultRenderTarget = swapchain->getRenderTarget();
+ IDirect3DSurface9 *depthStencil = swapchain->getDepthStencil();
Colorbuffer *colorbufferZero = new Colorbuffer(defaultRenderTarget);
DepthStencilbuffer *depthStencilbufferZero = new DepthStencilbuffer(depthStencil);
@@ -4429,4 +4431,16 @@
delete renderer;
}
+renderer::SwapChain *glCreateSwapChain(renderer::Renderer *renderer, HWND window, HANDLE shareHandle,
+ GLenum backBufferFormat, GLenum depthBufferFormat)
+{
+ return new renderer::SwapChain(renderer, window, shareHandle, backBufferFormat, depthBufferFormat);
+}
+
+void glDestroySwapChain(renderer::SwapChain *swapChain)
+{
+ delete swapChain;
+}
+
+
}