Merge pull request #103099 from YeldhamDev/build_res_loader_disable

Disable `ResourceFormatLoader/Saver`s of disabled classes
This commit is contained in:
Thaddeus Crews 2025-03-23 19:04:01 -05:00
commit 8f331ebd9c
No known key found for this signature in database
GPG key ID: 62181B86FE9E5D84
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;
}

View file

@ -70,8 +70,10 @@ static Node *gltf_import(const String &p_file) {
// Once editor import convert pngs to ctex, we will need to load it as ctex resource.
Ref<ResourceFormatLoaderCompressedTexture2D> resource_loader_stream_texture;
resource_loader_stream_texture.instantiate();
ResourceLoader::add_resource_format_loader(resource_loader_stream_texture);
if (GD_IS_CLASS_ENABLED(CompressedTexture2D)) {
resource_loader_stream_texture.instantiate();
ResourceLoader::add_resource_format_loader(resource_loader_stream_texture);
}
HashMap<StringName, Variant> options(21);
options["nodes/root_type"] = "";
@ -105,7 +107,10 @@ static Node *gltf_import(const String &p_file) {
ResourceImporterScene::remove_scene_importer(import_gltf);
ResourceFormatImporter::get_singleton()->remove_importer(import_texture);
ResourceLoader::remove_resource_format_loader(resource_loader_stream_texture);
if (GD_IS_CLASS_ENABLED(CompressedTexture2D)) {
ResourceLoader::remove_resource_format_loader(resource_loader_stream_texture);
resource_loader_stream_texture.unref();
}
return p_scene;
}

View file

@ -32,6 +32,8 @@
#include "texture_loader_ktx.h"
#include "scene/resources/image_texture.h"
static Ref<ResourceFormatKTX> resource_loader_ktx;
void initialize_ktx_module(ModuleInitializationLevel p_level) {
@ -39,8 +41,10 @@ void initialize_ktx_module(ModuleInitializationLevel p_level) {
return;
}
resource_loader_ktx.instantiate();
ResourceLoader::add_resource_format_loader(resource_loader_ktx);
if (GD_IS_CLASS_ENABLED(ImageTexture)) {
resource_loader_ktx.instantiate();
ResourceLoader::add_resource_format_loader(resource_loader_ktx);
}
}
void uninitialize_ktx_module(ModuleInitializationLevel p_level) {
@ -48,6 +52,8 @@ void uninitialize_ktx_module(ModuleInitializationLevel p_level) {
return;
}
ResourceLoader::remove_resource_format_loader(resource_loader_ktx);
resource_loader_ktx.unref();
if (GD_IS_CLASS_ENABLED(ImageTexture)) {
ResourceLoader::remove_resource_format_loader(resource_loader_ktx);
resource_loader_ktx.unref();
}
}

View file

@ -53,11 +53,12 @@ void initialize_mono_module(ModuleInitializationLevel p_level) {
script_language_cs->set_language_index(ScriptServer::get_language_count());
ScriptServer::register_language(script_language_cs);
resource_loader_cs.instantiate();
ResourceLoader::add_resource_format_loader(resource_loader_cs);
resource_saver_cs.instantiate();
ResourceSaver::add_resource_format_saver(resource_saver_cs);
if (GD_IS_CLASS_ENABLED(CSharpScript)) {
resource_loader_cs.instantiate();
ResourceLoader::add_resource_format_loader(resource_loader_cs);
resource_saver_cs.instantiate();
ResourceSaver::add_resource_format_saver(resource_saver_cs);
}
}
void uninitialize_mono_module(ModuleInitializationLevel p_level) {
@ -71,11 +72,12 @@ void uninitialize_mono_module(ModuleInitializationLevel p_level) {
memdelete(script_language_cs);
}
ResourceLoader::remove_resource_format_loader(resource_loader_cs);
resource_loader_cs.unref();
ResourceSaver::remove_resource_format_saver(resource_saver_cs);
resource_saver_cs.unref();
if (GD_IS_CLASS_ENABLED(CSharpScript)) {
ResourceLoader::remove_resource_format_loader(resource_loader_cs);
resource_loader_cs.unref();
ResourceSaver::remove_resource_format_saver(resource_saver_cs);
resource_saver_cs.unref();
}
if (_godotsharp) {
memdelete(_godotsharp);

View file

@ -48,8 +48,10 @@ void initialize_multiplayer_module(ModuleInitializationLevel p_level) {
GDREGISTER_CLASS(MultiplayerSynchronizer);
GDREGISTER_CLASS(OfflineMultiplayerPeer);
GDREGISTER_CLASS(SceneMultiplayer);
MultiplayerAPI::set_default_interface("SceneMultiplayer");
MultiplayerDebugger::initialize();
if (GD_IS_CLASS_ENABLED(MultiplayerAPI)) {
MultiplayerAPI::set_default_interface("SceneMultiplayer");
MultiplayerDebugger::initialize();
}
}
#ifdef TOOLS_ENABLED
if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
@ -59,5 +61,7 @@ void initialize_multiplayer_module(ModuleInitializationLevel p_level) {
}
void uninitialize_multiplayer_module(ModuleInitializationLevel p_level) {
MultiplayerDebugger::deinitialize();
if (GD_IS_CLASS_ENABLED(MultiplayerAPI)) {
MultiplayerDebugger::deinitialize();
}
}