From 4be432cbec3bd669bb6669f29b587962cb36d4cd Mon Sep 17 00:00:00 2001 From: LuoZhihao Date: Fri, 4 Apr 2025 03:34:11 +0800 Subject: [PATCH] PortableCompressedTexture: Fix create compressed format from image --- scene/resources/portable_compressed_texture.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scene/resources/portable_compressed_texture.cpp b/scene/resources/portable_compressed_texture.cpp index 99317af5a11..32c7a0965e6 100644 --- a/scene/resources/portable_compressed_texture.cpp +++ b/scene/resources/portable_compressed_texture.cpp @@ -171,6 +171,7 @@ void PortableCompressedTexture2D::create_from_image(const Ref &p_image, C } } break; case COMPRESSION_MODE_BASIS_UNIVERSAL: { + ERR_FAIL_COND(p_image->is_compressed()); encode_uint16(DATA_FORMAT_BASIS_UNIVERSAL, buffer.ptrw() + 2); Image::UsedChannels uc = p_image->detect_used_channels(p_normal_map ? Image::COMPRESS_SOURCE_NORMAL : Image::COMPRESS_SOURCE_GENERIC); Vector budata = Image::basis_universal_packer(p_image, uc); @@ -180,6 +181,7 @@ void PortableCompressedTexture2D::create_from_image(const Ref &p_image, C case COMPRESSION_MODE_S3TC: case COMPRESSION_MODE_ETC2: case COMPRESSION_MODE_BPTC: { + ERR_FAIL_COND(p_image->is_compressed()); encode_uint16(DATA_FORMAT_IMAGE, buffer.ptrw() + 2); Ref copy = p_image->duplicate(); switch (p_compression_mode) { @@ -195,7 +197,7 @@ void PortableCompressedTexture2D::create_from_image(const Ref &p_image, C default: { }; } - + encode_uint32(copy->get_format(), buffer.ptrw() + 4); buffer.append_array(copy->get_data()); } break;