summaryrefslogtreecommitdiff
path: root/modules/squish
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2018-11-16 19:12:00 -0300
committerJuan Linietsky <reduzio@gmail.com>2018-11-16 19:12:00 -0300
commitf141f747de7045dcc4cbb6643ce5c38393ab3625 (patch)
tree587a521ca2829d9fe36507577102f8d9a0183801 /modules/squish
parent9e85d17241228b02e3bd500b48084a584bc04905 (diff)
Fix Squish decompression, closes #18109
Diffstat (limited to 'modules/squish')
-rw-r--r--modules/squish/image_compress_squish.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/modules/squish/image_compress_squish.cpp b/modules/squish/image_compress_squish.cpp
index 26cb76011c..a08ac7bd28 100644
--- a/modules/squish/image_compress_squish.cpp
+++ b/modules/squish/image_compress_squish.cpp
@@ -64,12 +64,13 @@ void image_decompress_squish(Image *p_image) {
return;
}
- int dst_ofs = 0;
-
for (int i = 0; i <= mm_count; i++) {
int src_ofs = 0, mipmap_size = 0, mipmap_w = 0, mipmap_h = 0;
p_image->get_mipmap_offset_size_and_dimensions(i, src_ofs, mipmap_size, mipmap_w, mipmap_h);
- squish::DecompressImage(&wb[dst_ofs], mipmap_w, mipmap_h, &rb[src_ofs], squish_flags);
+ int dst_ofs = Image::get_image_mipmap_offset(p_image->get_width(), p_image->get_height(), target_format, i);
+ squish::DecompressImage(&wb[dst_ofs], w, h, &rb[src_ofs], squish_flags);
+ w >>= 1;
+ h >>= 1;
}
p_image->create(p_image->get_width(), p_image->get_height(), p_image->has_mipmaps(), target_format, data);