aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/scenegraph/compressedtexture/qsgpkmhandler.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/quick/scenegraph/compressedtexture/qsgpkmhandler.cpp b/src/quick/scenegraph/compressedtexture/qsgpkmhandler.cpp
index daec23d478..618c0db045 100644
--- a/src/quick/scenegraph/compressedtexture/qsgpkmhandler.cpp
+++ b/src/quick/scenegraph/compressedtexture/qsgpkmhandler.cpp
@@ -95,10 +95,9 @@ QQuickTextureFactory *QSGPkmHandler::read()
texData->hasAlpha = !QSGCompressedTexture::formatIsOpaque(texData->format);
// texture size
- /* Actual data length depends on format; for now just use 0, i.e. rest-of-file
+ const int bpb = (texData->format == QOpenGLTexture::RGBA8_ETC2_EAC) ? 16 : 8;
QSize paddedSize(qFromBigEndian<quint16>(rawData + 8), qFromBigEndian<quint16>(rawData + 10));
- texData->dataLength = (paddedSize.width() / 4) * (paddedSize.height() / 4) * 8;
- */
+ texData->dataLength = (paddedSize.width() / 4) * (paddedSize.height() / 4) * bpb;
QSize texSize(qFromBigEndian<quint16>(rawData + 12), qFromBigEndian<quint16>(rawData + 14));
texData->size = texSize;