summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libGLESv2/FramebufferAttachment.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/FramebufferAttachment.h')
-rw-r--r--src/3rdparty/angle/src/libGLESv2/FramebufferAttachment.h157
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);