diff options
-rw-r--r-- | src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp b/src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp index 353e585..577bd55 100644 --- a/src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp +++ b/src/runtimerender/resourcemanager/Qt3DSRenderLoadedTexture.cpp @@ -225,9 +225,7 @@ SLoadedTexture *SLoadedTexture::LoadASTC(const QString &inPath, QT3DSI32 flipVer if (!astcFile.open(QIODevice::ReadOnly)) return nullptr; - QByteArray fileData = astcFile.readAll(); - - astcFile.close(); + QByteArray fileData = astcFile.read(sizeof(AstcHeader)); const AstcHeader *header = reinterpret_cast<const AstcHeader *>(fileData.constData()); int xSz = int(header->xSize[0]) | int(header->xSize[1]) << 8 | int(header->xSize[2]) << 16; @@ -259,8 +257,10 @@ SLoadedTexture *SLoadedTexture::LoadASTC(const QString &inPath, QT3DSI32 flipVer image->internalFormat = glFmt; image->format = runtimeFormat(glFmt); image->compressed = 1; + image->dataBlock = QT3DS_ALLOC(alloc, byteCount, "Qt3DSDDSAllocDataBlock"); - memcpy(image->dataBlock, fileData.constData() + sizeof(AstcHeader), byteCount); + astcFile.read(static_cast<char*>(image->dataBlock), byteCount); + astcFile.close(); retval->dds = image; retval->width = image->width; |