diff options
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.h')
-rw-r--r-- | src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.h | 114 |
1 files changed, 15 insertions, 99 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.h index 0a212e16f2..9cc2c2977b 100644 --- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.h +++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.h @@ -4,15 +4,20 @@ // found in the LICENSE file. // -// TextureStorage.h: Defines the abstract rx::TextureStorageInterface class and its concrete derived -// classes TextureStorageInterface2D and TextureStorageInterfaceCube, which act as the interface to the -// GPU-side texture. +// TextureStorage.h: Defines the abstract rx::TextureStorage class. #ifndef LIBGLESV2_RENDERER_TEXTURESTORAGE_H_ #define LIBGLESV2_RENDERER_TEXTURESTORAGE_H_ #include "common/debug.h" +#include <GLES2/gl2.h> + +namespace gl +{ +struct ImageIndex; +} + namespace rx { class Renderer; @@ -22,7 +27,7 @@ class RenderTarget; class TextureStorage { public: - TextureStorage() {}; + TextureStorage(); virtual ~TextureStorage() {}; virtual int getTopLevel() const = 0; @@ -30,114 +35,25 @@ class TextureStorage virtual bool isManaged() const = 0; virtual int getLevelCount() const = 0; - virtual RenderTarget *getRenderTarget(int level) = 0; - virtual RenderTarget *getRenderTargetFace(GLenum faceTarget, int level) = 0; - virtual RenderTarget *getRenderTargetLayer(int mipLevel, int layer) = 0; - virtual void generateMipmap(int level) = 0; - virtual void generateMipmap(int face, int level) = 0; - - private: - DISALLOW_COPY_AND_ASSIGN(TextureStorage); - -}; - -class TextureStorageInterface -{ - public: - TextureStorageInterface(); - virtual ~TextureStorageInterface(); - - TextureStorage *getStorageInstance() { return mInstance; } + virtual RenderTarget *getRenderTarget(const gl::ImageIndex &index) = 0; + virtual void generateMipmaps() = 0; + unsigned int getRenderTargetSerial(const gl::ImageIndex &index) const; unsigned int getTextureSerial() const; - virtual int getTopLevel() const; - virtual bool isRenderTarget() const; - virtual bool isManaged() const; - virtual int getLevelCount() const; - protected: - TextureStorage *mInstance; + void initializeSerials(unsigned int rtSerialsToReserve, unsigned int rtSerialsLayerStride); private: - DISALLOW_COPY_AND_ASSIGN(TextureStorageInterface); + DISALLOW_COPY_AND_ASSIGN(TextureStorage); const unsigned int mTextureSerial; static unsigned int issueTextureSerial(); static unsigned int mCurrentTextureSerial; -}; - -class TextureStorageInterface2D : public TextureStorageInterface -{ - public: - TextureStorageInterface2D(Renderer *renderer, SwapChain *swapchain); - TextureStorageInterface2D(Renderer *renderer, GLenum internalformat, bool renderTarget, GLsizei width, GLsizei height, int levels); - virtual ~TextureStorageInterface2D(); - - void generateMipmap(int level); - RenderTarget *getRenderTarget(GLint level) const; - - unsigned int getRenderTargetSerial(GLint level) const; - - private: - DISALLOW_COPY_AND_ASSIGN(TextureStorageInterface2D); - - unsigned int mFirstRenderTargetSerial; -}; - -class TextureStorageInterfaceCube : public TextureStorageInterface -{ - public: - TextureStorageInterfaceCube(Renderer *renderer, GLenum internalformat, bool renderTarget, int size, int levels); - virtual ~TextureStorageInterfaceCube(); - - void generateMipmap(int faceIndex, int level); - RenderTarget *getRenderTarget(GLenum faceTarget, GLint level) const; - - virtual unsigned int getRenderTargetSerial(GLenum target, GLint level) const; - - private: - DISALLOW_COPY_AND_ASSIGN(TextureStorageInterfaceCube); - - unsigned int mFirstRenderTargetSerial; -}; - -class TextureStorageInterface3D : public TextureStorageInterface -{ - public: - TextureStorageInterface3D(Renderer *renderer, GLenum internalformat, bool renderTarget, - GLsizei width, GLsizei height, GLsizei depth, int levels); - virtual ~TextureStorageInterface3D(); - - void generateMipmap(int level); - RenderTarget *getRenderTarget(GLint level) const; - RenderTarget *getRenderTarget(GLint level, GLint layer) const; - - virtual unsigned int getRenderTargetSerial(GLint level, GLint layer) const; - - private: - DISALLOW_COPY_AND_ASSIGN(TextureStorageInterface3D); - - unsigned int mFirstRenderTargetSerial; -}; - -class TextureStorageInterface2DArray : public TextureStorageInterface -{ - public: - TextureStorageInterface2DArray(Renderer *renderer, GLenum internalformat, bool renderTarget, - GLsizei width, GLsizei height, GLsizei depth, int levels); - virtual ~TextureStorageInterface2DArray(); - - void generateMipmap(int level); - RenderTarget *getRenderTarget(GLint level, GLint layer) const; - - virtual unsigned int getRenderTargetSerial(GLint level, GLint layer) const; - - private: - DISALLOW_COPY_AND_ASSIGN(TextureStorageInterface2DArray); unsigned int mFirstRenderTargetSerial; + unsigned int mRenderTargetSerialsLayerStride; }; } |