Add error handling to RenderTarget creation.
* RenderTarget9/11 don't create any resources themselves anymore.
* Pass the real internal format to RenderTarget creation so that it is
not lost by converting to D3D formats and back.
BUG=angle:520
Change-Id: If420970d42f0bf6ce392d64f9cb7efa4df0b8f8e
Reviewed-on: https://chromium-review.googlesource.com/222838
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/Renderbuffer.cpp b/src/libGLESv2/Renderbuffer.cpp
index 30a7b86..90c758a 100644
--- a/src/libGLESv2/Renderbuffer.cpp
+++ b/src/libGLESv2/Renderbuffer.cpp
@@ -38,15 +38,21 @@
SafeDelete(mRenderbuffer);
}
-void Renderbuffer::setStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples)
+Error Renderbuffer::setStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples)
{
+ Error error = mRenderbuffer->setStorage(width, height, internalformat, samples);
+ if (error.isError())
+ {
+ return error;
+ }
+
mWidth = width;
mHeight = height;
mInternalFormat = internalformat;
mSamples = samples;
-
- mRenderbuffer->setStorage(width, height, internalformat, samples);
mActualFormat = mRenderbuffer->getActualFormat();
+
+ return Error(GL_NO_ERROR);
}
rx::RenderbufferImpl *Renderbuffer::getImplementation()