Disable ResourceFormatLoader/Savers of disabled classes

This commit is contained in:
Michael Alexsander
2025-02-12 17:41:14 -03:00
parent 2303ce843a
commit 090358afcf
8 changed files with 148 additions and 80 deletions

View File

@ -33,6 +33,8 @@
#include "image_saver_dds.h"
#include "texture_loader_dds.h"
#include "scene/resources/texture.h"
static Ref<ResourceFormatDDS> resource_loader_dds;
void initialize_dds_module(ModuleInitializationLevel p_level) {
@ -43,8 +45,10 @@ void initialize_dds_module(ModuleInitializationLevel p_level) {
Image::save_dds_func = save_dds;
Image::save_dds_buffer_func = save_dds_buffer;
resource_loader_dds.instantiate();
ResourceLoader::add_resource_format_loader(resource_loader_dds);
if (GD_IS_CLASS_ENABLED(Texture)) {
resource_loader_dds.instantiate();
ResourceLoader::add_resource_format_loader(resource_loader_dds);
}
}
void uninitialize_dds_module(ModuleInitializationLevel p_level) {
@ -52,8 +56,11 @@ void uninitialize_dds_module(ModuleInitializationLevel p_level) {
return;
}
ResourceLoader::remove_resource_format_loader(resource_loader_dds);
resource_loader_dds.unref();
if (GD_IS_CLASS_ENABLED(Texture)) {
ResourceLoader::remove_resource_format_loader(resource_loader_dds);
resource_loader_dds.unref();
}
Image::save_dds_func = nullptr;
Image::save_dds_buffer_func = nullptr;
}