From 4ec629bfaab1b0a0e9c4004795ad764e88b6060f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Fri, 26 May 2017 17:16:44 -0700 Subject: [PATCH] Fixed parsing images with incomplete mipchain. --- src/image.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/image.cpp b/src/image.cpp index 26c2e64..4e29f4e 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -931,17 +931,20 @@ namespace bimg ); const uint16_t numSides = imageContainer.m_numLayers * (imageContainer.m_cubeMap ? 6 : 1); - uint8_t* dst = (uint8_t*)output->m_data; for (uint16_t side = 0; side < numSides; ++side) { for (uint8_t lod = 0, num = imageContainer.m_numMips; lod < num; ++lod) { - ImageMip mip; - if (imageGetRawData(imageContainer, side, lod, _src, _size, mip) ) + ImageMip dstMip; + if (imageGetRawData(*output, side, lod, output->m_data, output->m_size, dstMip) ) { - bx::memCopy(dst, mip.m_data, mip.m_size); - dst += mip.m_size; + ImageMip mip; + if (imageGetRawData(imageContainer, side, lod, _src, _size, mip) ) + { + uint8_t* dstData = const_cast(dstMip.m_data); + bx::memCopy(dstData, mip.m_data, mip.m_size); + } } } }