diff options
author | Janne Koskinen <janne.p.koskinen@qt.io> | 2019-10-11 12:02:55 +0300 |
---|---|---|
committer | Janne Koskinen <janne.p.koskinen@qt.io> | 2019-10-11 13:59:04 +0300 |
commit | 0cf8283ab85dc4149a51816a97949560dfdaa67b (patch) | |
tree | 4ddd97ae64c4fd7435241aa8d96f4901dbb71be1 | |
parent | 7da61c9da6b885fa90d274d220c2bcef2553b006 (diff) |
Remove extra memcopy from ASTC loading
Read the data directly into the structure.
Change-Id: I28289b66ce7bd59f747cc517388d51cf57213de8
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-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; |