Refactor Framebuffer attachment application.
Instead of passing texture and renderbufer IDs which requires a call to
gl::getNonLostContext to resolve the objects, pass the Texture and Renderbuffer
objects directly.
BUG=angleproject:733
Change-Id: Ia500a781643e43a17c8e9cea9f95847a7ff7b25d
Reviewed-on: https://chromium-review.googlesource.com/228280
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/Framebuffer.h b/src/libGLESv2/Framebuffer.h
index 87f44c5..d0fe893 100644
--- a/src/libGLESv2/Framebuffer.h
+++ b/src/libGLESv2/Framebuffer.h
@@ -27,6 +27,9 @@
namespace gl
{
class FramebufferAttachment;
+class Texture;
+class Renderbuffer;
+struct ImageIndex;
struct Caps;
struct Extensions;
class TextureCapsMap;
@@ -42,10 +45,9 @@
GLuint id() const { return mId; }
- void setColorbuffer(unsigned int colorAttachment, GLenum type, GLuint colorbuffer, GLint level, GLint layer);
- void setDepthbuffer(GLenum type, GLuint depthbuffer, GLint level, GLint layer);
- void setStencilbuffer(GLenum type, GLuint stencilbuffer, GLint level, GLint layer);
- void setDepthStencilBuffer(GLenum type, GLuint depthStencilBuffer, GLint level, GLint layer);
+ void setTextureAttachment(GLenum attachment, Texture *texture, const ImageIndex &imageIndex);
+ void setRenderbufferAttachment(GLenum attachment, Renderbuffer *renderbuffer);
+ void setNULLAttachment(GLenum attachment);
void detachTexture(GLuint texture);
void detachRenderbuffer(GLuint renderbuffer);
@@ -94,7 +96,7 @@
private:
DISALLOW_COPY_AND_ASSIGN(Framebuffer);
- FramebufferAttachment *createAttachment(GLenum binding, GLenum type, GLuint handle, GLint level, GLint layer) const;
+ void setAttachment(GLenum attachment, FramebufferAttachment *attachmentObj);
};
class DefaultFramebuffer : public Framebuffer