summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJanne Koskinen <janne.p.koskinen@qt.io>2019-10-11 12:02:55 +0300
committerJanne Koskinen <janne.p.koskinen@qt.io>2019-10-11 13:59:04 +0300
commit0cf8283ab85dc4149a51816a97949560dfdaa67b (patch)
tree4ddd97ae64c4fd7435241aa8d96f4901dbb71be1
parent7da61c9da6b885fa90d274d220c2bcef2553b006 (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.cpp8
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;