Commit cbc7f050 by Geoff Lang

Use a constant for the number of faces in a cube map.

BUG=angle:520 Change-Id: Ia35103059526aff2fc1b29a160d8471f4b5cbd42 Reviewed-on: https://chromium-review.googlesource.com/223107Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Tested-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 739f8ec3
...@@ -905,7 +905,7 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, GLenum internal ...@@ -905,7 +905,7 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, GLenum internal
for (unsigned int level = 0; level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++) for (unsigned int level = 0; level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++)
{ {
mSwizzleRenderTargets[level] = NULL; mSwizzleRenderTargets[level] = NULL;
for (unsigned int face = 0; face < 6; face++) for (unsigned int face = 0; face < CUBE_FACE_COUNT; face++)
{ {
mAssociatedImages[face][level] = NULL; mAssociatedImages[face][level] = NULL;
mRenderTarget[face][level] = NULL; mRenderTarget[face][level] = NULL;
...@@ -935,7 +935,7 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, GLenum internal ...@@ -935,7 +935,7 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, GLenum internal
desc.Width = size; desc.Width = size;
desc.Height = size; desc.Height = size;
desc.MipLevels = ((levels > 0) ? (mTopLevel + levels) : 0); desc.MipLevels = ((levels > 0) ? (mTopLevel + levels) : 0);
desc.ArraySize = 6; desc.ArraySize = CUBE_FACE_COUNT;
desc.Format = mTextureFormat; desc.Format = mTextureFormat;
desc.SampleDesc.Count = 1; desc.SampleDesc.Count = 1;
desc.SampleDesc.Quality = 0; desc.SampleDesc.Quality = 0;
...@@ -962,7 +962,7 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, GLenum internal ...@@ -962,7 +962,7 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, GLenum internal
} }
} }
initializeSerials(getLevelCount() * 6, 6); initializeSerials(getLevelCount() * CUBE_FACE_COUNT, CUBE_FACE_COUNT);
} }
...@@ -970,7 +970,7 @@ TextureStorage11_Cube::~TextureStorage11_Cube() ...@@ -970,7 +970,7 @@ TextureStorage11_Cube::~TextureStorage11_Cube()
{ {
for (unsigned int level = 0; level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++) for (unsigned int level = 0; level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++)
{ {
for (unsigned int face = 0; face < 6; face++) for (unsigned int face = 0; face < CUBE_FACE_COUNT; face++)
{ {
if (mAssociatedImages[face][level] != NULL) if (mAssociatedImages[face][level] != NULL)
{ {
...@@ -992,7 +992,7 @@ TextureStorage11_Cube::~TextureStorage11_Cube() ...@@ -992,7 +992,7 @@ TextureStorage11_Cube::~TextureStorage11_Cube()
for (unsigned int level = 0; level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++) for (unsigned int level = 0; level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++)
{ {
SafeRelease(mSwizzleRenderTargets[level]); SafeRelease(mSwizzleRenderTargets[level]);
for (unsigned int face = 0; face < 6; face++) for (unsigned int face = 0; face < CUBE_FACE_COUNT; face++)
{ {
SafeDelete(mRenderTarget[face][level]); SafeDelete(mRenderTarget[face][level]);
} }
...@@ -1011,11 +1011,11 @@ void TextureStorage11_Cube::associateImage(Image11* image, const gl::ImageIndex ...@@ -1011,11 +1011,11 @@ void TextureStorage11_Cube::associateImage(Image11* image, const gl::ImageIndex
GLint layerTarget = index.layerIndex; GLint layerTarget = index.layerIndex;
ASSERT(0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS); ASSERT(0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS);
ASSERT(0 <= layerTarget && layerTarget < 6); ASSERT(0 <= layerTarget && layerTarget < CUBE_FACE_COUNT);
if (0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS) if (0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS)
{ {
if (0 <= layerTarget && layerTarget < 6) if (0 <= layerTarget && layerTarget < CUBE_FACE_COUNT)
{ {
mAssociatedImages[layerTarget][level] = image; mAssociatedImages[layerTarget][level] = image;
} }
...@@ -1029,7 +1029,7 @@ bool TextureStorage11_Cube::isAssociatedImageValid(const gl::ImageIndex &index, ...@@ -1029,7 +1029,7 @@ bool TextureStorage11_Cube::isAssociatedImageValid(const gl::ImageIndex &index,
if (0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS) if (0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS)
{ {
if (0 <= layerTarget && layerTarget < 6) if (0 <= layerTarget && layerTarget < CUBE_FACE_COUNT)
{ {
// This validation check should never return false. It means the Image/TextureStorage association is broken. // This validation check should never return false. It means the Image/TextureStorage association is broken.
bool retValue = (mAssociatedImages[layerTarget][level] == expectedImage); bool retValue = (mAssociatedImages[layerTarget][level] == expectedImage);
...@@ -1048,11 +1048,11 @@ void TextureStorage11_Cube::disassociateImage(const gl::ImageIndex &index, Image ...@@ -1048,11 +1048,11 @@ void TextureStorage11_Cube::disassociateImage(const gl::ImageIndex &index, Image
GLint layerTarget = index.layerIndex; GLint layerTarget = index.layerIndex;
ASSERT(0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS); ASSERT(0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS);
ASSERT(0 <= layerTarget && layerTarget < 6); ASSERT(0 <= layerTarget && layerTarget < CUBE_FACE_COUNT);
if (0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS) if (0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS)
{ {
if (0 <= layerTarget && layerTarget < 6) if (0 <= layerTarget && layerTarget < CUBE_FACE_COUNT)
{ {
ASSERT(mAssociatedImages[layerTarget][level] == expectedImage); ASSERT(mAssociatedImages[layerTarget][level] == expectedImage);
...@@ -1071,11 +1071,11 @@ gl::Error TextureStorage11_Cube::releaseAssociatedImage(const gl::ImageIndex &in ...@@ -1071,11 +1071,11 @@ gl::Error TextureStorage11_Cube::releaseAssociatedImage(const gl::ImageIndex &in
GLint layerTarget = index.layerIndex; GLint layerTarget = index.layerIndex;
ASSERT(0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS); ASSERT(0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS);
ASSERT(0 <= layerTarget && layerTarget < 6); ASSERT(0 <= layerTarget && layerTarget < CUBE_FACE_COUNT);
if ((0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS)) if ((0 <= level && level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS))
{ {
if (0 <= layerTarget && layerTarget < 6) if (0 <= layerTarget && layerTarget < CUBE_FACE_COUNT)
{ {
// No need to let the old Image recover its data, if it is also the incoming Image. // No need to let the old Image recover its data, if it is also the incoming Image.
if (mAssociatedImages[layerTarget][level] != NULL && mAssociatedImages[layerTarget][level] != incomingImage) if (mAssociatedImages[layerTarget][level] != NULL && mAssociatedImages[layerTarget][level] != incomingImage)
...@@ -1112,7 +1112,7 @@ gl::Error TextureStorage11_Cube::getRenderTarget(const gl::ImageIndex &index, Re ...@@ -1112,7 +1112,7 @@ gl::Error TextureStorage11_Cube::getRenderTarget(const gl::ImageIndex &index, Re
int level = index.mipIndex; int level = index.mipIndex;
ASSERT(level >= 0 && level < getLevelCount()); ASSERT(level >= 0 && level < getLevelCount());
ASSERT(faceIndex >= 0 && faceIndex < 6); ASSERT(faceIndex >= 0 && faceIndex < CUBE_FACE_COUNT);
if (!mRenderTarget[faceIndex][level]) if (!mRenderTarget[faceIndex][level])
{ {
...@@ -1214,7 +1214,7 @@ gl::Error TextureStorage11_Cube::createSRV(int baseLevel, int mipLevels, DXGI_FO ...@@ -1214,7 +1214,7 @@ gl::Error TextureStorage11_Cube::createSRV(int baseLevel, int mipLevels, DXGI_FO
srvDesc.Texture2DArray.MostDetailedMip = mTopLevel + baseLevel; srvDesc.Texture2DArray.MostDetailedMip = mTopLevel + baseLevel;
srvDesc.Texture2DArray.MipLevels = 1; srvDesc.Texture2DArray.MipLevels = 1;
srvDesc.Texture2DArray.FirstArraySlice = 0; srvDesc.Texture2DArray.FirstArraySlice = 0;
srvDesc.Texture2DArray.ArraySize = 6; srvDesc.Texture2DArray.ArraySize = CUBE_FACE_COUNT;
} }
else else
{ {
...@@ -1247,7 +1247,7 @@ gl::Error TextureStorage11_Cube::getSwizzleTexture(ID3D11Resource **outTexture) ...@@ -1247,7 +1247,7 @@ gl::Error TextureStorage11_Cube::getSwizzleTexture(ID3D11Resource **outTexture)
desc.Width = mTextureWidth; desc.Width = mTextureWidth;
desc.Height = mTextureHeight; desc.Height = mTextureHeight;
desc.MipLevels = mMipLevels; desc.MipLevels = mMipLevels;
desc.ArraySize = 6; desc.ArraySize = CUBE_FACE_COUNT;
desc.Format = mSwizzleTextureFormat; desc.Format = mSwizzleTextureFormat;
desc.SampleDesc.Count = 1; desc.SampleDesc.Count = 1;
desc.SampleDesc.Quality = 0; desc.SampleDesc.Quality = 0;
...@@ -1290,7 +1290,7 @@ gl::Error TextureStorage11_Cube::getSwizzleRenderTarget(int mipLevel, ID3D11Rend ...@@ -1290,7 +1290,7 @@ gl::Error TextureStorage11_Cube::getSwizzleRenderTarget(int mipLevel, ID3D11Rend
rtvDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DARRAY; rtvDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DARRAY;
rtvDesc.Texture2DArray.MipSlice = mTopLevel + mipLevel; rtvDesc.Texture2DArray.MipSlice = mTopLevel + mipLevel;
rtvDesc.Texture2DArray.FirstArraySlice = 0; rtvDesc.Texture2DArray.FirstArraySlice = 0;
rtvDesc.Texture2DArray.ArraySize = 6; rtvDesc.Texture2DArray.ArraySize = CUBE_FACE_COUNT;
HRESULT result = device->CreateRenderTargetView(mSwizzleTexture, &rtvDesc, &mSwizzleRenderTargets[mipLevel]); HRESULT result = device->CreateRenderTargetView(mSwizzleTexture, &rtvDesc, &mSwizzleRenderTargets[mipLevel]);
......
...@@ -200,13 +200,15 @@ class TextureStorage11_Cube : public TextureStorage11 ...@@ -200,13 +200,15 @@ class TextureStorage11_Cube : public TextureStorage11
virtual gl::Error createSRV(int baseLevel, int mipLevels, DXGI_FORMAT format, ID3D11Resource *texture, virtual gl::Error createSRV(int baseLevel, int mipLevels, DXGI_FORMAT format, ID3D11Resource *texture,
ID3D11ShaderResourceView **outSRV) const; ID3D11ShaderResourceView **outSRV) const;
static const size_t CUBE_FACE_COUNT = 6;
ID3D11Texture2D *mTexture; ID3D11Texture2D *mTexture;
RenderTarget11 *mRenderTarget[6][gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; RenderTarget11 *mRenderTarget[CUBE_FACE_COUNT][gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS];
ID3D11Texture2D *mSwizzleTexture; ID3D11Texture2D *mSwizzleTexture;
ID3D11RenderTargetView *mSwizzleRenderTargets[gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; ID3D11RenderTargetView *mSwizzleRenderTargets[gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS];
Image11 *mAssociatedImages[6][gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; Image11 *mAssociatedImages[CUBE_FACE_COUNT][gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS];
}; };
class TextureStorage11_3D : public TextureStorage11 class TextureStorage11_3D : public TextureStorage11
......
...@@ -234,7 +234,7 @@ TextureStorage9_Cube::TextureStorage9_Cube(Renderer *renderer, GLenum internalfo ...@@ -234,7 +234,7 @@ TextureStorage9_Cube::TextureStorage9_Cube(Renderer *renderer, GLenum internalfo
: TextureStorage9(renderer, GetTextureUsage(internalformat, renderTarget)) : TextureStorage9(renderer, GetTextureUsage(internalformat, renderTarget))
{ {
mTexture = NULL; mTexture = NULL;
for (int i = 0; i < 6; ++i) for (int i = 0; i < CUBE_FACE_COUNT; ++i)
{ {
mRenderTarget[i] = NULL; mRenderTarget[i] = NULL;
} }
...@@ -259,14 +259,14 @@ TextureStorage9_Cube::TextureStorage9_Cube(Renderer *renderer, GLenum internalfo ...@@ -259,14 +259,14 @@ TextureStorage9_Cube::TextureStorage9_Cube(Renderer *renderer, GLenum internalfo
} }
initializeRenderTarget(); initializeRenderTarget();
initializeSerials(getLevelCount() * 6, 6); initializeSerials(getLevelCount() * CUBE_FACE_COUNT, CUBE_FACE_COUNT);
} }
TextureStorage9_Cube::~TextureStorage9_Cube() TextureStorage9_Cube::~TextureStorage9_Cube()
{ {
SafeRelease(mTexture); SafeRelease(mTexture);
for (int i = 0; i < 6; ++i) for (int i = 0; i < CUBE_FACE_COUNT; ++i)
{ {
SafeDelete(mRenderTarget[i]); SafeDelete(mRenderTarget[i]);
} }
...@@ -305,7 +305,7 @@ gl::Error TextureStorage9_Cube::getRenderTarget(const gl::ImageIndex &index, Ren ...@@ -305,7 +305,7 @@ gl::Error TextureStorage9_Cube::getRenderTarget(const gl::ImageIndex &index, Ren
{ {
ASSERT(outRT); ASSERT(outRT);
ASSERT(index.mipIndex == 0); ASSERT(index.mipIndex == 0);
ASSERT(index.layerIndex >= 0 && index.layerIndex < 6); ASSERT(index.layerIndex >= 0 && index.layerIndex < CUBE_FACE_COUNT);
*outRT = mRenderTarget[index.layerIndex]; *outRT = mRenderTarget[index.layerIndex];
return gl::Error(GL_NO_ERROR); return gl::Error(GL_NO_ERROR);
} }
...@@ -335,7 +335,7 @@ void TextureStorage9_Cube::initializeRenderTarget() ...@@ -335,7 +335,7 @@ void TextureStorage9_Cube::initializeRenderTarget()
{ {
IDirect3DSurface9 *surface = NULL; IDirect3DSurface9 *surface = NULL;
for (int i = 0; i < 6; ++i) for (int i = 0; i < CUBE_FACE_COUNT; ++i)
{ {
ASSERT(mRenderTarget[i] == NULL); ASSERT(mRenderTarget[i] == NULL);
...@@ -353,7 +353,7 @@ gl::Error TextureStorage9_Cube::copyToStorage(TextureStorage *destStorage) ...@@ -353,7 +353,7 @@ gl::Error TextureStorage9_Cube::copyToStorage(TextureStorage *destStorage)
TextureStorage9_Cube *dest9 = TextureStorage9_Cube::makeTextureStorage9_Cube(destStorage); TextureStorage9_Cube *dest9 = TextureStorage9_Cube::makeTextureStorage9_Cube(destStorage);
int levels = getLevelCount(); int levels = getLevelCount();
for (int f = 0; f < 6; f++) for (int f = 0; f < CUBE_FACE_COUNT; f++)
{ {
for (int i = 0; i < levels; i++) for (int i = 0; i < levels; i++)
{ {
......
...@@ -101,8 +101,10 @@ class TextureStorage9_Cube : public TextureStorage9 ...@@ -101,8 +101,10 @@ class TextureStorage9_Cube : public TextureStorage9
void initializeRenderTarget(); void initializeRenderTarget();
static const size_t CUBE_FACE_COUNT = 6;
IDirect3DCubeTexture9 *mTexture; IDirect3DCubeTexture9 *mTexture;
RenderTarget9 *mRenderTarget[6]; RenderTarget9 *mRenderTarget[CUBE_FACE_COUNT];
}; };
} }
......
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