Commit 3269bcb4 by Jamie Madill

More TextureD3D cleanups.

The getLayers method was redundant, and the getBaseLevelImage method we can replace with a shared TextureD3D method rather than a specialized method for each type. BUG=angle:729 Change-Id: I80c94a765dbc369fb0bb60ec8273e9e3ba6ffeed Reviewed-on: https://chromium-review.googlesource.com/219862Tested-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 135570a4
......@@ -247,6 +247,11 @@ TextureStorage *TextureD3D::getStorage()
return mTexStorage;
}
Image *TextureD3D::getBaseLevelImage() const
{
return getImage(getImageIndex(0, 0));
}
void TextureD3D::generateMipmaps()
{
// Set up proper image sizes.
......@@ -286,7 +291,7 @@ void TextureD3D::generateMipmaps()
bool TextureD3D::isBaseImageZeroSize() const
{
Image *baseImage = getImage(getImageIndex(0, 0));
Image *baseImage = getBaseLevelImage();
if (!baseImage || baseImage->getWidth() <= 0)
{
......@@ -809,11 +814,6 @@ void TextureD3D_2D::updateStorage()
}
}
const ImageD3D *TextureD3D_2D::getBaseLevelImage() const
{
return mImageArray[0];
}
void TextureD3D_2D::updateStorageLevel(int level)
{
ASSERT(level <= (int)ArraySize(mImageArray) && mImageArray[level] != NULL);
......@@ -1255,13 +1255,6 @@ void TextureD3D_Cube::updateStorage()
}
}
const ImageD3D *TextureD3D_Cube::getBaseLevelImage() const
{
// Note: if we are not cube-complete, there is no single base level image that can describe all
// cube faces, so this method is only well-defined for a cube-complete base level.
return mImageArray[0][0];
}
bool TextureD3D_Cube::isValidFaceLevel(int faceIndex, int level) const
{
return (mTexStorage ? (level >= 0 && level < mTexStorage->getLevelCount()) : 0);
......@@ -1763,11 +1756,6 @@ void TextureD3D_3D::updateStorage()
}
}
const ImageD3D *TextureD3D_3D::getBaseLevelImage() const
{
return mImageArray[0];
}
bool TextureD3D_3D::isValidLevel(int level) const
{
return (mTexStorage ? (level >= 0 && level < mTexStorage->getLevelCount()) : 0);
......@@ -1942,11 +1930,6 @@ GLsizei TextureD3D_2DArray::getHeight(GLint level) const
return (level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS && mLayerCounts[level] > 0) ? mImageArray[level][0]->getHeight() : 0;
}
GLsizei TextureD3D_2DArray::getLayers(GLint level) const
{
return (level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS) ? mLayerCounts[level] : 0;
}
GLenum TextureD3D_2DArray::getInternalFormat(GLint level) const
{
return (level < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS && mLayerCounts[level] > 0) ? mImageArray[level][0]->getInternalFormat() : GL_NONE;
......@@ -2212,7 +2195,7 @@ TextureStorage *TextureD3D_2DArray::createCompleteStorage(bool renderTarget) con
{
GLsizei width = getBaseLevelWidth();
GLsizei height = getBaseLevelHeight();
GLsizei depth = getLayers(0);
GLsizei depth = getLayerCount(0);
GLenum internalFormat = getBaseLevelInternalFormat();
ASSERT(width > 0 && height > 0 && depth > 0);
......@@ -2246,11 +2229,6 @@ void TextureD3D_2DArray::updateStorage()
}
}
const ImageD3D *TextureD3D_2DArray::getBaseLevelImage() const
{
return (mLayerCounts[0] > 0 ? mImageArray[0][0] : NULL);
}
bool TextureD3D_2DArray::isValidLevel(int level) const
{
return (mTexStorage ? (level >= 0 && level < mTexStorage->getLevelCount()) : 0);
......@@ -2267,7 +2245,7 @@ bool TextureD3D_2DArray::isLevelComplete(int level) const
GLsizei width = getBaseLevelWidth();
GLsizei height = getBaseLevelHeight();
GLsizei layers = getLayers(0);
GLsizei layers = getLayerCount(0);
if (width <= 0 || height <= 0 || layers <= 0)
{
......@@ -2294,7 +2272,7 @@ bool TextureD3D_2DArray::isLevelComplete(int level) const
return false;
}
if (getLayers(level) != layers)
if (getLayerCount(level) != layers)
{
return false;
}
......@@ -2336,7 +2314,7 @@ void TextureD3D_2DArray::redefineImage(GLint level, GLenum internalformat, GLsiz
// If there currently is a corresponding storage texture image, it has these parameters
const int storageWidth = std::max(1, getBaseLevelWidth() >> level);
const int storageHeight = std::max(1, getBaseLevelHeight() >> level);
const int storageDepth = getLayers(0);
const int storageDepth = getLayerCount(0);
const GLenum storageFormat = getBaseLevelInternalFormat();
for (int layer = 0; layer < mLayerCounts[level]; layer++)
......@@ -2385,7 +2363,7 @@ void TextureD3D_2DArray::redefineImage(GLint level, GLenum internalformat, GLsiz
gl::Error TextureD3D_2DArray::commitRect(GLint level, GLint xoffset, GLint yoffset, GLint layerTarget, GLsizei width, GLsizei height)
{
if (isValidLevel(level) && layerTarget < getLayers(level))
if (isValidLevel(level) && layerTarget < getLayerCount(level))
{
ImageD3D *image = mImageArray[level][layerTarget];
gl::Error error = image->copyToStorage2DArray(mTexStorage, level, xoffset, yoffset, layerTarget, width, height);
......
......@@ -60,6 +60,7 @@ class TextureD3D : public TextureImpl
virtual void generateMipmaps();
TextureStorage *getStorage();
Image *getBaseLevelImage() const;
protected:
gl::Error setImage(const gl::PixelUnpackState &unpack, GLenum type, const void *pixels, Image *image);
......@@ -97,7 +98,6 @@ class TextureD3D : public TextureImpl
virtual void initializeStorage(bool renderTarget) = 0;
virtual void updateStorage() = 0;
virtual const ImageD3D *getBaseLevelImage() const = 0;
};
class TextureD3D_2D : public TextureD3D
......@@ -141,7 +141,6 @@ class TextureD3D_2D : public TextureD3D
virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage);
virtual void updateStorage();
virtual const ImageD3D *getBaseLevelImage() const;
virtual void initMipmapsImages();
bool isValidLevel(int level) const;
......@@ -197,7 +196,6 @@ class TextureD3D_Cube : public TextureD3D
virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage);
virtual void updateStorage();
virtual const ImageD3D *getBaseLevelImage() const;
virtual void initMipmapsImages();
bool isValidFaceLevel(int faceIndex, int level) const;
......@@ -252,7 +250,6 @@ class TextureD3D_3D : public TextureD3D
virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage);
virtual void updateStorage();
virtual const ImageD3D *getBaseLevelImage() const;
virtual void initMipmapsImages();
bool isValidLevel(int level) const;
......@@ -277,7 +274,6 @@ class TextureD3D_2DArray : public TextureD3D
GLsizei getWidth(GLint level) const;
GLsizei getHeight(GLint level) const;
GLsizei getLayers(GLint level) const;
GLenum getInternalFormat(GLint level) const;
bool isDepth(GLint level) const;
......@@ -306,7 +302,6 @@ class TextureD3D_2DArray : public TextureD3D
virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage);
virtual void updateStorage();
virtual const ImageD3D *getBaseLevelImage() const;
virtual void initMipmapsImages();
bool isValidLevel(int level) const;
......
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