aboutsummaryrefslogtreecommitdiff
path: root/core/image.cpp
diff options
context:
space:
mode:
authorJuan Linietsky2016-06-20 19:43:06 -0300
committerRémi Verschelde2016-06-25 01:41:59 +0200
commitd1dbc7fe93c8a5c62e275182baffcb82b6c9ca31 (patch)
tree3323b4809f9d7b7a07902afb39be8a4749db83de /core/image.cpp
parent299b0102f028881ac6acbfabd5208c4f8f3f2da9 (diff)
downloadgodot-d1dbc7fe93c8a5c62e275182baffcb82b6c9ca31.tar.gz
godot-d1dbc7fe93c8a5c62e275182baffcb82b6c9ca31.tar.zst
godot-d1dbc7fe93c8a5c62e275182baffcb82b6c9ca31.zip
fix bug decompressing bc texture, closes #4404
(cherry picked from commit 9d4cdc6d8a04cfbd543b5385f68e61dd1b33bd94)
Diffstat (limited to '')
-rw-r--r--core/image.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/core/image.cpp b/core/image.cpp
index cb667c9b9..bee1108de 100644
--- a/core/image.cpp
+++ b/core/image.cpp
@@ -1697,8 +1697,17 @@ Error Image::_decompress_bc() {
print_line("decompressing bc");
+ int wd=width,ht=height;
+ if (wd%4!=0) {
+ wd+=4-(wd%4);
+ }
+ if (ht%4!=0) {
+ ht+=4-(ht%4);
+ }
+
+
int mm;
- int size = _get_dst_image_size(width,height,FORMAT_RGBA,mm,mipmaps);
+ int size = _get_dst_image_size(wd,ht,FORMAT_RGBA,mm,mipmaps);
DVector<uint8_t> newdata;
newdata.resize(size);
@@ -1708,7 +1717,8 @@ Error Image::_decompress_bc() {
int rofs=0;
int wofs=0;
- int wd=width,ht=height;
+
+ print_line("width: "+itos(wd)+" height: "+itos(ht));
for(int i=0;i<=mm;i++) {
@@ -2013,6 +2023,11 @@ Error Image::_decompress_bc() {
data=newdata;
format=FORMAT_RGBA;
+ if (wd!=width || ht!=height) {
+ //todo, crop
+ width=wd;
+ height=ht;
+ }
return OK;
}