Commit a08e1bd0 by Geoff Lang

Split Renderbuffer::setStorage into two functions to match the API.

BUG=angleproject:886 Change-Id: I74375351339464b450c2f058adbeed7a1ba18cdd Reviewed-on: https://chromium-review.googlesource.com/262125Reviewed-by: 's avatarBrandon Jones <bajones@chromium.org> Reviewed-by: 's avatarKenneth Russell <kbr@chromium.org> Tested-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 4ad1709f
...@@ -34,9 +34,25 @@ Renderbuffer::~Renderbuffer() ...@@ -34,9 +34,25 @@ Renderbuffer::~Renderbuffer()
SafeDelete(mRenderbuffer); SafeDelete(mRenderbuffer);
} }
Error Renderbuffer::setStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples) Error Renderbuffer::setStorage(GLenum internalformat, size_t width, size_t height)
{ {
Error error = mRenderbuffer->setStorage(width, height, internalformat, samples); Error error = mRenderbuffer->setStorage(internalformat, width, height);
if (error.isError())
{
return error;
}
mWidth = width;
mHeight = height;
mInternalFormat = internalformat;
mSamples = 0;
return Error(GL_NO_ERROR);
}
Error Renderbuffer::setStorageMultisample(size_t samples, GLenum internalformat, size_t width, size_t height)
{
Error error = mRenderbuffer->setStorageMultisample(samples, internalformat, width, height);
if (error.isError()) if (error.isError())
{ {
return error; return error;
......
...@@ -38,7 +38,8 @@ class Renderbuffer : public RefCountObject ...@@ -38,7 +38,8 @@ class Renderbuffer : public RefCountObject
Renderbuffer(rx::RenderbufferImpl *impl, GLuint id); Renderbuffer(rx::RenderbufferImpl *impl, GLuint id);
virtual ~Renderbuffer(); virtual ~Renderbuffer();
Error setStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples); Error setStorage(GLenum internalformat, size_t width, size_t height);
Error setStorageMultisample(size_t samples, GLenum internalformat, size_t width, size_t height);
rx::RenderbufferImpl *getImplementation(); rx::RenderbufferImpl *getImplementation();
......
...@@ -24,7 +24,8 @@ class RenderbufferImpl ...@@ -24,7 +24,8 @@ class RenderbufferImpl
RenderbufferImpl(); RenderbufferImpl();
virtual ~RenderbufferImpl() = 0; virtual ~RenderbufferImpl() = 0;
virtual gl::Error setStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples) = 0; virtual gl::Error setStorage(GLenum internalformat, size_t width, size_t height) = 0;
virtual gl::Error setStorageMultisample(size_t samples, GLenum internalformat, size_t width, size_t height) = 0;
private: private:
DISALLOW_COPY_AND_ASSIGN(RenderbufferImpl); DISALLOW_COPY_AND_ASSIGN(RenderbufferImpl);
......
...@@ -30,7 +30,12 @@ RenderbufferD3D *RenderbufferD3D::makeRenderbufferD3D(RenderbufferImpl *renderbu ...@@ -30,7 +30,12 @@ RenderbufferD3D *RenderbufferD3D::makeRenderbufferD3D(RenderbufferImpl *renderbu
return static_cast<RenderbufferD3D*>(renderbuffer); return static_cast<RenderbufferD3D*>(renderbuffer);
} }
gl::Error RenderbufferD3D::setStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples) gl::Error RenderbufferD3D::setStorage(GLenum internalformat, size_t width, size_t height)
{
return setStorageMultisample(0, internalformat, width, height);
}
gl::Error RenderbufferD3D::setStorageMultisample(size_t samples, GLenum internalformat, size_t width, size_t height)
{ {
// If the renderbuffer parameters are queried, the calling function // If the renderbuffer parameters are queried, the calling function
// will expect one of the valid renderbuffer formats for use in // will expect one of the valid renderbuffer formats for use in
......
...@@ -28,7 +28,8 @@ class RenderbufferD3D : public RenderbufferImpl ...@@ -28,7 +28,8 @@ class RenderbufferD3D : public RenderbufferImpl
static RenderbufferD3D *makeRenderbufferD3D(RenderbufferImpl *renderbuffer); static RenderbufferD3D *makeRenderbufferD3D(RenderbufferImpl *renderbuffer);
virtual gl::Error setStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples) override; virtual gl::Error setStorage(GLenum internalformat, size_t width, size_t height) override;
virtual gl::Error setStorageMultisample(size_t samples, GLenum internalformat, size_t width, size_t height) override;
RenderTargetD3D *getRenderTarget(); RenderTargetD3D *getRenderTarget();
unsigned int getRenderTargetSerial() const; unsigned int getRenderTargetSerial() const;
......
...@@ -1273,7 +1273,7 @@ gl::Error Renderer9::getNullColorbuffer(const gl::FramebufferAttachment *depthbu ...@@ -1273,7 +1273,7 @@ gl::Error Renderer9::getNullColorbuffer(const gl::FramebufferAttachment *depthbu
} }
gl::Renderbuffer *nullRenderbuffer = new gl::Renderbuffer(createRenderbuffer(), 0); gl::Renderbuffer *nullRenderbuffer = new gl::Renderbuffer(createRenderbuffer(), 0);
gl::Error error = nullRenderbuffer->setStorage(width, height, GL_NONE, 0); gl::Error error = nullRenderbuffer->setStorage(GL_NONE, width, height);
if (error.isError()) if (error.isError())
{ {
SafeDelete(nullRenderbuffer); SafeDelete(nullRenderbuffer);
......
...@@ -20,7 +20,13 @@ RenderbufferGL::RenderbufferGL() ...@@ -20,7 +20,13 @@ RenderbufferGL::RenderbufferGL()
RenderbufferGL::~RenderbufferGL() RenderbufferGL::~RenderbufferGL()
{} {}
gl::Error RenderbufferGL::setStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples) gl::Error RenderbufferGL::setStorage(GLenum internalformat, size_t width, size_t height)
{
UNIMPLEMENTED();
return gl::Error(GL_INVALID_OPERATION);
}
gl::Error RenderbufferGL::setStorageMultisample(size_t samples, GLenum internalformat, size_t width, size_t height)
{ {
UNIMPLEMENTED(); UNIMPLEMENTED();
return gl::Error(GL_INVALID_OPERATION); return gl::Error(GL_INVALID_OPERATION);
......
...@@ -20,7 +20,8 @@ class RenderbufferGL : public RenderbufferImpl ...@@ -20,7 +20,8 @@ class RenderbufferGL : public RenderbufferImpl
RenderbufferGL(); RenderbufferGL();
~RenderbufferGL() override; ~RenderbufferGL() override;
gl::Error setStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples) override; virtual gl::Error setStorage(GLenum internalformat, size_t width, size_t height) override;
virtual gl::Error setStorageMultisample(size_t samples, GLenum internalformat, size_t width, size_t height) override;
private: private:
DISALLOW_COPY_AND_ASSIGN(RenderbufferGL); DISALLOW_COPY_AND_ASSIGN(RenderbufferGL);
......
...@@ -3332,7 +3332,7 @@ void GL_APIENTRY RenderbufferStorage(GLenum target, GLenum internalformat, GLsiz ...@@ -3332,7 +3332,7 @@ void GL_APIENTRY RenderbufferStorage(GLenum target, GLenum internalformat, GLsiz
} }
Renderbuffer *renderbuffer = context->getState().getCurrentRenderbuffer(); Renderbuffer *renderbuffer = context->getState().getCurrentRenderbuffer();
Error error = renderbuffer->setStorage(width, height, internalformat, 0); Error error = renderbuffer->setStorage(internalformat, width, height);
if (error.isError()) if (error.isError())
{ {
context->recordError(error); context->recordError(error);
......
...@@ -518,7 +518,7 @@ void GL_APIENTRY RenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samp ...@@ -518,7 +518,7 @@ void GL_APIENTRY RenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samp
} }
Renderbuffer *renderbuffer = context->getState().getCurrentRenderbuffer(); Renderbuffer *renderbuffer = context->getState().getCurrentRenderbuffer();
Error error = renderbuffer->setStorage(width, height, internalformat, samples); Error error = renderbuffer->setStorageMultisample(samples, internalformat, width, height);
if (error.isError()) if (error.isError())
{ {
context->recordError(error); context->recordError(error);
......
...@@ -706,7 +706,7 @@ void GL_APIENTRY RenderbufferStorageMultisample(GLenum target, GLsizei samples, ...@@ -706,7 +706,7 @@ void GL_APIENTRY RenderbufferStorageMultisample(GLenum target, GLsizei samples,
} }
Renderbuffer *renderbuffer = context->getState().getCurrentRenderbuffer(); Renderbuffer *renderbuffer = context->getState().getCurrentRenderbuffer();
renderbuffer->setStorage(width, height, internalformat, samples); renderbuffer->setStorageMultisample(samples, internalformat, width, height);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment