diff options
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/FramebufferAttachment.h')
-rw-r--r-- | src/3rdparty/angle/src/libGLESv2/FramebufferAttachment.h | 157 |
1 files changed, 25 insertions, 132 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/FramebufferAttachment.h b/src/3rdparty/angle/src/libGLESv2/FramebufferAttachment.h index 18768f9831..c18ef7364d 100644 --- a/src/3rdparty/angle/src/libGLESv2/FramebufferAttachment.h +++ b/src/3rdparty/angle/src/libGLESv2/FramebufferAttachment.h @@ -10,10 +10,11 @@ #ifndef LIBGLESV2_FRAMEBUFFERATTACHMENT_H_ #define LIBGLESV2_FRAMEBUFFERATTACHMENT_H_ -#include "angle_gl.h" - #include "common/angleutils.h" #include "common/RefCountObject.h" +#include "Texture.h" + +#include "angle_gl.h" namespace rx { @@ -24,10 +25,6 @@ class TextureStorage; namespace gl { -class Texture2D; -class TextureCubeMap; -class Texture3D; -class Texture2DArray; class Renderbuffer; // FramebufferAttachment implements a GL framebuffer attachment. @@ -39,7 +36,7 @@ class Renderbuffer; class FramebufferAttachment { public: - FramebufferAttachment(); + explicit FramebufferAttachment(GLenum binding); virtual ~FramebufferAttachment(); // Helper methods @@ -56,184 +53,80 @@ class FramebufferAttachment bool isTextureWithId(GLuint textureId) const { return isTexture() && id() == textureId; } bool isRenderbufferWithId(GLuint renderbufferId) const { return !isTexture() && id() == renderbufferId; } - // Child class interface - virtual rx::RenderTarget *getRenderTarget() = 0; - virtual rx::RenderTarget *getDepthStencil() = 0; - virtual rx::TextureStorage *getTextureStorage() = 0; + GLenum getBinding() const { return mBinding; } + // Child class interface virtual GLsizei getWidth() const = 0; virtual GLsizei getHeight() const = 0; virtual GLenum getInternalFormat() const = 0; virtual GLenum getActualFormat() const = 0; virtual GLsizei getSamples() const = 0; - virtual unsigned int getSerial() const = 0; - virtual GLuint id() const = 0; virtual GLenum type() const = 0; virtual GLint mipLevel() const = 0; virtual GLint layer() const = 0; - virtual unsigned int getTextureSerial() const = 0; - private: - DISALLOW_COPY_AND_ASSIGN(FramebufferAttachment); -}; - -class Texture2DAttachment : public FramebufferAttachment -{ - public: - Texture2DAttachment(Texture2D *texture, GLint level); - - virtual ~Texture2DAttachment(); - - rx::RenderTarget *getRenderTarget(); - rx::RenderTarget *getDepthStencil(); - rx::TextureStorage *getTextureStorage(); - - virtual GLsizei getWidth() const; - virtual GLsizei getHeight() const; - virtual GLenum getInternalFormat() const; - virtual GLenum getActualFormat() const; - virtual GLsizei getSamples() const; - - virtual unsigned int getSerial() const; - - virtual GLuint id() const; - virtual GLenum type() const; - virtual GLint mipLevel() const; - virtual GLint layer() const; - virtual unsigned int getTextureSerial() const; + virtual Texture *getTexture() = 0; + virtual const ImageIndex *getTextureImageIndex() const = 0; + virtual Renderbuffer *getRenderbuffer() = 0; private: - DISALLOW_COPY_AND_ASSIGN(Texture2DAttachment); + DISALLOW_COPY_AND_ASSIGN(FramebufferAttachment); - BindingPointer<Texture2D> mTexture2D; - const GLint mLevel; + GLenum mBinding; }; -class TextureCubeMapAttachment : public FramebufferAttachment +class TextureAttachment : public FramebufferAttachment { public: - TextureCubeMapAttachment(TextureCubeMap *texture, GLenum faceTarget, GLint level); + TextureAttachment(GLenum binding, Texture *texture, const ImageIndex &index); + virtual ~TextureAttachment(); - virtual ~TextureCubeMapAttachment(); - - rx::RenderTarget *getRenderTarget(); - rx::RenderTarget *getDepthStencil(); - rx::TextureStorage *getTextureStorage(); - - virtual GLsizei getWidth() const; - virtual GLsizei getHeight() const; - virtual GLenum getInternalFormat() const; - virtual GLenum getActualFormat() const; virtual GLsizei getSamples() const; - - virtual unsigned int getSerial() const; - virtual GLuint id() const; - virtual GLenum type() const; - virtual GLint mipLevel() const; - virtual GLint layer() const; - virtual unsigned int getTextureSerial() const; - - private: - DISALLOW_COPY_AND_ASSIGN(TextureCubeMapAttachment); - - BindingPointer<TextureCubeMap> mTextureCubeMap; - const GLint mLevel; - const GLenum mFaceTarget; -}; - -class Texture3DAttachment : public FramebufferAttachment -{ - public: - Texture3DAttachment(Texture3D *texture, GLint level, GLint layer); - - virtual ~Texture3DAttachment(); - - rx::RenderTarget *getRenderTarget(); - rx::RenderTarget *getDepthStencil(); - rx::TextureStorage *getTextureStorage(); virtual GLsizei getWidth() const; virtual GLsizei getHeight() const; virtual GLenum getInternalFormat() const; virtual GLenum getActualFormat() const; - virtual GLsizei getSamples() const; - - virtual unsigned int getSerial() const; - virtual GLuint id() const; virtual GLenum type() const; virtual GLint mipLevel() const; virtual GLint layer() const; - virtual unsigned int getTextureSerial() const; - private: - DISALLOW_COPY_AND_ASSIGN(Texture3DAttachment); - - BindingPointer<Texture3D> mTexture3D; - const GLint mLevel; - const GLint mLayer; -}; - -class Texture2DArrayAttachment : public FramebufferAttachment -{ - public: - Texture2DArrayAttachment(Texture2DArray *texture, GLint level, GLint layer); - - virtual ~Texture2DArrayAttachment(); - - rx::RenderTarget *getRenderTarget(); - rx::RenderTarget *getDepthStencil(); - rx::TextureStorage *getTextureStorage(); - - virtual GLsizei getWidth() const; - virtual GLsizei getHeight() const; - virtual GLenum getInternalFormat() const; - virtual GLenum getActualFormat() const; - virtual GLsizei getSamples() const; - - virtual unsigned int getSerial() const; - - virtual GLuint id() const; - virtual GLenum type() const; - virtual GLint mipLevel() const; - virtual GLint layer() const; - virtual unsigned int getTextureSerial() const; + virtual Texture *getTexture(); + virtual const ImageIndex *getTextureImageIndex() const; + virtual Renderbuffer *getRenderbuffer(); private: - DISALLOW_COPY_AND_ASSIGN(Texture2DArrayAttachment); + DISALLOW_COPY_AND_ASSIGN(TextureAttachment); - BindingPointer<Texture2DArray> mTexture2DArray; - const GLint mLevel; - const GLint mLayer; + BindingPointer<Texture> mTexture; + ImageIndex mIndex; }; class RenderbufferAttachment : public FramebufferAttachment { public: - RenderbufferAttachment(Renderbuffer *renderbuffer); + RenderbufferAttachment(GLenum binding, Renderbuffer *renderbuffer); virtual ~RenderbufferAttachment(); - rx::RenderTarget *getRenderTarget(); - rx::RenderTarget *getDepthStencil(); - rx::TextureStorage *getTextureStorage(); - virtual GLsizei getWidth() const; virtual GLsizei getHeight() const; virtual GLenum getInternalFormat() const; virtual GLenum getActualFormat() const; virtual GLsizei getSamples() const; - virtual unsigned int getSerial() const; - virtual GLuint id() const; virtual GLenum type() const; virtual GLint mipLevel() const; virtual GLint layer() const; - virtual unsigned int getTextureSerial() const; + + virtual Texture *getTexture(); + virtual const ImageIndex *getTextureImageIndex() const; + virtual Renderbuffer *getRenderbuffer(); private: DISALLOW_COPY_AND_ASSIGN(RenderbufferAttachment); |