Adds makeRenderer9/11 functions

TRAC #22134

Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1479 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Image.cpp b/src/libGLESv2/renderer/Image.cpp
index e62c3fb..e263a7a 100644
--- a/src/libGLESv2/renderer/Image.cpp
+++ b/src/libGLESv2/renderer/Image.cpp
@@ -280,8 +280,7 @@
         mD3DFormat = renderer->ConvertTextureInternalFormat(internalformat);
         mActualFormat = d3d9_gl::GetEquivalentFormat(mD3DFormat);
 
-        ASSERT(dynamic_cast<rx::Renderer9*>(renderer) != NULL); // D3D9_REPLACE
-        mRenderer = static_cast<rx::Renderer9*>(renderer); // D3D9_REPLACE
+        mRenderer = Renderer9::makeRenderer9(renderer); // D3D9_REPLACE
 
         if (mSurface)
         {
diff --git a/src/libGLESv2/renderer/RenderTarget9.cpp b/src/libGLESv2/renderer/RenderTarget9.cpp
index 1d30672..f112f63 100644
--- a/src/libGLESv2/renderer/RenderTarget9.cpp
+++ b/src/libGLESv2/renderer/RenderTarget9.cpp
@@ -18,8 +18,7 @@
 
 RenderTarget9::RenderTarget9(Renderer *renderer, IDirect3DSurface9 *surface)
 {
-    ASSERT(dynamic_cast<rx::Renderer9*>(renderer) != NULL);
-    mRenderer = static_cast<rx::Renderer9*>(renderer);
+    mRenderer = Renderer9::makeRenderer9(renderer);
     mRenderTarget = surface;
 
     if (mRenderTarget)
@@ -38,8 +37,7 @@
 
 RenderTarget9::RenderTarget9(Renderer *renderer, GLsizei width, GLsizei height, GLenum format, GLsizei samples)
 {
-    ASSERT(dynamic_cast<rx::Renderer9*>(renderer) != NULL);
-    mRenderer = static_cast<rx::Renderer9*>(renderer);
+    mRenderer = Renderer9::makeRenderer9(renderer);
     mRenderTarget = NULL;
 
     D3DFORMAT requestedFormat = gl_d3d9::ConvertRenderbufferFormat(format);
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index d89dd3e..bdf7bc7 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -83,6 +83,12 @@
     }
 }
 
+Renderer11 *Renderer11::makeRenderer11(Renderer *renderer)
+{
+    ASSERT(dynamic_cast<rx::Renderer11*>(renderer) != NULL);
+    return static_cast<rx::Renderer11*>(renderer);
+}
+
 EGLint Renderer11::initialize()
 {
     mDxgiModule = LoadLibrary(TEXT("dxgi.dll"));
diff --git a/src/libGLESv2/renderer/Renderer11.h b/src/libGLESv2/renderer/Renderer11.h
index 3ef4d63..719ecfc 100644
--- a/src/libGLESv2/renderer/Renderer11.h
+++ b/src/libGLESv2/renderer/Renderer11.h
@@ -33,6 +33,8 @@
     Renderer11(egl::Display *display, HDC hDc);
     virtual ~Renderer11();
 
+    static Renderer11 *makeRenderer11(Renderer *renderer);
+
     virtual EGLint initialize();
     virtual bool resetDevice();
 
diff --git a/src/libGLESv2/renderer/Renderer9.cpp b/src/libGLESv2/renderer/Renderer9.cpp
index 6292701..f67c91b 100644
--- a/src/libGLESv2/renderer/Renderer9.cpp
+++ b/src/libGLESv2/renderer/Renderer9.cpp
@@ -150,6 +150,12 @@
     }
 }
 
+Renderer9 *Renderer9::makeRenderer9(Renderer *renderer)
+{
+    ASSERT(dynamic_cast<rx::Renderer9*>(renderer) != NULL);
+    return static_cast<rx::Renderer9*>(renderer);
+}
+
 EGLint Renderer9::initialize()
 {
     if (mSoftwareDevice)
diff --git a/src/libGLESv2/renderer/Renderer9.h b/src/libGLESv2/renderer/Renderer9.h
index 9a39357..c6d1285 100644
--- a/src/libGLESv2/renderer/Renderer9.h
+++ b/src/libGLESv2/renderer/Renderer9.h
@@ -76,6 +76,8 @@
     Renderer9(egl::Display *display, HDC hDc, bool softwareDevice);
     virtual ~Renderer9();
 
+    static Renderer9 *makeRenderer9(Renderer *renderer);
+
     virtual EGLint initialize();
     virtual bool resetDevice();