Remove Texture::levelCount() and replace it with isValidLevel().
TRAC #23978
Signed-off-by: Shannon Woods
Signed-off-by: Geoff Lang
diff --git a/src/libGLESv2/Texture.cpp b/src/libGLESv2/Texture.cpp
index 7cc140a..d1bc214 100644
--- a/src/libGLESv2/Texture.cpp
+++ b/src/libGLESv2/Texture.cpp
@@ -532,7 +532,7 @@
void Texture2D::commitRect(GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height)
{
- if (level < levelCount())
+ if (isValidLevel(level))
{
rx::Image *image = mImageArray[level];
if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, width, height))
@@ -591,7 +591,7 @@
ensureRenderTarget();
mImageArray[level]->markClean();
- if (width != 0 && height != 0 && level < levelCount())
+ if (width != 0 && height != 0 && isValidLevel(level))
{
gl::Rectangle sourceRect;
sourceRect.x = x;
@@ -624,7 +624,7 @@
{
ensureRenderTarget();
- if (level < levelCount())
+ if (isValidLevel(level))
{
updateStorageLevel(level);
@@ -992,9 +992,9 @@
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)
@@ -1096,7 +1096,7 @@
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];
if (image->copyToStorage(mTexStorage, faceIndex, level, xoffset, yoffset, width, height))
@@ -1450,7 +1450,7 @@
ASSERT(width == height);
- if (width > 0 && level < levelCount())
+ if (width > 0 && isValidFaceLevel(faceIndex, level))
{
gl::Rectangle sourceRect;
sourceRect.x = x;
@@ -1488,7 +1488,7 @@
{
ensureRenderTarget();
- if (level < levelCount())
+ if (isValidFaceLevel(faceIndex, level))
{
updateStorageFaceLevel(faceIndex, level);
@@ -1645,9 +1645,9 @@
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)
@@ -1858,7 +1858,7 @@
{
ensureRenderTarget();
- if (level < levelCount())
+ if (isValidLevel(level))
{
updateStorageLevel(level);
@@ -1985,9 +1985,9 @@
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)
@@ -2176,7 +2176,7 @@
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];
if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, zoffset, width, height, depth))
@@ -2417,7 +2417,7 @@
{
ensureRenderTarget();
- if (level < levelCount())
+ if (isValidLevel(level))
{
updateStorageLevel(level);
@@ -2541,9 +2541,9 @@
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)
@@ -2737,7 +2737,7 @@
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];
if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, layerTarget, width, height))
diff --git a/src/libGLESv2/Texture.h b/src/libGLESv2/Texture.h
index cb165df..501d031 100644
--- a/src/libGLESv2/Texture.h
+++ b/src/libGLESv2/Texture.h
@@ -191,7 +191,6 @@
friend class RenderbufferTexture2D;
rx::RenderTarget *getRenderTarget(GLint level);
rx::RenderTarget *getDepthSencil(GLint level);
- virtual int levelCount();
private:
DISALLOW_COPY_AND_ASSIGN(Texture2D);
@@ -206,6 +205,7 @@
virtual const rx::Image *getBaseLevelImage() const;
bool isMipmapComplete() const;
+ bool isValidLevel(int level) const;
bool isLevelComplete(int level) const;
void updateStorageLevel(int level);
@@ -261,7 +261,6 @@
friend class RenderbufferTextureCubeMap;
rx::RenderTarget *getRenderTarget(GLenum target, GLint level);
rx::RenderTarget *getDepthStencil(GLenum target, GLint level);
- virtual int levelCount();
private:
DISALLOW_COPY_AND_ASSIGN(TextureCubeMap);
@@ -276,6 +275,7 @@
virtual const rx::Image *getBaseLevelImage() const;
bool isMipmapCubeComplete() const;
+ bool isValidFaceLevel(int faceIndex, int level) const;
bool isFaceLevelComplete(int faceIndex, int level) const;
void updateStorageFaceLevel(int faceIndex, int level);
@@ -323,7 +323,6 @@
rx::RenderTarget *getRenderTarget(GLint level);
rx::RenderTarget *getRenderTarget(GLint level, GLint layer);
rx::RenderTarget *getDepthStencil(GLint level, GLint layer);
- virtual int levelCount();
private:
DISALLOW_COPY_AND_ASSIGN(Texture3D);
@@ -341,6 +340,7 @@
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);
+ bool isValidLevel(int level) const;
bool isLevelComplete(int level) const;
void updateStorageLevel(int level);
@@ -383,7 +383,6 @@
friend class RenderbufferTexture2DArrayLayer;
rx::RenderTarget *getRenderTarget(GLint level, GLint layer);
rx::RenderTarget *getDepthStencil(GLint level, GLint layer);
- virtual int levelCount();
private:
DISALLOW_COPY_AND_ASSIGN(Texture2DArray);
@@ -402,6 +401,7 @@
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);
+ bool isValidLevel(int level) const;
bool isLevelComplete(int level) const;
void updateStorageLevel(int level);