Commit 6a455206 by Jiawei Shao Committed by Commit Bot

Use IsCubeMapFaceTarget on texture targets

This patch introduces IsCubeMapFaceTarget() to determine if a teture target belongs to cube map. BUG=angleproject:2169 Change-Id: I3968ee267887665835f3eb3eda281c054e5d4375 Reviewed-on: https://chromium-review.googlesource.com/1080450Reviewed-by: 's avatarJiajia Qin <jiajia.qin@intel.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
parent 46bcea50
...@@ -42,6 +42,11 @@ TextureType TextureTargetToType(TextureTarget target) ...@@ -42,6 +42,11 @@ TextureType TextureTargetToType(TextureTarget target)
} }
} }
bool IsCubeMapFaceTarget(TextureTarget target)
{
return TextureTargetToType(target) == TextureType::CubeMap;
}
TextureTarget NonCubeTextureTypeToTarget(TextureType type) TextureTarget NonCubeTextureTypeToTarget(TextureType type)
{ {
switch (type) switch (type)
...@@ -94,7 +99,7 @@ TextureTarget CubeFaceIndexToTextureTarget(size_t face) ...@@ -94,7 +99,7 @@ TextureTarget CubeFaceIndexToTextureTarget(size_t face)
size_t CubeMapTextureTargetToFaceIndex(TextureTarget target) size_t CubeMapTextureTargetToFaceIndex(TextureTarget target)
{ {
ASSERT(TextureTargetToType(target) == TextureType::CubeMap); ASSERT(IsCubeMapFaceTarget(target));
return static_cast<uint8_t>(target) - static_cast<uint8_t>(TextureTarget::CubeMapPositiveX); return static_cast<uint8_t>(target) - static_cast<uint8_t>(TextureTarget::CubeMapPositiveX);
} }
......
...@@ -142,6 +142,7 @@ TextureTarget NonCubeTextureTypeToTarget(TextureType type); ...@@ -142,6 +142,7 @@ TextureTarget NonCubeTextureTypeToTarget(TextureType type);
TextureTarget CubeFaceIndexToTextureTarget(size_t face); TextureTarget CubeFaceIndexToTextureTarget(size_t face);
size_t CubeMapTextureTargetToFaceIndex(TextureTarget target); size_t CubeMapTextureTargetToFaceIndex(TextureTarget target);
bool IsCubeMapFaceTarget(TextureTarget target);
constexpr TextureTarget kCubeMapTextureTargetMin = TextureTarget::CubeMapPositiveX; constexpr TextureTarget kCubeMapTextureTargetMin = TextureTarget::CubeMapPositiveX;
constexpr TextureTarget kCubeMapTextureTargetMax = TextureTarget::CubeMapNegativeZ; constexpr TextureTarget kCubeMapTextureTargetMax = TextureTarget::CubeMapNegativeZ;
......
...@@ -121,7 +121,7 @@ ImageIndex ImageIndex::MakeRectangle(GLint levelIndex) ...@@ -121,7 +121,7 @@ ImageIndex ImageIndex::MakeRectangle(GLint levelIndex)
ImageIndex ImageIndex::MakeCube(TextureTarget target, GLint levelIndex) ImageIndex ImageIndex::MakeCube(TextureTarget target, GLint levelIndex)
{ {
ASSERT(TextureTargetToType(target) == TextureType::CubeMap); ASSERT(IsCubeMapFaceTarget(target));
return ImageIndex(TextureType::CubeMap, levelIndex, TextureTargetToLayer(target), 1); return ImageIndex(TextureType::CubeMap, levelIndex, TextureTargetToLayer(target), 1);
} }
......
...@@ -33,9 +33,8 @@ bool IsPointSampled(const SamplerState &samplerState) ...@@ -33,9 +33,8 @@ bool IsPointSampled(const SamplerState &samplerState)
size_t GetImageDescIndex(TextureTarget target, size_t level) size_t GetImageDescIndex(TextureTarget target, size_t level)
{ {
return TextureTargetToType(target) == TextureType::CubeMap return IsCubeMapFaceTarget(target) ? (level * 6 + CubeMapTextureTargetToFaceIndex(target))
? (level * 6 + CubeMapTextureTargetToFaceIndex(target)) : level;
: level;
} }
InitState DetermineInitState(const Context *context, const uint8_t *pixels) InitState DetermineInitState(const Context *context, const uint8_t *pixels)
......
...@@ -1589,7 +1589,7 @@ ImageD3D *TextureD3D_Cube::getImage(int level, int layer) const ...@@ -1589,7 +1589,7 @@ ImageD3D *TextureD3D_Cube::getImage(int level, int layer) const
ImageD3D *TextureD3D_Cube::getImage(const gl::ImageIndex &index) const ImageD3D *TextureD3D_Cube::getImage(const gl::ImageIndex &index) const
{ {
ASSERT(index.getLevelIndex() < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS); ASSERT(index.getLevelIndex() < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS);
ASSERT(gl::TextureTargetToType(index.getTarget()) == gl::TextureType::CubeMap); ASSERT(gl::IsCubeMapFaceTarget(index.getTarget()));
return mImageArray[index.cubeMapFaceIndex()][index.getLevelIndex()].get(); return mImageArray[index.cubeMapFaceIndex()][index.getLevelIndex()].get();
} }
...@@ -1803,7 +1803,7 @@ gl::Error TextureD3D_Cube::copyTexture(const gl::Context *context, ...@@ -1803,7 +1803,7 @@ gl::Error TextureD3D_Cube::copyTexture(const gl::Context *context,
bool unpackUnmultiplyAlpha, bool unpackUnmultiplyAlpha,
const gl::Texture *source) const gl::Texture *source)
{ {
ASSERT(gl::TextureTargetToType(index.getTarget()) == gl::TextureType::CubeMap); ASSERT(gl::IsCubeMapFaceTarget(index.getTarget()));
gl::TextureTarget sourceTarget = NonCubeTextureTypeToTarget(source->getType()); gl::TextureTarget sourceTarget = NonCubeTextureTypeToTarget(source->getType());
...@@ -1861,7 +1861,7 @@ gl::Error TextureD3D_Cube::copySubTexture(const gl::Context *context, ...@@ -1861,7 +1861,7 @@ gl::Error TextureD3D_Cube::copySubTexture(const gl::Context *context,
bool unpackUnmultiplyAlpha, bool unpackUnmultiplyAlpha,
const gl::Texture *source) const gl::Texture *source)
{ {
ASSERT(gl::TextureTargetToType(index.getTarget()) == gl::TextureType::CubeMap); ASSERT(gl::IsCubeMapFaceTarget(index.getTarget()));
GLint faceIndex = index.cubeMapFaceIndex(); GLint faceIndex = index.cubeMapFaceIndex();
...@@ -2008,7 +2008,7 @@ gl::Error TextureD3D_Cube::getRenderTarget(const gl::Context *context, ...@@ -2008,7 +2008,7 @@ gl::Error TextureD3D_Cube::getRenderTarget(const gl::Context *context,
const gl::ImageIndex &index, const gl::ImageIndex &index,
RenderTargetD3D **outRT) RenderTargetD3D **outRT)
{ {
ASSERT(gl::TextureTargetToType(index.getTarget()) == gl::TextureType::CubeMap); ASSERT(gl::IsCubeMapFaceTarget(index.getTarget()));
// ensure the underlying texture is created // ensure the underlying texture is created
ANGLE_TRY(ensureRenderTarget(context)); ANGLE_TRY(ensureRenderTarget(context));
...@@ -2245,8 +2245,8 @@ gl::ImageIndex TextureD3D_Cube::getImageIndex(GLint mip, GLint layer) const ...@@ -2245,8 +2245,8 @@ gl::ImageIndex TextureD3D_Cube::getImageIndex(GLint mip, GLint layer) const
bool TextureD3D_Cube::isValidIndex(const gl::ImageIndex &index) const bool TextureD3D_Cube::isValidIndex(const gl::ImageIndex &index) const
{ {
return (mTexStorage && index.getType() == gl::TextureType::CubeMap && return (mTexStorage && index.getType() == gl::TextureType::CubeMap &&
gl::TextureTargetToType(index.getTarget()) == gl::TextureType::CubeMap && gl::IsCubeMapFaceTarget(index.getTarget()) && index.getLevelIndex() >= 0 &&
index.getLevelIndex() >= 0 && index.getLevelIndex() < mTexStorage->getLevelCount()); index.getLevelIndex() < mTexStorage->getLevelCount());
} }
void TextureD3D_Cube::markAllImagesDirty() void TextureD3D_Cube::markAllImagesDirty()
......
...@@ -521,7 +521,7 @@ gl::Error TextureStorage9_Cube::getRenderTarget(const gl::Context *context, ...@@ -521,7 +521,7 @@ gl::Error TextureStorage9_Cube::getRenderTarget(const gl::Context *context,
ASSERT(index.getLevelIndex() == 0); ASSERT(index.getLevelIndex() == 0);
ASSERT(index.getType() == gl::TextureType::CubeMap && ASSERT(index.getType() == gl::TextureType::CubeMap &&
gl::TextureTargetToType(index.getTarget()) == gl::TextureType::CubeMap); gl::IsCubeMapFaceTarget(index.getTarget()));
const size_t renderTargetIndex = index.cubeMapFaceIndex(); const size_t renderTargetIndex = index.cubeMapFaceIndex();
if (mRenderTarget[renderTargetIndex] == nullptr && isRenderTarget()) if (mRenderTarget[renderTargetIndex] == nullptr && isRenderTarget())
......
...@@ -35,7 +35,7 @@ namespace ...@@ -35,7 +35,7 @@ namespace
size_t GetLevelInfoIndex(gl::TextureTarget target, size_t level) size_t GetLevelInfoIndex(gl::TextureTarget target, size_t level)
{ {
return gl::TextureTargetToType(target) == gl::TextureType::CubeMap return gl::IsCubeMapFaceTarget(target)
? ((level * 6) + gl::CubeMapTextureTargetToFaceIndex(target)) ? ((level * 6) + gl::CubeMapTextureTargetToFaceIndex(target))
: level; : level;
} }
......
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