diff --git a/src/modules/graphics/opengl/Texture.cpp b/src/modules/graphics/opengl/Texture.cpp index 499ef7140..cff23677a 100644 --- a/src/modules/graphics/opengl/Texture.cpp +++ b/src/modules/graphics/opengl/Texture.cpp @@ -298,20 +298,18 @@ void Texture::createTexture() { if (isCompressed() && (texType == TEXTURE_2D_ARRAY || texType == TEXTURE_VOLUME)) { + int slicecount = slices.getSliceCount(mip); size_t mipsize = 0; - if (texType == TEXTURE_2D_ARRAY || texType == TEXTURE_VOLUME) + for (int slice = 0; slice < slicecount; slice++) { - for (int slice = 0; slice < slices.getSliceCount(mip); slice++) - { - auto id = slices.get(slice, mip); - if (id != nullptr) - mipsize += id->getSize(); - } + auto id = slices.get(slice, mip); + if (id != nullptr) + mipsize += id->getSize(); } if (mipsize > 0) - glCompressedTexImage3D(gltype, mip, fmt.internalformat, w, h, d, 0, mipsize, nullptr); + glCompressedTexImage3D(gltype, mip, fmt.internalformat, w, h, slicecount, 0, mipsize, nullptr); } for (int slice = 0; slice < slicecount; slice++)