Add new ref-counted Renderbuffer class.
Renderbuffers are a clear object type in GL, and this patch adds
a more consistent state representation for them. They're managed
by the ResourceManager, and have a storage implementation similar
to Textures, but much simpler.
BUG=angle:660
Change-Id: Ia17199bb8cb570d48db42e1f28ccbcc12a902fcf
Reviewed-on: https://chromium-review.googlesource.com/201834
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index e8c8aa3..70179cc 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -3092,25 +3092,25 @@
return gl::error(GL_INVALID_OPERATION);
}
- gl::FramebufferAttachment *attachment = context->getRenderbuffer(context->getRenderbufferHandle());
+ gl::Renderbuffer *renderbuffer = context->getRenderbuffer(context->getRenderbufferHandle());
switch (pname)
{
- case GL_RENDERBUFFER_WIDTH: *params = attachment->getWidth(); break;
- case GL_RENDERBUFFER_HEIGHT: *params = attachment->getHeight(); break;
- case GL_RENDERBUFFER_INTERNAL_FORMAT: *params = attachment->getInternalFormat(); break;
- case GL_RENDERBUFFER_RED_SIZE: *params = attachment->getRedSize(); break;
- case GL_RENDERBUFFER_GREEN_SIZE: *params = attachment->getGreenSize(); break;
- case GL_RENDERBUFFER_BLUE_SIZE: *params = attachment->getBlueSize(); break;
- case GL_RENDERBUFFER_ALPHA_SIZE: *params = attachment->getAlphaSize(); break;
- case GL_RENDERBUFFER_DEPTH_SIZE: *params = attachment->getDepthSize(); break;
- case GL_RENDERBUFFER_STENCIL_SIZE: *params = attachment->getStencilSize(); break;
+ case GL_RENDERBUFFER_WIDTH: *params = renderbuffer->getWidth(); break;
+ case GL_RENDERBUFFER_HEIGHT: *params = renderbuffer->getHeight(); break;
+ case GL_RENDERBUFFER_INTERNAL_FORMAT: *params = renderbuffer->getInternalFormat(); break;
+ case GL_RENDERBUFFER_RED_SIZE: *params = renderbuffer->getRedSize(); break;
+ case GL_RENDERBUFFER_GREEN_SIZE: *params = renderbuffer->getGreenSize(); break;
+ case GL_RENDERBUFFER_BLUE_SIZE: *params = renderbuffer->getBlueSize(); break;
+ case GL_RENDERBUFFER_ALPHA_SIZE: *params = renderbuffer->getAlphaSize(); break;
+ case GL_RENDERBUFFER_DEPTH_SIZE: *params = renderbuffer->getDepthSize(); break;
+ case GL_RENDERBUFFER_STENCIL_SIZE: *params = renderbuffer->getStencilSize(); break;
case GL_RENDERBUFFER_SAMPLES_ANGLE:
if (!context->getCaps().extensions.framebufferMultisample)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = attachment->getSamples();
+ *params = renderbuffer->getSamples();
break;
default:
return gl::error(GL_INVALID_ENUM);
@@ -4138,7 +4138,7 @@
if (context && renderbuffer)
{
- gl::FramebufferAttachment *renderbufferObject = context->getRenderbuffer(renderbuffer);
+ gl::Renderbuffer *renderbufferObject = context->getRenderbuffer(renderbuffer);
if (renderbufferObject)
{