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;
+}
+
+
 }