summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-01-08 14:53:43 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-01-08 14:53:43 +0100
commit84e205b5a17bfe7ace96b78c410ec10aa52241d2 (patch)
tree1201a49e71bf1d0f8ded04e02a532f230146aafc
parentc6671d9961eb8e2354b29ad4c25c71fb518ca6a8 (diff)
parent6a3b63eb3616aa71ac9e1866ff6f502b37af8779 (diff)
downloadredot-engine-84e205b5a17bfe7ace96b78c410ec10aa52241d2.tar.gz
Merge pull request #86950 from jsjtxietian/fix-compress-image-error
Fix wrong fail condition in compressed texture's `_set_data`
-rw-r--r--scene/resources/portable_compressed_texture.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/scene/resources/portable_compressed_texture.cpp b/scene/resources/portable_compressed_texture.cpp
index 19a96d6ab2..918b5c0b41 100644
--- a/scene/resources/portable_compressed_texture.cpp
+++ b/scene/resources/portable_compressed_texture.cpp
@@ -75,7 +75,7 @@ void PortableCompressedTexture2D::_set_data(const Vector<uint8_t> &p_data) {
uint32_t mipsize = decode_uint32(data);
data += 4;
data_size -= 4;
- ERR_FAIL_COND(mipsize < data_size);
+ ERR_FAIL_COND(mipsize > data_size);
Ref<Image> img = loader_func == nullptr
? memnew(Image(data, data_size))
: Ref<Image>(loader_func(data, data_size));
@@ -89,7 +89,7 @@ void PortableCompressedTexture2D::_set_data(const Vector<uint8_t> &p_data) {
data_size -= mipsize;
}
- image = Ref<Image>(memnew(Image(size.width, size.height, mipmap_count > 1, format, image_data)));
+ image = Ref<Image>(memnew(Image(size.width, size.height, mipmaps, format, image_data)));
} break;
case COMPRESSION_MODE_BASIS_UNIVERSAL: {
@@ -100,7 +100,7 @@ void PortableCompressedTexture2D::_set_data(const Vector<uint8_t> &p_data) {
case COMPRESSION_MODE_S3TC:
case COMPRESSION_MODE_ETC2:
case COMPRESSION_MODE_BPTC: {
- image = Ref<Image>(memnew(Image(size.width, size.height, mipmap_count > 1, format, p_data.slice(20))));
+ image = Ref<Image>(memnew(Image(size.width, size.height, mipmaps, format, p_data.slice(20))));
} break;
}
ERR_FAIL_COND(image.is_null());