diff options
Diffstat (limited to 'src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.h')
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.h | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.h b/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.h index 76eeada5..133790b2 100644 --- a/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.h +++ b/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.h @@ -15,6 +15,11 @@ #include <map> +namespace gl +{ +struct ImageIndex; +} + namespace rx { class RenderTarget; @@ -37,9 +42,7 @@ class TextureStorage11 : public TextureStorage virtual ID3D11Resource *getResource() const = 0; virtual ID3D11ShaderResourceView *getSRV(const gl::SamplerState &samplerState); - virtual RenderTarget *getRenderTarget(int level) { return NULL; } - virtual RenderTarget *getRenderTargetFace(GLenum faceTarget, int level) { return NULL; } - virtual RenderTarget *getRenderTargetLayer(int mipLevel, int layer) { return NULL; } + virtual RenderTarget *getRenderTarget(const gl::ImageIndex &index) = 0; virtual void generateMipmap(int level) {}; virtual void generateMipmap(int face, int level) {}; @@ -160,7 +163,7 @@ class TextureStorage11_2D : public TextureStorage11 static TextureStorage11_2D *makeTextureStorage11_2D(TextureStorage *storage); virtual ID3D11Resource *getResource() const; - virtual RenderTarget *getRenderTarget(int level); + virtual RenderTarget *getRenderTarget(const gl::ImageIndex &index); virtual void generateMipmap(int level); @@ -198,7 +201,7 @@ class TextureStorage11_Cube : public TextureStorage11 static TextureStorage11_Cube *makeTextureStorage11_Cube(TextureStorage *storage); virtual ID3D11Resource *getResource() const; - virtual RenderTarget *getRenderTargetFace(GLenum faceTarget, int level); + virtual RenderTarget *getRenderTarget(const gl::ImageIndex &index); virtual void generateMipmap(int faceIndex, int level); @@ -237,8 +240,9 @@ class TextureStorage11_3D : public TextureStorage11 static TextureStorage11_3D *makeTextureStorage11_3D(TextureStorage *storage); virtual ID3D11Resource *getResource() const; - virtual RenderTarget *getRenderTarget(int mipLevel); - virtual RenderTarget *getRenderTargetLayer(int mipLevel, int layer); + + // Handles both layer and non-layer RTs + virtual RenderTarget *getRenderTarget(const gl::ImageIndex &index); virtual void generateMipmap(int level); @@ -281,7 +285,7 @@ class TextureStorage11_2DArray : public TextureStorage11 static TextureStorage11_2DArray *makeTextureStorage11_2DArray(TextureStorage *storage); virtual ID3D11Resource *getResource() const; - virtual RenderTarget *getRenderTargetLayer(int mipLevel, int layer); + virtual RenderTarget *getRenderTarget(const gl::ImageIndex &index); virtual void generateMipmap(int level); |