@@ -339,7 +339,9 @@ bool Texture2D::Load(SharedPtr<Image> image, bool useAlpha)
break;
}
- SetNumLevels(0); // Determine number of levels after creation
+ // If image was previously compressed, reset number of requested levels to avoid error if level count is too high for new size
+ if (IsCompressed() && requestedLevels_ > 1)
+ requestedLevels_ = 0;
SetSize(levelWidth, levelHeight, format);
for (unsigned i = 0; i < levels_; ++i)
@@ -391,7 +391,9 @@ bool Texture3D::Load(SharedPtr<Image> image, bool useAlpha)
SetSize(levelWidth, levelHeight, levelDepth, format);
@@ -409,7 +409,9 @@ bool TextureCube::Load(CubeMapFace face, SharedPtr<Image> image, bool useAlpha)
// Create the texture when face 0 is being loaded, check that rest of the faces are same size & format
if (!face)
{
SetSize(levelWidth, format);
else
@@ -289,7 +289,9 @@ bool Texture2D::Load(SharedPtr<Image> image, bool useAlpha)
if (!object_)
return false;
@@ -335,7 +335,9 @@ bool Texture3D::Load(SharedPtr<Image> image, bool useAlpha)
@@ -369,7 +369,9 @@ bool TextureCube::Load(CubeMapFace face, SharedPtr<Image> image, bool useAlpha)