From 582a6b7db308f9bd2ea9b0022254d475deffa101 Mon Sep 17 00:00:00 2001 From: samcake Date: Fri, 1 Apr 2016 01:34:33 -0700 Subject: [PATCH] Adding the correct mip evaluation --- libraries/gpu/src/gpu/GLBackendTexture.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/libraries/gpu/src/gpu/GLBackendTexture.cpp b/libraries/gpu/src/gpu/GLBackendTexture.cpp index 600786eb3e..8690b78503 100755 --- a/libraries/gpu/src/gpu/GLBackendTexture.cpp +++ b/libraries/gpu/src/gpu/GLBackendTexture.cpp @@ -49,7 +49,19 @@ void GLBackend::GLTexture::updateSize(GLuint virtualSize) { GLint gpuSize{ 0 }; glGetTexLevelParameteriv(_target, 0, GL_TEXTURE_COMPRESSED, &gpuSize); if (gpuSize) { - glGetTexLevelParameteriv(_target, 0, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &gpuSize); + GLint baseLevel; + GLint maxLevel; + glGetTexParameteriv(_target, GL_TEXTURE_BASE_LEVEL, &baseLevel); + glGetTexParameteriv(_target, GL_TEXTURE_MAX_LEVEL, &maxLevel); + + for (GLint level = baseLevel; level < maxLevel; level++) { + GLint levelSize{ 0 }; + glGetTexLevelParameteriv(_target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &levelSize); + if (levelSize <= 0) { + break; + } + gpuSize += levelSize; + } setSize(gpuSize); } else { setSize(virtualSize);