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