Browse Source

fix bug decompressing bc texture, closes #4404

Juan Linietsky 9 years ago
parent
commit
9d4cdc6d8a
1 changed files with 17 additions and 2 deletions
  1. 17 2
      core/image.cpp

+ 17 - 2
core/image.cpp

@@ -1735,8 +1735,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);
@@ -1746,7 +1755,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++) {
 
@@ -2051,6 +2061,11 @@ Error Image::_decompress_bc() {
 
 	data=newdata;
 	format=FORMAT_RGBA;
+	if (wd!=width || ht!=height) {
+		//todo, crop
+		width=wd;
+		height=ht;
+	}
 
 	return OK;
 }