Commit 07bb8cf4 by Jamie Madill

Remove Texture::levelCount() and replace it with isValidLevel().

TRAC #23978 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang
parent 51a94370
...@@ -532,7 +532,7 @@ void Texture2D::setCompressedImage(GLint level, GLenum format, GLsizei width, GL ...@@ -532,7 +532,7 @@ void Texture2D::setCompressedImage(GLint level, GLenum format, GLsizei width, GL
void Texture2D::commitRect(GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) void Texture2D::commitRect(GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height)
{ {
if (level < levelCount()) if (isValidLevel(level))
{ {
rx::Image *image = mImageArray[level]; rx::Image *image = mImageArray[level];
if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, width, height)) if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, width, height))
...@@ -591,7 +591,7 @@ void Texture2D::copyImage(GLint level, GLenum format, GLint x, GLint y, GLsizei ...@@ -591,7 +591,7 @@ void Texture2D::copyImage(GLint level, GLenum format, GLint x, GLint y, GLsizei
ensureRenderTarget(); ensureRenderTarget();
mImageArray[level]->markClean(); mImageArray[level]->markClean();
if (width != 0 && height != 0 && level < levelCount()) if (width != 0 && height != 0 && isValidLevel(level))
{ {
gl::Rectangle sourceRect; gl::Rectangle sourceRect;
sourceRect.x = x; sourceRect.x = x;
...@@ -624,7 +624,7 @@ void Texture2D::copySubImage(GLenum target, GLint level, GLint xoffset, GLint yo ...@@ -624,7 +624,7 @@ void Texture2D::copySubImage(GLenum target, GLint level, GLint xoffset, GLint yo
{ {
ensureRenderTarget(); ensureRenderTarget();
if (level < levelCount()) if (isValidLevel(level))
{ {
updateStorageLevel(level); updateStorageLevel(level);
...@@ -992,9 +992,9 @@ rx::RenderTarget *Texture2D::getDepthSencil(GLint level) ...@@ -992,9 +992,9 @@ rx::RenderTarget *Texture2D::getDepthSencil(GLint level)
return mTexStorage->getRenderTarget(level); return mTexStorage->getRenderTarget(level);
} }
int Texture2D::levelCount() bool Texture2D::isValidLevel(int level) const
{ {
return mTexStorage ? mTexStorage->levelCount() : 0; return (mTexStorage ? (level < mTexStorage->levelCount()) : false);
} }
TextureCubeMap::TextureCubeMap(rx::Renderer *renderer, GLuint id) : Texture(renderer, id, GL_TEXTURE_CUBE_MAP) TextureCubeMap::TextureCubeMap(rx::Renderer *renderer, GLuint id) : Texture(renderer, id, GL_TEXTURE_CUBE_MAP)
...@@ -1096,7 +1096,7 @@ void TextureCubeMap::setCompressedImage(GLenum target, GLint level, GLenum forma ...@@ -1096,7 +1096,7 @@ void TextureCubeMap::setCompressedImage(GLenum target, GLint level, GLenum forma
void TextureCubeMap::commitRect(int faceIndex, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) void TextureCubeMap::commitRect(int faceIndex, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height)
{ {
if (level < levelCount()) if (isValidFaceLevel(faceIndex, level))
{ {
rx::Image *image = mImageArray[faceIndex][level]; rx::Image *image = mImageArray[faceIndex][level];
if (image->copyToStorage(mTexStorage, faceIndex, level, xoffset, yoffset, width, height)) if (image->copyToStorage(mTexStorage, faceIndex, level, xoffset, yoffset, width, height))
...@@ -1450,7 +1450,7 @@ void TextureCubeMap::copyImage(GLenum target, GLint level, GLenum format, GLint ...@@ -1450,7 +1450,7 @@ void TextureCubeMap::copyImage(GLenum target, GLint level, GLenum format, GLint
ASSERT(width == height); ASSERT(width == height);
if (width > 0 && level < levelCount()) if (width > 0 && isValidFaceLevel(faceIndex, level))
{ {
gl::Rectangle sourceRect; gl::Rectangle sourceRect;
sourceRect.x = x; sourceRect.x = x;
...@@ -1488,7 +1488,7 @@ void TextureCubeMap::copySubImage(GLenum target, GLint level, GLint xoffset, GLi ...@@ -1488,7 +1488,7 @@ void TextureCubeMap::copySubImage(GLenum target, GLint level, GLint xoffset, GLi
{ {
ensureRenderTarget(); ensureRenderTarget();
if (level < levelCount()) if (isValidFaceLevel(faceIndex, level))
{ {
updateStorageFaceLevel(faceIndex, level); updateStorageFaceLevel(faceIndex, level);
...@@ -1645,9 +1645,9 @@ rx::RenderTarget *TextureCubeMap::getDepthStencil(GLenum target, GLint level) ...@@ -1645,9 +1645,9 @@ rx::RenderTarget *TextureCubeMap::getDepthStencil(GLenum target, GLint level)
return mTexStorage->getRenderTarget(target, level); return mTexStorage->getRenderTarget(target, level);
} }
int TextureCubeMap::levelCount() bool TextureCubeMap::isValidFaceLevel(int faceIndex, int level) const
{ {
return mTexStorage ? mTexStorage->levelCount() - getLodOffset() : 0; return (mTexStorage ? (level < mTexStorage->levelCount()) : 0);
} }
Texture3D::Texture3D(rx::Renderer *renderer, GLuint id) : Texture(renderer, id, GL_TEXTURE_3D) Texture3D::Texture3D(rx::Renderer *renderer, GLuint id) : Texture(renderer, id, GL_TEXTURE_3D)
...@@ -1858,7 +1858,7 @@ void Texture3D::copySubImage(GLenum target, GLint level, GLint xoffset, GLint yo ...@@ -1858,7 +1858,7 @@ void Texture3D::copySubImage(GLenum target, GLint level, GLint xoffset, GLint yo
{ {
ensureRenderTarget(); ensureRenderTarget();
if (level < levelCount()) if (isValidLevel(level))
{ {
updateStorageLevel(level); updateStorageLevel(level);
...@@ -1985,9 +1985,9 @@ unsigned int Texture3D::getRenderTargetSerial(GLint level, GLint layer) ...@@ -1985,9 +1985,9 @@ unsigned int Texture3D::getRenderTargetSerial(GLint level, GLint layer)
return (ensureRenderTarget() ? mTexStorage->getRenderTargetSerial(level, layer) : 0); return (ensureRenderTarget() ? mTexStorage->getRenderTargetSerial(level, layer) : 0);
} }
int Texture3D::levelCount() bool Texture3D::isValidLevel(int level) const
{ {
return mTexStorage ? mTexStorage->levelCount() : 0; return (mTexStorage ? (level < mTexStorage->levelCount()) : 0);
} }
void Texture3D::initializeStorage(bool renderTarget) void Texture3D::initializeStorage(bool renderTarget)
...@@ -2176,7 +2176,7 @@ void Texture3D::redefineImage(GLint level, GLenum internalformat, GLsizei width, ...@@ -2176,7 +2176,7 @@ void Texture3D::redefineImage(GLint level, GLenum internalformat, GLsizei width,
void Texture3D::commitRect(GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) void Texture3D::commitRect(GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth)
{ {
if (level < levelCount()) if (isValidLevel(level))
{ {
rx::Image *image = mImageArray[level]; rx::Image *image = mImageArray[level];
if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, zoffset, width, height, depth)) if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, zoffset, width, height, depth))
...@@ -2417,7 +2417,7 @@ void Texture2DArray::copySubImage(GLenum target, GLint level, GLint xoffset, GLi ...@@ -2417,7 +2417,7 @@ void Texture2DArray::copySubImage(GLenum target, GLint level, GLint xoffset, GLi
{ {
ensureRenderTarget(); ensureRenderTarget();
if (level < levelCount()) if (isValidLevel(level))
{ {
updateStorageLevel(level); updateStorageLevel(level);
...@@ -2541,9 +2541,9 @@ unsigned int Texture2DArray::getRenderTargetSerial(GLint level, GLint layer) ...@@ -2541,9 +2541,9 @@ unsigned int Texture2DArray::getRenderTargetSerial(GLint level, GLint layer)
return (ensureRenderTarget() ? mTexStorage->getRenderTargetSerial(level, layer) : 0); return (ensureRenderTarget() ? mTexStorage->getRenderTargetSerial(level, layer) : 0);
} }
int Texture2DArray::levelCount() bool Texture2DArray::isValidLevel(int level) const
{ {
return mTexStorage ? mTexStorage->levelCount() : 0; return (mTexStorage ? (level < mTexStorage->levelCount()) : 0);
} }
void Texture2DArray::initializeStorage(bool renderTarget) void Texture2DArray::initializeStorage(bool renderTarget)
...@@ -2737,7 +2737,7 @@ void Texture2DArray::redefineImage(GLint level, GLenum internalformat, GLsizei w ...@@ -2737,7 +2737,7 @@ void Texture2DArray::redefineImage(GLint level, GLenum internalformat, GLsizei w
void Texture2DArray::commitRect(GLint level, GLint xoffset, GLint yoffset, GLint layerTarget, GLsizei width, GLsizei height) void Texture2DArray::commitRect(GLint level, GLint xoffset, GLint yoffset, GLint layerTarget, GLsizei width, GLsizei height)
{ {
if (level < levelCount() && layerTarget < getDepth(level)) if (isValidLevel(level) && layerTarget < getDepth(level))
{ {
rx::Image *image = mImageArray[level][layerTarget]; rx::Image *image = mImageArray[level][layerTarget];
if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, layerTarget, width, height)) if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, layerTarget, width, height))
......
...@@ -191,7 +191,6 @@ class Texture2D : public Texture ...@@ -191,7 +191,6 @@ class Texture2D : public Texture
friend class RenderbufferTexture2D; friend class RenderbufferTexture2D;
rx::RenderTarget *getRenderTarget(GLint level); rx::RenderTarget *getRenderTarget(GLint level);
rx::RenderTarget *getDepthSencil(GLint level); rx::RenderTarget *getDepthSencil(GLint level);
virtual int levelCount();
private: private:
DISALLOW_COPY_AND_ASSIGN(Texture2D); DISALLOW_COPY_AND_ASSIGN(Texture2D);
...@@ -206,6 +205,7 @@ class Texture2D : public Texture ...@@ -206,6 +205,7 @@ class Texture2D : public Texture
virtual const rx::Image *getBaseLevelImage() const; virtual const rx::Image *getBaseLevelImage() const;
bool isMipmapComplete() const; bool isMipmapComplete() const;
bool isValidLevel(int level) const;
bool isLevelComplete(int level) const; bool isLevelComplete(int level) const;
void updateStorageLevel(int level); void updateStorageLevel(int level);
...@@ -261,7 +261,6 @@ class TextureCubeMap : public Texture ...@@ -261,7 +261,6 @@ class TextureCubeMap : public Texture
friend class RenderbufferTextureCubeMap; friend class RenderbufferTextureCubeMap;
rx::RenderTarget *getRenderTarget(GLenum target, GLint level); rx::RenderTarget *getRenderTarget(GLenum target, GLint level);
rx::RenderTarget *getDepthStencil(GLenum target, GLint level); rx::RenderTarget *getDepthStencil(GLenum target, GLint level);
virtual int levelCount();
private: private:
DISALLOW_COPY_AND_ASSIGN(TextureCubeMap); DISALLOW_COPY_AND_ASSIGN(TextureCubeMap);
...@@ -276,6 +275,7 @@ class TextureCubeMap : public Texture ...@@ -276,6 +275,7 @@ class TextureCubeMap : public Texture
virtual const rx::Image *getBaseLevelImage() const; virtual const rx::Image *getBaseLevelImage() const;
bool isMipmapCubeComplete() const; bool isMipmapCubeComplete() const;
bool isValidFaceLevel(int faceIndex, int level) const;
bool isFaceLevelComplete(int faceIndex, int level) const; bool isFaceLevelComplete(int faceIndex, int level) const;
void updateStorageFaceLevel(int faceIndex, int level); void updateStorageFaceLevel(int faceIndex, int level);
...@@ -323,7 +323,6 @@ class Texture3D : public Texture ...@@ -323,7 +323,6 @@ class Texture3D : public Texture
rx::RenderTarget *getRenderTarget(GLint level); rx::RenderTarget *getRenderTarget(GLint level);
rx::RenderTarget *getRenderTarget(GLint level, GLint layer); rx::RenderTarget *getRenderTarget(GLint level, GLint layer);
rx::RenderTarget *getDepthStencil(GLint level, GLint layer); rx::RenderTarget *getDepthStencil(GLint level, GLint layer);
virtual int levelCount();
private: private:
DISALLOW_COPY_AND_ASSIGN(Texture3D); DISALLOW_COPY_AND_ASSIGN(Texture3D);
...@@ -341,6 +340,7 @@ class Texture3D : public Texture ...@@ -341,6 +340,7 @@ class Texture3D : public Texture
void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
void commitRect(GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); void commitRect(GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
bool isValidLevel(int level) const;
bool isLevelComplete(int level) const; bool isLevelComplete(int level) const;
void updateStorageLevel(int level); void updateStorageLevel(int level);
...@@ -383,7 +383,6 @@ class Texture2DArray : public Texture ...@@ -383,7 +383,6 @@ class Texture2DArray : public Texture
friend class RenderbufferTexture2DArrayLayer; friend class RenderbufferTexture2DArrayLayer;
rx::RenderTarget *getRenderTarget(GLint level, GLint layer); rx::RenderTarget *getRenderTarget(GLint level, GLint layer);
rx::RenderTarget *getDepthStencil(GLint level, GLint layer); rx::RenderTarget *getDepthStencil(GLint level, GLint layer);
virtual int levelCount();
private: private:
DISALLOW_COPY_AND_ASSIGN(Texture2DArray); DISALLOW_COPY_AND_ASSIGN(Texture2DArray);
...@@ -402,6 +401,7 @@ class Texture2DArray : public Texture ...@@ -402,6 +401,7 @@ class Texture2DArray : public Texture
void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
void commitRect(GLint level, GLint xoffset, GLint yoffset, GLint layerTarget, GLsizei width, GLsizei height); void commitRect(GLint level, GLint xoffset, GLint yoffset, GLint layerTarget, GLsizei width, GLsizei height);
bool isValidLevel(int level) const;
bool isLevelComplete(int level) const; bool isLevelComplete(int level) const;
void updateStorageLevel(int level); void updateStorageLevel(int 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