Commit 70205219 by Jamie Madill

Add gl::TexLevelArray.

This moves a D3D specific type into a shared location. Bug: chromium:867089 Change-Id: Ieac9f1aa4a9de11fbc86550eee30fb242a2cb98e Reviewed-on: https://chromium-review.googlesource.com/1149080Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1155096Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 0be37b44
......@@ -289,6 +289,9 @@ using UniformBlockBindingMask = angle::BitSet<IMPLEMENTATION_MAX_COMBINED_SHADER
// Used in Framebuffer / Program
using DrawBufferMask = angle::BitSet<IMPLEMENTATION_MAX_DRAW_BUFFERS>;
template <typename T>
using TexLevelArray = std::array<T, IMPLEMENTATION_MAX_TEXTURE_LEVELS>;
constexpr size_t MAX_COMPONENT_TYPE_MASK_INDEX = 16;
struct ComponentTypeMask final
{
......
......@@ -29,9 +29,6 @@ class RendererD3D;
class RenderTargetD3D;
class TextureStorage;
template <typename T>
using TexLevelsArray = std::array<T, gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS>;
class TextureD3D : public TextureImpl
{
public:
......@@ -314,7 +311,7 @@ class TextureD3D_2D : public TextureD3D
bool forceRelease);
bool mEGLImageTarget;
TexLevelsArray<std::unique_ptr<ImageD3D>> mImageArray;
gl::TexLevelArray<std::unique_ptr<ImageD3D>> mImageArray;
};
class TextureD3D_Cube : public TextureD3D
......@@ -441,7 +438,7 @@ class TextureD3D_Cube : public TextureD3D
const gl::Extents &size,
bool forceRelease);
std::array<TexLevelsArray<std::unique_ptr<ImageD3D>>, 6> mImageArray;
std::array<gl::TexLevelArray<std::unique_ptr<ImageD3D>>, 6> mImageArray;
};
class TextureD3D_3D : public TextureD3D
......@@ -550,7 +547,7 @@ class TextureD3D_3D : public TextureD3D
const gl::Extents &size,
bool forceRelease);
TexLevelsArray<std::unique_ptr<ImageD3D>> mImageArray;
gl::TexLevelArray<std::unique_ptr<ImageD3D>> mImageArray;
};
class TextureD3D_2DArray : public TextureD3D
......
......@@ -36,9 +36,6 @@ class Image11;
struct Renderer11DeviceCaps;
template <typename T>
using TexLevelArray = std::array<T, gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS>;
template <typename T>
using CubeFaceArray = std::array<T, gl::CUBE_FACE_COUNT>;
class TextureStorage11 : public TextureStorage
......@@ -174,7 +171,7 @@ class TextureStorage11 : public TextureStorage
unsigned int mTextureHeight;
unsigned int mTextureDepth;
TexLevelArray<gl::SwizzleState> mSwizzleCache;
gl::TexLevelArray<gl::SwizzleState> mSwizzleCache;
TextureHelper11 mDropStencilTexture;
private:
......@@ -225,8 +222,8 @@ class TextureStorage11 : public TextureStorage
using UAVCacheForImage = std::map<ImageKey, d3d11::SharedUAV>;
UAVCacheForImage mUavCacheForImage;
TexLevelArray<d3d11::SharedSRV> mLevelSRVs;
TexLevelArray<d3d11::SharedSRV> mLevelBlitSRVs;
gl::TexLevelArray<d3d11::SharedSRV> mLevelSRVs;
gl::TexLevelArray<d3d11::SharedSRV> mLevelBlitSRVs;
};
class TextureStorage11_2D : public TextureStorage11
......@@ -290,7 +287,7 @@ class TextureStorage11_2D : public TextureStorage11
d3d11::SharedUAV *outUAV) override;
TextureHelper11 mTexture;
TexLevelArray<std::unique_ptr<RenderTarget11>> mRenderTarget;
gl::TexLevelArray<std::unique_ptr<RenderTarget11>> mRenderTarget;
bool mHasKeyedMutex;
// These are members related to the zero max-LOD workaround.
......@@ -310,9 +307,9 @@ class TextureStorage11_2D : public TextureStorage11
// Swizzle-related variables
TextureHelper11 mSwizzleTexture;
TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
gl::TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
TexLevelArray<Image11 *> mAssociatedImages;
gl::TexLevelArray<Image11 *> mAssociatedImages;
};
class TextureStorage11_External : public TextureStorage11
......@@ -501,7 +498,7 @@ class TextureStorage11_Cube : public TextureStorage11
d3d11::SharedSRV *srv) const;
TextureHelper11 mTexture;
CubeFaceArray<TexLevelArray<std::unique_ptr<RenderTarget11>>> mRenderTarget;
CubeFaceArray<gl::TexLevelArray<std::unique_ptr<RenderTarget11>>> mRenderTarget;
// Level-zero workaround members. See TextureStorage11_2D's workaround members for a
// description.
......@@ -510,9 +507,9 @@ class TextureStorage11_Cube : public TextureStorage11
bool mUseLevelZeroTexture;
TextureHelper11 mSwizzleTexture;
TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
gl::TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
CubeFaceArray<TexLevelArray<Image11 *>> mAssociatedImages;
CubeFaceArray<gl::TexLevelArray<Image11 *>> mAssociatedImages;
};
class TextureStorage11_3D : public TextureStorage11
......@@ -568,13 +565,13 @@ class TextureStorage11_3D : public TextureStorage11
typedef std::pair<int, int> LevelLayerKey;
std::map<LevelLayerKey, std::unique_ptr<RenderTarget11>> mLevelLayerRenderTargets;
TexLevelArray<std::unique_ptr<RenderTarget11>> mLevelRenderTargets;
gl::TexLevelArray<std::unique_ptr<RenderTarget11>> mLevelRenderTargets;
TextureHelper11 mTexture;
TextureHelper11 mSwizzleTexture;
TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
gl::TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
TexLevelArray<Image11 *> mAssociatedImages;
gl::TexLevelArray<Image11 *> mAssociatedImages;
};
class TextureStorage11_2DArray : public TextureStorage11
......@@ -660,7 +657,7 @@ class TextureStorage11_2DArray : public TextureStorage11
TextureHelper11 mTexture;
TextureHelper11 mSwizzleTexture;
TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
gl::TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
typedef std::map<LevelLayerRangeKey, Image11 *> ImageMap;
ImageMap mAssociatedImages;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment