Commit 2160821e by Jamie Madill Committed by Commit Bot

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>
parent 096c5296
...@@ -289,6 +289,9 @@ using UniformBlockBindingMask = angle::BitSet<IMPLEMENTATION_MAX_COMBINED_SHADER ...@@ -289,6 +289,9 @@ using UniformBlockBindingMask = angle::BitSet<IMPLEMENTATION_MAX_COMBINED_SHADER
// Used in Framebuffer / Program // Used in Framebuffer / Program
using DrawBufferMask = angle::BitSet<IMPLEMENTATION_MAX_DRAW_BUFFERS>; 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; constexpr size_t MAX_COMPONENT_TYPE_MASK_INDEX = 16;
struct ComponentTypeMask final struct ComponentTypeMask final
{ {
......
...@@ -29,9 +29,6 @@ class RendererD3D; ...@@ -29,9 +29,6 @@ class RendererD3D;
class RenderTargetD3D; class RenderTargetD3D;
class TextureStorage; class TextureStorage;
template <typename T>
using TexLevelsArray = std::array<T, gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS>;
class TextureD3D : public TextureImpl class TextureD3D : public TextureImpl
{ {
public: public:
...@@ -314,7 +311,7 @@ class TextureD3D_2D : public TextureD3D ...@@ -314,7 +311,7 @@ class TextureD3D_2D : public TextureD3D
bool forceRelease); bool forceRelease);
bool mEGLImageTarget; bool mEGLImageTarget;
TexLevelsArray<std::unique_ptr<ImageD3D>> mImageArray; gl::TexLevelArray<std::unique_ptr<ImageD3D>> mImageArray;
}; };
class TextureD3D_Cube : public TextureD3D class TextureD3D_Cube : public TextureD3D
...@@ -441,7 +438,7 @@ class TextureD3D_Cube : public TextureD3D ...@@ -441,7 +438,7 @@ class TextureD3D_Cube : public TextureD3D
const gl::Extents &size, const gl::Extents &size,
bool forceRelease); 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 class TextureD3D_3D : public TextureD3D
...@@ -550,7 +547,7 @@ class TextureD3D_3D : public TextureD3D ...@@ -550,7 +547,7 @@ class TextureD3D_3D : public TextureD3D
const gl::Extents &size, const gl::Extents &size,
bool forceRelease); bool forceRelease);
TexLevelsArray<std::unique_ptr<ImageD3D>> mImageArray; gl::TexLevelArray<std::unique_ptr<ImageD3D>> mImageArray;
}; };
class TextureD3D_2DArray : public TextureD3D class TextureD3D_2DArray : public TextureD3D
......
...@@ -36,9 +36,6 @@ class Image11; ...@@ -36,9 +36,6 @@ class Image11;
struct Renderer11DeviceCaps; struct Renderer11DeviceCaps;
template <typename T> 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>; using CubeFaceArray = std::array<T, gl::CUBE_FACE_COUNT>;
class TextureStorage11 : public TextureStorage class TextureStorage11 : public TextureStorage
...@@ -177,7 +174,7 @@ class TextureStorage11 : public TextureStorage ...@@ -177,7 +174,7 @@ class TextureStorage11 : public TextureStorage
unsigned int mTextureHeight; unsigned int mTextureHeight;
unsigned int mTextureDepth; unsigned int mTextureDepth;
TexLevelArray<gl::SwizzleState> mSwizzleCache; gl::TexLevelArray<gl::SwizzleState> mSwizzleCache;
TextureHelper11 mDropStencilTexture; TextureHelper11 mDropStencilTexture;
private: private:
...@@ -228,8 +225,8 @@ class TextureStorage11 : public TextureStorage ...@@ -228,8 +225,8 @@ class TextureStorage11 : public TextureStorage
using UAVCacheForImage = std::map<ImageKey, d3d11::SharedUAV>; using UAVCacheForImage = std::map<ImageKey, d3d11::SharedUAV>;
UAVCacheForImage mUavCacheForImage; UAVCacheForImage mUavCacheForImage;
TexLevelArray<d3d11::SharedSRV> mLevelSRVs; gl::TexLevelArray<d3d11::SharedSRV> mLevelSRVs;
TexLevelArray<d3d11::SharedSRV> mLevelBlitSRVs; gl::TexLevelArray<d3d11::SharedSRV> mLevelBlitSRVs;
}; };
class TextureStorage11_2D : public TextureStorage11 class TextureStorage11_2D : public TextureStorage11
...@@ -297,7 +294,7 @@ class TextureStorage11_2D : public TextureStorage11 ...@@ -297,7 +294,7 @@ class TextureStorage11_2D : public TextureStorage11
d3d11::SharedUAV *outUAV) override; d3d11::SharedUAV *outUAV) override;
TextureHelper11 mTexture; TextureHelper11 mTexture;
TexLevelArray<std::unique_ptr<RenderTarget11>> mRenderTarget; gl::TexLevelArray<std::unique_ptr<RenderTarget11>> mRenderTarget;
bool mHasKeyedMutex; bool mHasKeyedMutex;
// These are members related to the zero max-LOD workaround. // These are members related to the zero max-LOD workaround.
...@@ -317,9 +314,9 @@ class TextureStorage11_2D : public TextureStorage11 ...@@ -317,9 +314,9 @@ class TextureStorage11_2D : public TextureStorage11
// Swizzle-related variables // Swizzle-related variables
TextureHelper11 mSwizzleTexture; TextureHelper11 mSwizzleTexture;
TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets; gl::TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
TexLevelArray<Image11 *> mAssociatedImages; gl::TexLevelArray<Image11 *> mAssociatedImages;
}; };
class TextureStorage11_External : public TextureStorage11 class TextureStorage11_External : public TextureStorage11
...@@ -518,7 +515,7 @@ class TextureStorage11_Cube : public TextureStorage11 ...@@ -518,7 +515,7 @@ class TextureStorage11_Cube : public TextureStorage11
d3d11::SharedSRV *srv) const; d3d11::SharedSRV *srv) const;
TextureHelper11 mTexture; 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 // Level-zero workaround members. See TextureStorage11_2D's workaround members for a
// description. // description.
...@@ -527,9 +524,9 @@ class TextureStorage11_Cube : public TextureStorage11 ...@@ -527,9 +524,9 @@ class TextureStorage11_Cube : public TextureStorage11
bool mUseLevelZeroTexture; bool mUseLevelZeroTexture;
TextureHelper11 mSwizzleTexture; 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 class TextureStorage11_3D : public TextureStorage11
...@@ -588,13 +585,13 @@ class TextureStorage11_3D : public TextureStorage11 ...@@ -588,13 +585,13 @@ class TextureStorage11_3D : public TextureStorage11
typedef std::pair<int, int> LevelLayerKey; typedef std::pair<int, int> LevelLayerKey;
std::map<LevelLayerKey, std::unique_ptr<RenderTarget11>> mLevelLayerRenderTargets; std::map<LevelLayerKey, std::unique_ptr<RenderTarget11>> mLevelLayerRenderTargets;
TexLevelArray<std::unique_ptr<RenderTarget11>> mLevelRenderTargets; gl::TexLevelArray<std::unique_ptr<RenderTarget11>> mLevelRenderTargets;
TextureHelper11 mTexture; TextureHelper11 mTexture;
TextureHelper11 mSwizzleTexture; TextureHelper11 mSwizzleTexture;
TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets; gl::TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
TexLevelArray<Image11 *> mAssociatedImages; gl::TexLevelArray<Image11 *> mAssociatedImages;
}; };
class TextureStorage11_2DArray : public TextureStorage11 class TextureStorage11_2DArray : public TextureStorage11
...@@ -684,7 +681,7 @@ class TextureStorage11_2DArray : public TextureStorage11 ...@@ -684,7 +681,7 @@ class TextureStorage11_2DArray : public TextureStorage11
TextureHelper11 mTexture; TextureHelper11 mTexture;
TextureHelper11 mSwizzleTexture; TextureHelper11 mSwizzleTexture;
TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets; gl::TexLevelArray<d3d11::RenderTargetView> mSwizzleRenderTargets;
typedef std::map<LevelLayerRangeKey, Image11 *> ImageMap; typedef std::map<LevelLayerRangeKey, Image11 *> ImageMap;
ImageMap mAssociatedImages; 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