diff options
Diffstat (limited to 'src/plugins/sceneparsers/assimp/assimpparser.cpp')
-rw-r--r-- | src/plugins/sceneparsers/assimp/assimpparser.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/sceneparsers/assimp/assimpparser.cpp b/src/plugins/sceneparsers/assimp/assimpparser.cpp index 5ffc1a4c8..040fc3a8a 100644 --- a/src/plugins/sceneparsers/assimp/assimpparser.cpp +++ b/src/plugins/sceneparsers/assimp/assimpparser.cpp @@ -678,7 +678,8 @@ void AssimpParser::loadEmbeddedTexture(uint textureIndex) uint textureSize = assimpTexture->mWidth * (isCompressed ? assimpTexture->mHeight : 1); // Set texture to RGBA8888 - char *textureContent = new char[textureSize * 4]; + QByteArray textureContent; + textureContent.reserve(textureSize * 4); for (uint i = 0; i < textureSize; i++) { uint idx = i * 4; aiTexel texel = assimpTexture->pcData[i]; @@ -687,7 +688,7 @@ void AssimpParser::loadEmbeddedTexture(uint textureIndex) textureContent[idx + 2] = texel.b; textureContent[idx + 3] = texel.a; } - imageData->setData(QByteArray(textureContent, textureSize * 4)); + imageData->setData(textureContent); texture->addTextureImage(imageData); m_scene->m_embeddedTextures[textureIndex] = texture; } |