Implements color renderbuffers
TRAC #11890
Signed-off-by: Andrew Lewycky
Signed-off-by: Daniel Koch
Author: Shannon Woods
git-svn-id: https://angleproject.googlecode.com/svn/trunk@167 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Renderbuffer.cpp b/src/libGLESv2/Renderbuffer.cpp
index 29eb6e8..86796f0 100644
--- a/src/libGLESv2/Renderbuffer.cpp
+++ b/src/libGLESv2/Renderbuffer.cpp
@@ -74,6 +74,35 @@
}
}
+Colorbuffer::Colorbuffer(int width, int height, GLenum format)
+{
+ IDirect3DDevice9 *device = getDevice();
+
+ mRenderTarget = NULL;
+ HRESULT result = device->CreateRenderTarget(width, height, es2dx::ConvertRenderbufferFormat(format),
+ D3DMULTISAMPLE_NONE, 0, FALSE, &mRenderTarget, NULL);
+
+ if (result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY)
+ {
+ error(GL_OUT_OF_MEMORY);
+
+ return;
+ }
+
+ ASSERT(SUCCEEDED(result));
+
+ if (mRenderTarget)
+ {
+ mWidth = width;
+ mHeight = height;
+ }
+ else
+ {
+ mWidth = 0;
+ mHeight = 0;
+ }
+}
+
Colorbuffer::~Colorbuffer()
{
if (mRenderTarget)