@@ -3017,6 +3017,7 @@ ImageMemLoadFunc Image::_webp_mem_loader_func = nullptr;
30173017ImageMemLoadFunc Image::_tga_mem_loader_func = nullptr ;
30183018ImageMemLoadFunc Image::_bmp_mem_loader_func = nullptr ;
30193019ScalableImageMemLoadFunc Image::_svg_scalable_mem_loader_func = nullptr ;
3020+ ImageMemLoadFunc Image::_dds_mem_loader_func = nullptr ;
30203021
30213022void (*Image::_image_compress_bc_func)(Image *, Image::UsedChannels) = nullptr ;
30223023void (*Image::_image_compress_bptc_func)(Image *, Image::UsedChannels) = nullptr ;
@@ -3488,6 +3489,7 @@ void Image::_bind_methods() {
34883489 ClassDB::bind_method (D_METHOD (" load_webp_from_buffer" , " buffer" ), &Image::load_webp_from_buffer);
34893490 ClassDB::bind_method (D_METHOD (" load_tga_from_buffer" , " buffer" ), &Image::load_tga_from_buffer);
34903491 ClassDB::bind_method (D_METHOD (" load_bmp_from_buffer" , " buffer" ), &Image::load_bmp_from_buffer);
3492+ ClassDB::bind_method (D_METHOD (" load_dds_from_buffer" , " buffer" ), &Image::load_dds_from_buffer);
34913493
34923494 ClassDB::bind_method (D_METHOD (" load_svg_from_buffer" , " buffer" , " scale" ), &Image::load_svg_from_buffer, DEFVAL (1.0 ));
34933495 ClassDB::bind_method (D_METHOD (" load_svg_from_string" , " svg_str" , " scale" ), &Image::load_svg_from_string, DEFVAL (1.0 ));
@@ -3863,6 +3865,14 @@ Error Image::load_svg_from_string(const String &p_svg_str, float scale) {
38633865 return load_svg_from_buffer (p_svg_str.to_utf8_buffer (), scale);
38643866}
38653867
3868+ Error Image::load_dds_from_buffer (const Vector<uint8_t > &p_array) {
3869+ ERR_FAIL_NULL_V_MSG (
3870+ _dds_mem_loader_func,
3871+ ERR_UNAVAILABLE ,
3872+ " The DDS module isn't enabled. Recompile the Godot editor or export template binary with the `module_dds_enabled=yes` SCons option." );
3873+ return _load_from_buffer (p_array, _dds_mem_loader_func);
3874+ }
3875+
38663876void Image::convert_rg_to_ra_rgba8 () {
38673877 ERR_FAIL_COND (format != FORMAT_RGBA8 );
38683878 ERR_FAIL_COND (!data.size ());
0 commit comments