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();