diff options
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/Framebuffer.h')
-rw-r--r-- | src/3rdparty/angle/src/libGLESv2/Framebuffer.h | 62 |
1 files changed, 28 insertions, 34 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/Framebuffer.h b/src/3rdparty/angle/src/libGLESv2/Framebuffer.h index 50bfd4fd0f..035e16fa45 100644 --- a/src/3rdparty/angle/src/libGLESv2/Framebuffer.h +++ b/src/3rdparty/angle/src/libGLESv2/Framebuffer.h @@ -12,7 +12,7 @@ #include "common/angleutils.h" #include "common/RefCountObject.h" -#include "Constants.h" +#include "constants.h" namespace rx { @@ -21,7 +21,7 @@ class Renderer; namespace gl { -class Renderbuffer; +class FramebufferAttachment; class Colorbuffer; class Depthbuffer; class Stencilbuffer; @@ -30,36 +30,30 @@ class DepthStencilbuffer; class Framebuffer { public: - explicit Framebuffer(rx::Renderer *renderer); + Framebuffer(rx::Renderer *renderer, GLuint id); virtual ~Framebuffer(); - void setColorbuffer(unsigned int colorAttachment, GLenum type, GLuint colorbuffer); - void setDepthbuffer(GLenum type, GLuint depthbuffer); - void setStencilbuffer(GLenum type, GLuint stencilbuffer); + 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 detachTexture(GLuint texture); void detachRenderbuffer(GLuint renderbuffer); - unsigned int getRenderTargetSerial(unsigned int colorAttachment) const; - unsigned int getDepthbufferSerial() const; - unsigned int getStencilbufferSerial() const; - - Renderbuffer *getColorbuffer(unsigned int colorAttachment) const; - Renderbuffer *getDepthbuffer() const; - Renderbuffer *getStencilbuffer() const; - Renderbuffer *getDepthOrStencilbuffer() const; - Renderbuffer *getReadColorbuffer() const; + FramebufferAttachment *getColorbuffer(unsigned int colorAttachment) const; + FramebufferAttachment *getDepthbuffer() const; + FramebufferAttachment *getStencilbuffer() const; + FramebufferAttachment *getDepthStencilBuffer() const; + FramebufferAttachment *getDepthOrStencilbuffer() const; + FramebufferAttachment *getReadColorbuffer() const; GLenum getReadColorbufferType() const; - Renderbuffer *getFirstColorbuffer() const; - - GLenum getColorbufferType(unsigned int colorAttachment) const; - GLenum getDepthbufferType() const; - GLenum getStencilbufferType() const; + FramebufferAttachment *getFirstColorbuffer() const; - GLuint getColorbufferHandle(unsigned int colorAttachment) const; - GLuint getDepthbufferHandle() const; - GLuint getStencilbufferHandle() const; + virtual FramebufferAttachment *getAttachment(GLenum attachment) const; GLenum getDrawBufferState(unsigned int colorAttachment) const; void setDrawBufferState(unsigned int colorAttachment, GLenum drawBuffer); @@ -71,25 +65,24 @@ class Framebuffer bool usingExtendedDrawBuffers() const; virtual GLenum completeness() const; + bool hasValidDepthStencil() const; protected: - GLenum mColorbufferTypes[IMPLEMENTATION_MAX_DRAW_BUFFERS]; - BindingPointer<Renderbuffer> mColorbufferPointers[IMPLEMENTATION_MAX_DRAW_BUFFERS]; - GLenum mDrawBufferStates[IMPLEMENTATION_MAX_DRAW_BUFFERS]; - GLenum mReadBufferState; + rx::Renderer *mRenderer; - GLenum mDepthbufferType; - BindingPointer<Renderbuffer> mDepthbufferPointer; + GLuint mId; - GLenum mStencilbufferType; - BindingPointer<Renderbuffer> mStencilbufferPointer; + FramebufferAttachment *mColorbuffers[IMPLEMENTATION_MAX_DRAW_BUFFERS]; + GLenum mDrawBufferStates[IMPLEMENTATION_MAX_DRAW_BUFFERS]; + GLenum mReadBufferState; - rx::Renderer *mRenderer; + FramebufferAttachment *mDepthbuffer; + FramebufferAttachment *mStencilbuffer; - private: +private: DISALLOW_COPY_AND_ASSIGN(Framebuffer); - Renderbuffer *lookupRenderbuffer(GLenum type, GLuint handle) const; + FramebufferAttachment *createAttachment(GLenum type, GLuint handle, GLint level, GLint layer) const; }; class DefaultFramebuffer : public Framebuffer @@ -98,6 +91,7 @@ class DefaultFramebuffer : public Framebuffer DefaultFramebuffer(rx::Renderer *Renderer, Colorbuffer *colorbuffer, DepthStencilbuffer *depthStencil); virtual GLenum completeness() const; + virtual FramebufferAttachment *getAttachment(GLenum attachment) const; private: DISALLOW_COPY_AND_ASSIGN(DefaultFramebuffer); |