mirror of
https://github.com/godotengine/godot.git
synced 2024-11-21 19:42:43 +00:00
Refactor module initialization
* Changed to use the same stages as extensions. * Makes the initialization more coherent, helping solve problems due to lack of stages. * Makes it easier to port between module and extension. * removed the DRIVER initialization level (no longer needed).
This commit is contained in:
parent
0a9d31a7eb
commit
de0ca3b999
@ -556,7 +556,6 @@ typedef enum {
|
||||
GDNATIVE_INITIALIZATION_CORE,
|
||||
GDNATIVE_INITIALIZATION_SERVERS,
|
||||
GDNATIVE_INITIALIZATION_SCENE,
|
||||
GDNATIVE_INITIALIZATION_DRIVER,
|
||||
GDNATIVE_INITIALIZATION_EDITOR,
|
||||
GDNATIVE_MAX_INITIALIZATION_LEVEL,
|
||||
} GDNativeInitializationLevel;
|
||||
|
@ -334,7 +334,6 @@ void NativeExtension::_bind_methods() {
|
||||
BIND_ENUM_CONSTANT(INITIALIZATION_LEVEL_CORE);
|
||||
BIND_ENUM_CONSTANT(INITIALIZATION_LEVEL_SERVERS);
|
||||
BIND_ENUM_CONSTANT(INITIALIZATION_LEVEL_SCENE);
|
||||
BIND_ENUM_CONSTANT(INITIALIZATION_LEVEL_DRIVER);
|
||||
BIND_ENUM_CONSTANT(INITIALIZATION_LEVEL_EDITOR);
|
||||
}
|
||||
|
||||
|
@ -70,11 +70,10 @@ public:
|
||||
void close_library();
|
||||
|
||||
enum InitializationLevel {
|
||||
INITIALIZATION_LEVEL_CORE,
|
||||
INITIALIZATION_LEVEL_SERVERS,
|
||||
INITIALIZATION_LEVEL_SCENE,
|
||||
INITIALIZATION_LEVEL_DRIVER,
|
||||
INITIALIZATION_LEVEL_EDITOR,
|
||||
INITIALIZATION_LEVEL_CORE = GDNATIVE_INITIALIZATION_CORE,
|
||||
INITIALIZATION_LEVEL_SERVERS = GDNATIVE_INITIALIZATION_SERVERS,
|
||||
INITIALIZATION_LEVEL_SCENE = GDNATIVE_INITIALIZATION_SCENE,
|
||||
INITIALIZATION_LEVEL_EDITOR = GDNATIVE_INITIALIZATION_EDITOR
|
||||
};
|
||||
|
||||
bool is_library_open() const;
|
||||
|
@ -43,9 +43,7 @@
|
||||
</constant>
|
||||
<constant name="INITIALIZATION_LEVEL_SCENE" value="2" enum="InitializationLevel">
|
||||
</constant>
|
||||
<constant name="INITIALIZATION_LEVEL_DRIVER" value="3" enum="InitializationLevel">
|
||||
</constant>
|
||||
<constant name="INITIALIZATION_LEVEL_EDITOR" value="4" enum="InitializationLevel">
|
||||
<constant name="INITIALIZATION_LEVEL_EDITOR" value="3" enum="InitializationLevel">
|
||||
</constant>
|
||||
</constants>
|
||||
</class>
|
||||
|
@ -55,9 +55,7 @@ void unregister_core_driver_types() {
|
||||
}
|
||||
|
||||
void register_driver_types() {
|
||||
NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_DRIVER);
|
||||
}
|
||||
|
||||
void unregister_driver_types() {
|
||||
NativeExtensionManager::get_singleton()->deinitialize_extensions(NativeExtension::INITIALIZATION_LEVEL_DRIVER);
|
||||
}
|
||||
|
@ -31,7 +31,6 @@
|
||||
#include "editor_node.h"
|
||||
|
||||
#include "core/config/project_settings.h"
|
||||
#include "core/extension/native_extension_manager.h"
|
||||
#include "core/input/input.h"
|
||||
#include "core/io/config_file.h"
|
||||
#include "core/io/file_access.h"
|
||||
@ -3942,12 +3941,9 @@ void EditorNode::register_editor_types() {
|
||||
GDREGISTER_CLASS(EditorScenePostImport);
|
||||
GDREGISTER_CLASS(EditorCommandPalette);
|
||||
GDREGISTER_CLASS(EditorDebuggerPlugin);
|
||||
|
||||
NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_EDITOR);
|
||||
}
|
||||
|
||||
void EditorNode::unregister_editor_types() {
|
||||
NativeExtensionManager::get_singleton()->deinitialize_extensions(NativeExtension::INITIALIZATION_LEVEL_EDITOR);
|
||||
_init_callbacks.clear();
|
||||
if (EditorPaths::get_singleton()) {
|
||||
EditorPaths::free();
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "core/crypto/crypto.h"
|
||||
#include "core/debugger/engine_debugger.h"
|
||||
#include "core/extension/extension_api_dump.h"
|
||||
#include "core/extension/native_extension_manager.h"
|
||||
#include "core/input/input.h"
|
||||
#include "core/input/input_map.h"
|
||||
#include "core/io/dir_access.h"
|
||||
@ -406,15 +407,18 @@ Error Main::test_setup() {
|
||||
tsman->add_interface(ts);
|
||||
}
|
||||
|
||||
// From `Main::setup2()`.
|
||||
initialize_modules(MODULE_INITIALIZATION_LEVEL_CORE);
|
||||
register_core_extensions();
|
||||
|
||||
// From `Main::setup2()`.
|
||||
preregister_module_types();
|
||||
preregister_server_types();
|
||||
|
||||
register_core_singletons();
|
||||
|
||||
/** INITIALIZE SERVERS **/
|
||||
register_server_types();
|
||||
initialize_modules(MODULE_INITIALIZATION_LEVEL_SERVERS);
|
||||
NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_SERVERS);
|
||||
|
||||
translation_server->setup(); //register translations, load them, etc.
|
||||
if (!locale.is_empty()) {
|
||||
@ -428,16 +432,20 @@ Error Main::test_setup() {
|
||||
register_scene_types();
|
||||
register_driver_types();
|
||||
|
||||
initialize_modules(MODULE_INITIALIZATION_LEVEL_SCENE);
|
||||
NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_SCENE);
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
ClassDB::set_current_api(ClassDB::API_EDITOR);
|
||||
EditorNode::register_editor_types();
|
||||
|
||||
initialize_modules(MODULE_INITIALIZATION_LEVEL_EDITOR);
|
||||
NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_EDITOR);
|
||||
|
||||
ClassDB::set_current_api(ClassDB::API_CORE);
|
||||
#endif
|
||||
register_platform_apis();
|
||||
|
||||
register_module_types();
|
||||
|
||||
// Theme needs modules to be initialized so that sub-resources can be loaded.
|
||||
initialize_theme();
|
||||
|
||||
@ -479,13 +487,19 @@ void Main::test_cleanup() {
|
||||
ResourceSaver::remove_custom_savers();
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
NativeExtensionManager::get_singleton()->deinitialize_extensions(NativeExtension::INITIALIZATION_LEVEL_EDITOR);
|
||||
uninitialize_modules(MODULE_INITIALIZATION_LEVEL_EDITOR);
|
||||
EditorNode::unregister_editor_types();
|
||||
#endif
|
||||
|
||||
unregister_module_types();
|
||||
NativeExtensionManager::get_singleton()->deinitialize_extensions(NativeExtension::INITIALIZATION_LEVEL_SCENE);
|
||||
uninitialize_modules(MODULE_INITIALIZATION_LEVEL_SCENE);
|
||||
unregister_platform_apis();
|
||||
unregister_driver_types();
|
||||
unregister_scene_types();
|
||||
|
||||
NativeExtensionManager::get_singleton()->deinitialize_extensions(NativeExtension::INITIALIZATION_LEVEL_SERVERS);
|
||||
uninitialize_modules(MODULE_INITIALIZATION_LEVEL_SERVERS);
|
||||
unregister_server_types();
|
||||
|
||||
OS::get_singleton()->finalize();
|
||||
@ -507,6 +521,7 @@ void Main::test_cleanup() {
|
||||
}
|
||||
|
||||
unregister_core_driver_types();
|
||||
uninitialize_modules(MODULE_INITIALIZATION_LEVEL_CORE);
|
||||
unregister_core_extensions();
|
||||
unregister_core_types();
|
||||
|
||||
@ -1166,6 +1181,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
|
||||
// Initialize user data dir.
|
||||
OS::get_singleton()->ensure_user_data_dir();
|
||||
|
||||
initialize_modules(MODULE_INITIALIZATION_LEVEL_CORE);
|
||||
register_core_extensions(); // core extensions must be registered after globals setup and before display
|
||||
|
||||
ResourceUID::get_singleton()->load_from_cache(); // load UUIDs from cache.
|
||||
@ -1584,7 +1600,6 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
|
||||
tsman->add_interface(ts);
|
||||
}
|
||||
|
||||
preregister_module_types();
|
||||
preregister_server_types();
|
||||
|
||||
// Print engine name and version
|
||||
@ -1751,6 +1766,8 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
|
||||
}
|
||||
|
||||
register_server_types();
|
||||
initialize_modules(MODULE_INITIALIZATION_LEVEL_SERVERS);
|
||||
NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_SERVERS);
|
||||
|
||||
MAIN_PRINT("Main: Load Boot Image");
|
||||
|
||||
@ -1925,14 +1942,16 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
|
||||
MAIN_PRINT("Main: Load Scene Types");
|
||||
|
||||
register_scene_types();
|
||||
|
||||
MAIN_PRINT("Main: Load Driver Types");
|
||||
|
||||
register_driver_types();
|
||||
|
||||
initialize_modules(MODULE_INITIALIZATION_LEVEL_SCENE);
|
||||
NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_SCENE);
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
ClassDB::set_current_api(ClassDB::API_EDITOR);
|
||||
EditorNode::register_editor_types();
|
||||
initialize_modules(MODULE_INITIALIZATION_LEVEL_EDITOR);
|
||||
NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_EDITOR);
|
||||
|
||||
ClassDB::set_current_api(ClassDB::API_CORE);
|
||||
|
||||
@ -1941,7 +1960,6 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
|
||||
MAIN_PRINT("Main: Load Modules");
|
||||
|
||||
register_platform_apis();
|
||||
register_module_types();
|
||||
|
||||
// Theme needs modules to be initialized so that sub-resources can be loaded.
|
||||
initialize_theme();
|
||||
@ -2852,15 +2870,23 @@ void Main::cleanup(bool p_force) {
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
NativeExtensionManager::get_singleton()->deinitialize_extensions(NativeExtension::INITIALIZATION_LEVEL_EDITOR);
|
||||
uninitialize_modules(MODULE_INITIALIZATION_LEVEL_EDITOR);
|
||||
EditorNode::unregister_editor_types();
|
||||
|
||||
#endif
|
||||
|
||||
ImageLoader::cleanup();
|
||||
|
||||
unregister_module_types();
|
||||
NativeExtensionManager::get_singleton()->deinitialize_extensions(NativeExtension::INITIALIZATION_LEVEL_SCENE);
|
||||
uninitialize_modules(MODULE_INITIALIZATION_LEVEL_SCENE);
|
||||
|
||||
unregister_platform_apis();
|
||||
unregister_driver_types();
|
||||
unregister_scene_types();
|
||||
|
||||
NativeExtensionManager::get_singleton()->deinitialize_extensions(NativeExtension::INITIALIZATION_LEVEL_SERVERS);
|
||||
uninitialize_modules(MODULE_INITIALIZATION_LEVEL_SERVERS);
|
||||
unregister_server_types();
|
||||
|
||||
EngineDebugger::deinitialize();
|
||||
@ -2929,6 +2955,7 @@ void Main::cleanup(bool p_force) {
|
||||
|
||||
unregister_core_driver_types();
|
||||
unregister_core_extensions();
|
||||
uninitialize_modules(MODULE_INITIALIZATION_LEVEL_CORE);
|
||||
unregister_core_types();
|
||||
|
||||
OS::get_singleton()->finalize_core();
|
||||
|
35
methods.py
35
methods.py
@ -266,25 +266,19 @@ def write_disabled_classes(class_list):
|
||||
|
||||
def write_modules(modules):
|
||||
includes_cpp = ""
|
||||
preregister_cpp = ""
|
||||
register_cpp = ""
|
||||
unregister_cpp = ""
|
||||
initialize_cpp = ""
|
||||
uninitialize_cpp = ""
|
||||
|
||||
for name, path in modules.items():
|
||||
try:
|
||||
with open(os.path.join(path, "register_types.h")):
|
||||
includes_cpp += '#include "' + path + '/register_types.h"\n'
|
||||
preregister_cpp += "#ifdef MODULE_" + name.upper() + "_ENABLED\n"
|
||||
preregister_cpp += "#ifdef MODULE_" + name.upper() + "_HAS_PREREGISTER\n"
|
||||
preregister_cpp += "\tpreregister_" + name + "_types();\n"
|
||||
preregister_cpp += "#endif\n"
|
||||
preregister_cpp += "#endif\n"
|
||||
register_cpp += "#ifdef MODULE_" + name.upper() + "_ENABLED\n"
|
||||
register_cpp += "\tregister_" + name + "_types();\n"
|
||||
register_cpp += "#endif\n"
|
||||
unregister_cpp += "#ifdef MODULE_" + name.upper() + "_ENABLED\n"
|
||||
unregister_cpp += "\tunregister_" + name + "_types();\n"
|
||||
unregister_cpp += "#endif\n"
|
||||
initialize_cpp += "#ifdef MODULE_" + name.upper() + "_ENABLED\n"
|
||||
initialize_cpp += "\tinitialize_" + name + "_module(p_level);\n"
|
||||
initialize_cpp += "#endif\n"
|
||||
uninitialize_cpp += "#ifdef MODULE_" + name.upper() + "_ENABLED\n"
|
||||
uninitialize_cpp += "\tuninitialize_" + name + "_module(p_level);\n"
|
||||
uninitialize_cpp += "#endif\n"
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
@ -296,22 +290,17 @@ def write_modules(modules):
|
||||
|
||||
%s
|
||||
|
||||
void preregister_module_types() {
|
||||
void initialize_modules(ModuleInitializationLevel p_level) {
|
||||
%s
|
||||
}
|
||||
|
||||
void register_module_types() {
|
||||
%s
|
||||
}
|
||||
|
||||
void unregister_module_types() {
|
||||
void uninitialize_modules(ModuleInitializationLevel p_level) {
|
||||
%s
|
||||
}
|
||||
""" % (
|
||||
includes_cpp,
|
||||
preregister_cpp,
|
||||
register_cpp,
|
||||
unregister_cpp,
|
||||
initialize_cpp,
|
||||
uninitialize_cpp,
|
||||
)
|
||||
|
||||
# NOTE: It is safe to generate this file here, since this is still executed serially
|
||||
|
@ -266,7 +266,11 @@ static Ref<Image> basis_universal_unpacker(const Vector<uint8_t> &p_buffer) {
|
||||
return basis_universal_unpacker_ptr(r, size);
|
||||
}
|
||||
|
||||
void register_basis_universal_types() {
|
||||
void initialize_basis_universal_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
using namespace basisu;
|
||||
using namespace basist;
|
||||
@ -277,7 +281,11 @@ void register_basis_universal_types() {
|
||||
Image::basis_universal_unpacker_ptr = basis_universal_unpacker_ptr;
|
||||
}
|
||||
|
||||
void unregister_basis_universal_types() {
|
||||
void uninitialize_basis_universal_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
Image::basis_universal_packer = nullptr;
|
||||
#endif
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef BASIS_UNIVERSAL_REGISTER_TYPES_H
|
||||
#define BASIS_UNIVERSAL_REGISTER_TYPES_H
|
||||
|
||||
void register_basis_universal_types();
|
||||
void unregister_basis_universal_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_basis_universal_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_basis_universal_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // BASIS_UNIVERSAL_REGISTER_TYPES_H
|
||||
|
@ -34,11 +34,19 @@
|
||||
|
||||
static ImageLoaderBMP *image_loader_bmp = nullptr;
|
||||
|
||||
void register_bmp_types() {
|
||||
void initialize_bmp_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
image_loader_bmp = memnew(ImageLoaderBMP);
|
||||
ImageLoader::add_image_format_loader(image_loader_bmp);
|
||||
}
|
||||
|
||||
void unregister_bmp_types() {
|
||||
void uninitialize_bmp_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
memdelete(image_loader_bmp);
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef BMP_REGISTER_TYPES_H
|
||||
#define BMP_REGISTER_TYPES_H
|
||||
|
||||
void register_bmp_types();
|
||||
void unregister_bmp_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_bmp_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_bmp_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // BMP_REGISTER_TYPES_H
|
||||
|
@ -37,7 +37,11 @@
|
||||
#include "camera_osx.h"
|
||||
#endif
|
||||
|
||||
void register_camera_types() {
|
||||
void initialize_camera_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(WINDOWS_ENABLED)
|
||||
CameraServer::make_default<CameraWindows>();
|
||||
#endif
|
||||
@ -46,5 +50,8 @@ void register_camera_types() {
|
||||
#endif
|
||||
}
|
||||
|
||||
void unregister_camera_types() {
|
||||
void uninitialize_camera_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef CAMERA_REGISTER_TYPES_H
|
||||
#define CAMERA_REGISTER_TYPES_H
|
||||
|
||||
void register_camera_types();
|
||||
void unregister_camera_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_camera_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_camera_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // CAMERA_REGISTER_TYPES_H
|
||||
|
@ -38,23 +38,29 @@
|
||||
#include "editor/csg_gizmos.h"
|
||||
#endif
|
||||
|
||||
void register_csg_types() {
|
||||
GDREGISTER_ABSTRACT_CLASS(CSGShape3D);
|
||||
GDREGISTER_ABSTRACT_CLASS(CSGPrimitive3D);
|
||||
GDREGISTER_CLASS(CSGMesh3D);
|
||||
GDREGISTER_CLASS(CSGSphere3D);
|
||||
GDREGISTER_CLASS(CSGBox3D);
|
||||
GDREGISTER_CLASS(CSGCylinder3D);
|
||||
GDREGISTER_CLASS(CSGTorus3D);
|
||||
GDREGISTER_CLASS(CSGPolygon3D);
|
||||
GDREGISTER_CLASS(CSGCombiner3D);
|
||||
|
||||
void initialize_csg_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
GDREGISTER_ABSTRACT_CLASS(CSGShape3D);
|
||||
GDREGISTER_ABSTRACT_CLASS(CSGPrimitive3D);
|
||||
GDREGISTER_CLASS(CSGMesh3D);
|
||||
GDREGISTER_CLASS(CSGSphere3D);
|
||||
GDREGISTER_CLASS(CSGBox3D);
|
||||
GDREGISTER_CLASS(CSGCylinder3D);
|
||||
GDREGISTER_CLASS(CSGTorus3D);
|
||||
GDREGISTER_CLASS(CSGPolygon3D);
|
||||
GDREGISTER_CLASS(CSGCombiner3D);
|
||||
}
|
||||
#ifdef TOOLS_ENABLED
|
||||
EditorPlugins::add_by_type<EditorPluginCSG>();
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
|
||||
EditorPlugins::add_by_type<EditorPluginCSG>();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void unregister_csg_types() {
|
||||
void uninitialize_csg_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _3D_DISABLED
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef CSG_REGISTER_TYPES_H
|
||||
#define CSG_REGISTER_TYPES_H
|
||||
|
||||
void register_csg_types();
|
||||
void unregister_csg_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_csg_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_csg_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // CSG_REGISTER_TYPES_H
|
||||
|
@ -34,11 +34,19 @@
|
||||
|
||||
#include "image_compress_cvtt.h"
|
||||
|
||||
void register_cvtt_types() {
|
||||
void initialize_cvtt_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
Image::set_compress_bptc_func(image_compress_cvtt);
|
||||
Image::_image_decompress_bptc = image_decompress_cvtt;
|
||||
}
|
||||
|
||||
void unregister_cvtt_types() {}
|
||||
void uninitialize_cvtt_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -33,8 +33,10 @@
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
|
||||
void register_cvtt_types();
|
||||
void unregister_cvtt_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_cvtt_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_cvtt_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // TOOLS_ENABLED
|
||||
|
||||
|
@ -34,12 +34,20 @@
|
||||
|
||||
static Ref<ResourceFormatDDS> resource_loader_dds;
|
||||
|
||||
void register_dds_types() {
|
||||
void initialize_dds_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
resource_loader_dds.instantiate();
|
||||
ResourceLoader::add_resource_format_loader(resource_loader_dds);
|
||||
}
|
||||
|
||||
void unregister_dds_types() {
|
||||
void uninitialize_dds_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
ResourceLoader::remove_resource_format_loader(resource_loader_dds);
|
||||
resource_loader_dds.unref();
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef DDS_REGISTER_TYPES_H
|
||||
#define DDS_REGISTER_TYPES_H
|
||||
|
||||
void register_dds_types();
|
||||
void unregister_dds_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_dds_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_dds_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // DDS_REGISTER_TYPES_H
|
||||
|
@ -32,9 +32,16 @@
|
||||
#include "core/config/engine.h"
|
||||
#include "lightmap_denoiser.h"
|
||||
|
||||
void register_denoise_types() {
|
||||
void initialize_denoise_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
LightmapDenoiserOIDN::make_default_denoiser();
|
||||
}
|
||||
|
||||
void unregister_denoise_types() {
|
||||
void uninitialize_denoise_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef DENOISE_REGISTER_TYPES_H
|
||||
#define DENOISE_REGISTER_TYPES_H
|
||||
|
||||
void register_denoise_types();
|
||||
void unregister_denoise_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_denoise_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_denoise_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // DENOISE_REGISTER_TYPES_H
|
||||
|
@ -36,7 +36,11 @@
|
||||
|
||||
static bool enet_ok = false;
|
||||
|
||||
void register_enet_types() {
|
||||
void initialize_enet_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (enet_initialize() != 0) {
|
||||
ERR_PRINT("ENet initialization failure");
|
||||
} else {
|
||||
@ -48,7 +52,11 @@ void register_enet_types() {
|
||||
GDREGISTER_CLASS(ENetConnection);
|
||||
}
|
||||
|
||||
void unregister_enet_types() {
|
||||
void uninitialize_enet_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (enet_ok) {
|
||||
enet_deinitialize();
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef ENET_REGISTER_TYPES_H
|
||||
#define ENET_REGISTER_TYPES_H
|
||||
|
||||
void register_enet_types();
|
||||
void unregister_enet_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_enet_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_enet_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // ENET_REGISTER_TYPES_H
|
||||
|
@ -32,11 +32,18 @@
|
||||
|
||||
#include "image_compress_etcpak.h"
|
||||
|
||||
void register_etcpak_types() {
|
||||
void initialize_etcpak_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
Image::_image_compress_etc1_func = _compress_etc1;
|
||||
Image::_image_compress_etc2_func = _compress_etc2;
|
||||
Image::_image_compress_bc_func = _compress_bc;
|
||||
}
|
||||
|
||||
void unregister_etcpak_types() {
|
||||
void uninitialize_etcpak_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,11 @@
|
||||
#ifndef ETCPAK_REGISTER_TYPES_H
|
||||
#define ETCPAK_REGISTER_TYPES_H
|
||||
|
||||
void register_etcpak_types();
|
||||
void unregister_etcpak_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_etcpak_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_etcpak_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // ETCPAK_REGISTER_TYPES_H
|
||||
|
@ -30,6 +30,14 @@
|
||||
|
||||
#include "register_types.h"
|
||||
|
||||
void register_freetype_types() {}
|
||||
void initialize_freetype_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void unregister_freetype_types() {}
|
||||
void uninitialize_freetype_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef FREETYPE_REGISTER_TYPES_H
|
||||
#define FREETYPE_REGISTER_TYPES_H
|
||||
|
||||
void register_freetype_types();
|
||||
void unregister_freetype_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_freetype_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_freetype_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // FREETYPE_REGISTER_TYPES_H
|
||||
|
@ -111,54 +111,62 @@ static void _editor_init() {
|
||||
|
||||
#endif // TOOLS_ENABLED
|
||||
|
||||
void register_gdscript_types() {
|
||||
GDREGISTER_CLASS(GDScript);
|
||||
void initialize_gdscript_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
GDREGISTER_CLASS(GDScript);
|
||||
|
||||
script_language_gd = memnew(GDScriptLanguage);
|
||||
ScriptServer::register_language(script_language_gd);
|
||||
script_language_gd = memnew(GDScriptLanguage);
|
||||
ScriptServer::register_language(script_language_gd);
|
||||
|
||||
resource_loader_gd.instantiate();
|
||||
ResourceLoader::add_resource_format_loader(resource_loader_gd);
|
||||
resource_loader_gd.instantiate();
|
||||
ResourceLoader::add_resource_format_loader(resource_loader_gd);
|
||||
|
||||
resource_saver_gd.instantiate();
|
||||
ResourceSaver::add_resource_format_saver(resource_saver_gd);
|
||||
resource_saver_gd.instantiate();
|
||||
ResourceSaver::add_resource_format_saver(resource_saver_gd);
|
||||
|
||||
gdscript_cache = memnew(GDScriptCache);
|
||||
gdscript_cache = memnew(GDScriptCache);
|
||||
|
||||
GDScriptUtilityFunctions::register_functions();
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
EditorNode::add_init_callback(_editor_init);
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
EditorNode::add_init_callback(_editor_init);
|
||||
|
||||
gdscript_translation_parser_plugin.instantiate();
|
||||
EditorTranslationParser::get_singleton()->add_parser(gdscript_translation_parser_plugin, EditorTranslationParser::STANDARD);
|
||||
gdscript_translation_parser_plugin.instantiate();
|
||||
EditorTranslationParser::get_singleton()->add_parser(gdscript_translation_parser_plugin, EditorTranslationParser::STANDARD);
|
||||
}
|
||||
#endif // TOOLS_ENABLED
|
||||
|
||||
GDScriptUtilityFunctions::register_functions();
|
||||
}
|
||||
|
||||
void unregister_gdscript_types() {
|
||||
ScriptServer::unregister_language(script_language_gd);
|
||||
void uninitialize_gdscript_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
ScriptServer::unregister_language(script_language_gd);
|
||||
|
||||
if (gdscript_cache) {
|
||||
memdelete(gdscript_cache);
|
||||
if (gdscript_cache) {
|
||||
memdelete(gdscript_cache);
|
||||
}
|
||||
|
||||
if (script_language_gd) {
|
||||
memdelete(script_language_gd);
|
||||
}
|
||||
|
||||
ResourceLoader::remove_resource_format_loader(resource_loader_gd);
|
||||
resource_loader_gd.unref();
|
||||
|
||||
ResourceSaver::remove_resource_format_saver(resource_saver_gd);
|
||||
resource_saver_gd.unref();
|
||||
|
||||
GDScriptParser::cleanup();
|
||||
GDScriptUtilityFunctions::unregister_functions();
|
||||
}
|
||||
|
||||
if (script_language_gd) {
|
||||
memdelete(script_language_gd);
|
||||
}
|
||||
|
||||
ResourceLoader::remove_resource_format_loader(resource_loader_gd);
|
||||
resource_loader_gd.unref();
|
||||
|
||||
ResourceSaver::remove_resource_format_saver(resource_saver_gd);
|
||||
resource_saver_gd.unref();
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
EditorTranslationParser::get_singleton()->remove_parser(gdscript_translation_parser_plugin, EditorTranslationParser::STANDARD);
|
||||
gdscript_translation_parser_plugin.unref();
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
|
||||
EditorTranslationParser::get_singleton()->remove_parser(gdscript_translation_parser_plugin, EditorTranslationParser::STANDARD);
|
||||
gdscript_translation_parser_plugin.unref();
|
||||
}
|
||||
#endif // TOOLS_ENABLED
|
||||
|
||||
GDScriptParser::cleanup();
|
||||
GDScriptUtilityFunctions::unregister_functions();
|
||||
}
|
||||
|
||||
#ifdef TESTS_ENABLED
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef GDSCRIPT_REGISTER_TYPES_H
|
||||
#define GDSCRIPT_REGISTER_TYPES_H
|
||||
|
||||
void register_gdscript_types();
|
||||
void unregister_gdscript_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_gdscript_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_gdscript_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // GDSCRIPT_REGISTER_TYPES_H
|
||||
|
@ -190,7 +190,11 @@ static String _get_cache_key_function_glsl(const RenderingDevice::Capabilities *
|
||||
return version;
|
||||
}
|
||||
|
||||
void preregister_glslang_types() {
|
||||
void initialize_glslang_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_CORE) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Initialize in case it's not initialized. This is done once per thread
|
||||
// and it's safe to call multiple times.
|
||||
glslang::InitializeProcess();
|
||||
@ -198,9 +202,10 @@ void preregister_glslang_types() {
|
||||
RenderingDevice::shader_set_get_cache_key_function(_get_cache_key_function_glsl);
|
||||
}
|
||||
|
||||
void register_glslang_types() {
|
||||
}
|
||||
void uninitialize_glslang_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_CORE) {
|
||||
return;
|
||||
}
|
||||
|
||||
void unregister_glslang_types() {
|
||||
glslang::FinalizeProcess();
|
||||
}
|
||||
|
@ -33,8 +33,9 @@
|
||||
|
||||
#define MODULE_GLSLANG_HAS_PREREGISTER
|
||||
|
||||
void preregister_glslang_types();
|
||||
void register_glslang_types();
|
||||
void unregister_glslang_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_glslang_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_glslang_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // GLSLANG_REGISTER_TYPES_H
|
||||
|
@ -101,45 +101,52 @@ static void _editor_init() {
|
||||
}
|
||||
#endif // TOOLS_ENABLED
|
||||
|
||||
void register_gltf_types() {
|
||||
// glTF API available at runtime.
|
||||
GDREGISTER_CLASS(GLTFAccessor);
|
||||
GDREGISTER_CLASS(GLTFAnimation);
|
||||
GDREGISTER_CLASS(GLTFBufferView);
|
||||
GDREGISTER_CLASS(GLTFCamera);
|
||||
GDREGISTER_CLASS(GLTFDocument);
|
||||
GDREGISTER_CLASS(GLTFDocumentExtension);
|
||||
GDREGISTER_CLASS(GLTFDocumentExtensionConvertImporterMesh);
|
||||
GDREGISTER_CLASS(GLTFLight);
|
||||
GDREGISTER_CLASS(GLTFMesh);
|
||||
GDREGISTER_CLASS(GLTFNode);
|
||||
GDREGISTER_CLASS(GLTFSkeleton);
|
||||
GDREGISTER_CLASS(GLTFSkin);
|
||||
GDREGISTER_CLASS(GLTFSpecGloss);
|
||||
GDREGISTER_CLASS(GLTFState);
|
||||
GDREGISTER_CLASS(GLTFTexture);
|
||||
void initialize_gltf_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
// glTF API available at runtime.
|
||||
GDREGISTER_CLASS(GLTFAccessor);
|
||||
GDREGISTER_CLASS(GLTFAnimation);
|
||||
GDREGISTER_CLASS(GLTFBufferView);
|
||||
GDREGISTER_CLASS(GLTFCamera);
|
||||
GDREGISTER_CLASS(GLTFDocument);
|
||||
GDREGISTER_CLASS(GLTFDocumentExtension);
|
||||
GDREGISTER_CLASS(GLTFDocumentExtensionConvertImporterMesh);
|
||||
GDREGISTER_CLASS(GLTFLight);
|
||||
GDREGISTER_CLASS(GLTFMesh);
|
||||
GDREGISTER_CLASS(GLTFNode);
|
||||
GDREGISTER_CLASS(GLTFSkeleton);
|
||||
GDREGISTER_CLASS(GLTFSkin);
|
||||
GDREGISTER_CLASS(GLTFSpecGloss);
|
||||
GDREGISTER_CLASS(GLTFState);
|
||||
GDREGISTER_CLASS(GLTFTexture);
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
// Editor-specific API.
|
||||
ClassDB::APIType prev_api = ClassDB::get_current_api();
|
||||
ClassDB::set_current_api(ClassDB::API_EDITOR);
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
|
||||
// Editor-specific API.
|
||||
ClassDB::APIType prev_api = ClassDB::get_current_api();
|
||||
ClassDB::set_current_api(ClassDB::API_EDITOR);
|
||||
|
||||
GDREGISTER_CLASS(EditorSceneFormatImporterGLTF);
|
||||
EditorPlugins::add_by_type<SceneExporterGLTFPlugin>();
|
||||
GDREGISTER_CLASS(EditorSceneFormatImporterGLTF);
|
||||
EditorPlugins::add_by_type<SceneExporterGLTFPlugin>();
|
||||
|
||||
// Project settings defined here so doctool finds them.
|
||||
GLOBAL_DEF_RST("filesystem/import/blender/enabled", true);
|
||||
GLOBAL_DEF_RST("filesystem/import/fbx/enabled", true);
|
||||
GDREGISTER_CLASS(EditorSceneFormatImporterBlend);
|
||||
GDREGISTER_CLASS(EditorSceneFormatImporterFBX);
|
||||
// Project settings defined here so doctool finds them.
|
||||
GLOBAL_DEF_RST("filesystem/import/blender/enabled", true);
|
||||
GLOBAL_DEF_RST("filesystem/import/fbx/enabled", true);
|
||||
GDREGISTER_CLASS(EditorSceneFormatImporterBlend);
|
||||
GDREGISTER_CLASS(EditorSceneFormatImporterFBX);
|
||||
|
||||
ClassDB::set_current_api(prev_api);
|
||||
EditorNode::add_init_callback(_editor_init);
|
||||
ClassDB::set_current_api(prev_api);
|
||||
EditorNode::add_init_callback(_editor_init);
|
||||
}
|
||||
|
||||
#endif // TOOLS_ENABLED
|
||||
}
|
||||
|
||||
void unregister_gltf_types() {
|
||||
void uninitialize_gltf_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _3D_DISABLED
|
||||
|
@ -28,5 +28,7 @@
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
void register_gltf_types();
|
||||
void unregister_gltf_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_gltf_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_gltf_module(ModuleInitializationLevel p_level);
|
||||
|
@ -39,14 +39,21 @@
|
||||
#include "editor/grid_map_editor_plugin.h"
|
||||
#endif
|
||||
|
||||
void register_gridmap_types() {
|
||||
GDREGISTER_CLASS(GridMap);
|
||||
void initialize_gridmap_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
GDREGISTER_CLASS(GridMap);
|
||||
}
|
||||
#ifdef TOOLS_ENABLED
|
||||
EditorPlugins::add_by_type<GridMapEditorPlugin>();
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
|
||||
EditorPlugins::add_by_type<GridMapEditorPlugin>();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void unregister_gridmap_types() {
|
||||
void uninitialize_gridmap_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _3D_DISABLED
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef GRIDMAP_REGISTER_TYPES_H
|
||||
#define GRIDMAP_REGISTER_TYPES_H
|
||||
|
||||
void register_gridmap_types();
|
||||
void unregister_gridmap_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_gridmap_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_gridmap_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // GRIDMAP_REGISTER_TYPES_H
|
||||
|
@ -34,11 +34,19 @@
|
||||
|
||||
static ImageLoaderHDR *image_loader_hdr = nullptr;
|
||||
|
||||
void register_hdr_types() {
|
||||
void initialize_hdr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
image_loader_hdr = memnew(ImageLoaderHDR);
|
||||
ImageLoader::add_image_format_loader(image_loader_hdr);
|
||||
}
|
||||
|
||||
void unregister_hdr_types() {
|
||||
void uninitialize_hdr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
memdelete(image_loader_hdr);
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef HDR_REGISTER_TYPES_H
|
||||
#define HDR_REGISTER_TYPES_H
|
||||
|
||||
void register_hdr_types();
|
||||
void unregister_hdr_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_hdr_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_hdr_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // HDR_REGISTER_TYPES_H
|
||||
|
@ -34,11 +34,19 @@
|
||||
|
||||
static ImageLoaderJPG *image_loader_jpg = nullptr;
|
||||
|
||||
void register_jpg_types() {
|
||||
void initialize_jpg_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
image_loader_jpg = memnew(ImageLoaderJPG);
|
||||
ImageLoader::add_image_format_loader(image_loader_jpg);
|
||||
}
|
||||
|
||||
void unregister_jpg_types() {
|
||||
void uninitialize_jpg_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
memdelete(image_loader_jpg);
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef JPG_REGISTER_TYPES_H
|
||||
#define JPG_REGISTER_TYPES_H
|
||||
|
||||
void register_jpg_types();
|
||||
void unregister_jpg_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_jpg_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_jpg_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // JPG_REGISTER_TYPES_H
|
||||
|
@ -32,9 +32,16 @@
|
||||
#include "core/object/class_db.h"
|
||||
#include "jsonrpc.h"
|
||||
|
||||
void register_jsonrpc_types() {
|
||||
void initialize_jsonrpc_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
GDREGISTER_CLASS(JSONRPC);
|
||||
}
|
||||
|
||||
void unregister_jsonrpc_types() {
|
||||
void uninitialize_jsonrpc_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef JSONRPC_REGISTER_TYPES_H
|
||||
#define JSONRPC_REGISTER_TYPES_H
|
||||
|
||||
void register_jsonrpc_types();
|
||||
void unregister_jsonrpc_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_jsonrpc_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_jsonrpc_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // JSONRPC_REGISTER_TYPES_H
|
||||
|
@ -40,7 +40,11 @@ static Lightmapper *create_lightmapper_rd() {
|
||||
}
|
||||
#endif
|
||||
|
||||
void register_lightmapper_rd_types() {
|
||||
void initialize_lightmapper_rd_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
GLOBAL_DEF("rendering/lightmapping/bake_quality/low_quality_ray_count", 16);
|
||||
GLOBAL_DEF("rendering/lightmapping/bake_quality/medium_quality_ray_count", 64);
|
||||
GLOBAL_DEF("rendering/lightmapping/bake_quality/high_quality_ray_count", 256);
|
||||
@ -59,5 +63,8 @@ void register_lightmapper_rd_types() {
|
||||
#endif
|
||||
}
|
||||
|
||||
void unregister_lightmapper_rd_types() {
|
||||
void uninitialize_lightmapper_rd_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef LIGHTMAPPER_RD_REGISTER_TYPES_H
|
||||
#define LIGHTMAPPER_RD_REGISTER_TYPES_H
|
||||
|
||||
void register_lightmapper_rd_types();
|
||||
void unregister_lightmapper_rd_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_lightmapper_rd_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_lightmapper_rd_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // XATLAS_UNWRAP_REGISTER_TYPES_H
|
||||
|
@ -39,14 +39,22 @@
|
||||
#include "tests/test_crypto_mbedtls.h"
|
||||
#endif
|
||||
|
||||
void register_mbedtls_types() {
|
||||
void initialize_mbedtls_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
CryptoMbedTLS::initialize_crypto();
|
||||
StreamPeerMbedTLS::initialize_ssl();
|
||||
PacketPeerMbedDTLS::initialize_dtls();
|
||||
DTLSServerMbedTLS::initialize();
|
||||
}
|
||||
|
||||
void unregister_mbedtls_types() {
|
||||
void uninitialize_mbedtls_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
DTLSServerMbedTLS::finalize();
|
||||
PacketPeerMbedDTLS::finalize_dtls();
|
||||
StreamPeerMbedTLS::finalize_ssl();
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef MBEDTLS_REGISTER_TYPES_H
|
||||
#define MBEDTLS_REGISTER_TYPES_H
|
||||
|
||||
void register_mbedtls_types();
|
||||
void unregister_mbedtls_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_mbedtls_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_mbedtls_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // MBEDTLS_REGISTER_TYPES_H
|
||||
|
@ -32,7 +32,11 @@
|
||||
#include "scene/resources/surface_tool.h"
|
||||
#include "thirdparty/meshoptimizer/meshoptimizer.h"
|
||||
|
||||
void register_meshoptimizer_types() {
|
||||
void initialize_meshoptimizer_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
SurfaceTool::optimize_vertex_cache_func = meshopt_optimizeVertexCache;
|
||||
SurfaceTool::simplify_func = meshopt_simplify;
|
||||
SurfaceTool::simplify_with_attrib_func = meshopt_simplifyWithAttributes;
|
||||
@ -43,7 +47,11 @@ void register_meshoptimizer_types() {
|
||||
SurfaceTool::remap_index_func = meshopt_remapIndexBuffer;
|
||||
}
|
||||
|
||||
void unregister_meshoptimizer_types() {
|
||||
void uninitialize_meshoptimizer_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
SurfaceTool::optimize_vertex_cache_func = nullptr;
|
||||
SurfaceTool::simplify_func = nullptr;
|
||||
SurfaceTool::simplify_scale_func = nullptr;
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef MESHOPTIMIZER_REGISTER_TYPES_H
|
||||
#define MESHOPTIMIZER_REGISTER_TYPES_H
|
||||
|
||||
void register_meshoptimizer_types();
|
||||
void unregister_meshoptimizer_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_meshoptimizer_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_meshoptimizer_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // PVR_REGISTER_TYPES_H
|
||||
|
@ -37,7 +37,11 @@
|
||||
#include "resource_importer_mp3.h"
|
||||
#endif
|
||||
|
||||
void register_minimp3_types() {
|
||||
void initialize_minimp3_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
if (Engine::get_singleton()->is_editor_hint()) {
|
||||
Ref<ResourceImporterMP3> mp3_import;
|
||||
@ -48,5 +52,8 @@ void register_minimp3_types() {
|
||||
GDREGISTER_CLASS(AudioStreamMP3);
|
||||
}
|
||||
|
||||
void unregister_minimp3_types() {
|
||||
void uninitialize_minimp3_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef MINIMP3_REGISTER_TYPES_H
|
||||
#define MINIMP3_REGISTER_TYPES_H
|
||||
|
||||
void register_minimp3_types();
|
||||
void unregister_minimp3_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_minimp3_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_minimp3_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // MINIMP3_REGISTER_TYPES_H
|
||||
|
@ -34,7 +34,11 @@
|
||||
|
||||
Ref<MobileVRInterface> mobile_vr;
|
||||
|
||||
void register_mobile_vr_types() {
|
||||
void initialize_mobile_vr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
GDREGISTER_CLASS(MobileVRInterface);
|
||||
|
||||
if (XRServer::get_singleton()) {
|
||||
@ -43,7 +47,11 @@ void register_mobile_vr_types() {
|
||||
}
|
||||
}
|
||||
|
||||
void unregister_mobile_vr_types() {
|
||||
void uninitialize_mobile_vr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mobile_vr.is_valid()) {
|
||||
// uninitialise our interface if it is initialised
|
||||
if (mobile_vr->is_initialized()) {
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef MOBILE_VR_REGISTER_TYPES_H
|
||||
#define MOBILE_VR_REGISTER_TYPES_H
|
||||
|
||||
void register_mobile_vr_types();
|
||||
void unregister_mobile_vr_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_mobile_vr_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_mobile_vr_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // MOBILE_VR_REGISTER_TYPES_H
|
||||
|
@ -40,7 +40,11 @@ Ref<ResourceFormatSaverCSharpScript> resource_saver_cs;
|
||||
|
||||
mono_bind::GodotSharp *_godotsharp = nullptr;
|
||||
|
||||
void register_mono_types() {
|
||||
void initialize_mono_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
GDREGISTER_CLASS(CSharpScript);
|
||||
|
||||
_godotsharp = memnew(mono_bind::GodotSharp);
|
||||
@ -59,7 +63,11 @@ void register_mono_types() {
|
||||
ResourceSaver::add_resource_format_saver(resource_saver_cs);
|
||||
}
|
||||
|
||||
void unregister_mono_types() {
|
||||
void uninitialize_mono_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
ScriptServer::unregister_language(script_language_cs);
|
||||
|
||||
if (script_language_cs) {
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef MONO_REGISTER_TYPES_H
|
||||
#define MONO_REGISTER_TYPES_H
|
||||
|
||||
void register_mono_types();
|
||||
void unregister_mono_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_mono_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_mono_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // MONO_REGISTER_TYPES_H
|
||||
|
@ -30,6 +30,14 @@
|
||||
|
||||
#include "register_types.h"
|
||||
|
||||
void register_msdfgen_types() {}
|
||||
void initialize_msdfgen_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void unregister_msdfgen_types() {}
|
||||
void uninitialize_msdfgen_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef MSDFGEN_REGISTER_TYPES_H
|
||||
#define MSDFGEN_REGISTER_TYPES_H
|
||||
|
||||
void register_msdfgen_types();
|
||||
void unregister_msdfgen_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_msdfgen_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_msdfgen_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // MSDFGEN_REGISTER_TYPES_H
|
||||
|
@ -51,21 +51,29 @@ NavigationServer3D *new_server() {
|
||||
return memnew(GodotNavigationServer);
|
||||
}
|
||||
|
||||
void register_navigation_types() {
|
||||
NavigationServer3DManager::set_default_server(new_server);
|
||||
void initialize_navigation_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
NavigationServer3DManager::set_default_server(new_server);
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
_nav_mesh_generator = memnew(NavigationMeshGenerator);
|
||||
GDREGISTER_CLASS(NavigationMeshGenerator);
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("NavigationMeshGenerator", NavigationMeshGenerator::get_singleton()));
|
||||
_nav_mesh_generator = memnew(NavigationMeshGenerator);
|
||||
GDREGISTER_CLASS(NavigationMeshGenerator);
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("NavigationMeshGenerator", NavigationMeshGenerator::get_singleton()));
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
EditorPlugins::add_by_type<NavigationMeshEditorPlugin>();
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
|
||||
EditorPlugins::add_by_type<NavigationMeshEditorPlugin>();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void unregister_navigation_types() {
|
||||
void uninitialize_navigation_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
if (_nav_mesh_generator) {
|
||||
memdelete(_nav_mesh_generator);
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef NAVIGATION_REGISTER_TYPES_H
|
||||
#define NAVIGATION_REGISTER_TYPES_H
|
||||
|
||||
void register_navigation_types();
|
||||
void unregister_navigation_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_navigation_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_navigation_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // NAVIGATION_REGISTER_TYPES_H
|
||||
|
@ -39,15 +39,22 @@
|
||||
#include "editor/noise_editor_plugin.h"
|
||||
#endif
|
||||
|
||||
void register_noise_types() {
|
||||
GDREGISTER_CLASS(NoiseTexture);
|
||||
GDREGISTER_ABSTRACT_CLASS(Noise);
|
||||
GDREGISTER_CLASS(FastNoiseLite);
|
||||
void initialize_noise_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
GDREGISTER_CLASS(NoiseTexture);
|
||||
GDREGISTER_ABSTRACT_CLASS(Noise);
|
||||
GDREGISTER_CLASS(FastNoiseLite);
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
EditorPlugins::add_by_type<NoiseEditorPlugin>();
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
|
||||
EditorPlugins::add_by_type<NoiseEditorPlugin>();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void unregister_noise_types() {
|
||||
void uninitialize_noise_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef NOISE_REGISTER_TYPES_H
|
||||
#define NOISE_REGISTER_TYPES_H
|
||||
|
||||
void register_noise_types();
|
||||
void unregister_noise_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_noise_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_noise_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // NOISE_REGISTER_TYPES_H
|
||||
|
@ -32,9 +32,17 @@
|
||||
|
||||
#include "ogg_packet_sequence.h"
|
||||
|
||||
void register_ogg_types() {
|
||||
void initialize_ogg_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
GDREGISTER_CLASS(OGGPacketSequence);
|
||||
GDREGISTER_CLASS(OGGPacketSequencePlayback);
|
||||
}
|
||||
|
||||
void unregister_ogg_types() {}
|
||||
void uninitialize_ogg_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef OGG_REGISTER_TYPES_H
|
||||
#define OGG_REGISTER_TYPES_H
|
||||
|
||||
void register_ogg_types();
|
||||
void unregister_ogg_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_ogg_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_ogg_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // OGG_REGISTER_TYPES_H
|
||||
|
@ -54,49 +54,55 @@ static void _editor_init() {
|
||||
|
||||
#endif
|
||||
|
||||
OpenXRAPI *openxr_api = nullptr;
|
||||
Ref<OpenXRInterface> openxr_interface;
|
||||
static OpenXRAPI *openxr_api = nullptr;
|
||||
static Ref<OpenXRInterface> openxr_interface;
|
||||
|
||||
void preregister_openxr_types() {
|
||||
// For now we create our openxr device here. If we merge it with openxr_interface we'll create that here soon.
|
||||
void initialize_openxr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
// For now we create our openxr device here. If we merge it with openxr_interface we'll create that here soon.
|
||||
|
||||
if (OpenXRAPI::openxr_is_enabled()) {
|
||||
openxr_api = memnew(OpenXRAPI);
|
||||
ERR_FAIL_NULL(openxr_api);
|
||||
if (OpenXRAPI::openxr_is_enabled()) {
|
||||
openxr_api = memnew(OpenXRAPI);
|
||||
ERR_FAIL_NULL(openxr_api);
|
||||
|
||||
if (!openxr_api->initialize(Main::get_rendering_driver_name())) {
|
||||
memdelete(openxr_api);
|
||||
openxr_api = nullptr;
|
||||
return;
|
||||
if (!openxr_api->initialize(Main::get_rendering_driver_name())) {
|
||||
memdelete(openxr_api);
|
||||
openxr_api = nullptr;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void register_openxr_types() {
|
||||
GDREGISTER_CLASS(OpenXRInterface);
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
GDREGISTER_CLASS(OpenXRInterface);
|
||||
|
||||
GDREGISTER_CLASS(OpenXRAction);
|
||||
GDREGISTER_CLASS(OpenXRActionSet);
|
||||
GDREGISTER_CLASS(OpenXRActionMap);
|
||||
GDREGISTER_CLASS(OpenXRIPBinding);
|
||||
GDREGISTER_CLASS(OpenXRInteractionProfile);
|
||||
GDREGISTER_CLASS(OpenXRAction);
|
||||
GDREGISTER_CLASS(OpenXRActionSet);
|
||||
GDREGISTER_CLASS(OpenXRActionMap);
|
||||
GDREGISTER_CLASS(OpenXRIPBinding);
|
||||
GDREGISTER_CLASS(OpenXRInteractionProfile);
|
||||
|
||||
XRServer *xr_server = XRServer::get_singleton();
|
||||
if (xr_server) {
|
||||
openxr_interface.instantiate();
|
||||
xr_server->add_interface(openxr_interface);
|
||||
XRServer *xr_server = XRServer::get_singleton();
|
||||
if (xr_server) {
|
||||
openxr_interface.instantiate();
|
||||
xr_server->add_interface(openxr_interface);
|
||||
|
||||
if (openxr_interface->initialize_on_startup()) {
|
||||
openxr_interface->initialize();
|
||||
if (openxr_interface->initialize_on_startup()) {
|
||||
openxr_interface->initialize();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
EditorNode::add_init_callback(_editor_init);
|
||||
EditorNode::add_init_callback(_editor_init);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void unregister_openxr_types() {
|
||||
void uninitialize_openxr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (openxr_interface.is_valid()) {
|
||||
// uninitialize just in case
|
||||
if (openxr_interface->is_initialized()) {
|
||||
|
@ -33,8 +33,9 @@
|
||||
|
||||
#define MODULE_OPENXR_HAS_PREREGISTER
|
||||
|
||||
void preregister_openxr_types();
|
||||
void register_openxr_types();
|
||||
void unregister_openxr_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_openxr_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_openxr_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // OPENXR_REGISTER_TYPES_H
|
||||
|
@ -36,7 +36,11 @@
|
||||
|
||||
RaycastOcclusionCull *raycast_occlusion_cull = nullptr;
|
||||
|
||||
void register_raycast_types() {
|
||||
void initialize_raycast_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
LightmapRaycasterEmbree::make_default_raycaster();
|
||||
StaticRaycasterEmbree::make_default_raycaster();
|
||||
@ -44,7 +48,11 @@ void register_raycast_types() {
|
||||
raycast_occlusion_cull = memnew(RaycastOcclusionCull);
|
||||
}
|
||||
|
||||
void unregister_raycast_types() {
|
||||
void uninitialize_raycast_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (raycast_occlusion_cull) {
|
||||
memdelete(raycast_occlusion_cull);
|
||||
}
|
||||
|
@ -28,5 +28,7 @@
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
void register_raycast_types();
|
||||
void unregister_raycast_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_raycast_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_raycast_module(ModuleInitializationLevel p_level);
|
||||
|
@ -32,10 +32,17 @@
|
||||
#include "core/object/class_db.h"
|
||||
#include "regex.h"
|
||||
|
||||
void register_regex_types() {
|
||||
void initialize_regex_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
GDREGISTER_CLASS(RegExMatch);
|
||||
GDREGISTER_CLASS(RegEx);
|
||||
}
|
||||
|
||||
void unregister_regex_types() {
|
||||
void uninitialize_regex_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef REGEX_REGISTER_TYPES_H
|
||||
#define REGEX_REGISTER_TYPES_H
|
||||
|
||||
void register_regex_types();
|
||||
void unregister_regex_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_regex_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_regex_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // REGEX_REGISTER_TYPES_H
|
||||
|
@ -31,8 +31,16 @@
|
||||
#ifndef REGISTER_MODULE_TYPES_H
|
||||
#define REGISTER_MODULE_TYPES_H
|
||||
|
||||
void preregister_module_types();
|
||||
void register_module_types();
|
||||
void unregister_module_types();
|
||||
#include "core/extension/gdnative_interface.h"
|
||||
|
||||
enum ModuleInitializationLevel {
|
||||
MODULE_INITIALIZATION_LEVEL_CORE = GDNATIVE_INITIALIZATION_CORE,
|
||||
MODULE_INITIALIZATION_LEVEL_SERVERS = GDNATIVE_INITIALIZATION_SERVERS,
|
||||
MODULE_INITIALIZATION_LEVEL_SCENE = GDNATIVE_INITIALIZATION_SCENE,
|
||||
MODULE_INITIALIZATION_LEVEL_EDITOR = GDNATIVE_INITIALIZATION_EDITOR
|
||||
};
|
||||
|
||||
void initialize_modules(ModuleInitializationLevel p_level);
|
||||
void uninitialize_modules(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // REGISTER_MODULE_TYPES_H
|
||||
|
@ -32,8 +32,16 @@
|
||||
|
||||
#include "image_decompress_squish.h"
|
||||
|
||||
void register_squish_types() {
|
||||
void initialize_squish_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
Image::_image_decompress_bc = image_decompress_squish;
|
||||
}
|
||||
|
||||
void unregister_squish_types() {}
|
||||
void uninitialize_squish_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef SQUISH_REGISTER_TYPES_H
|
||||
#define SQUISH_REGISTER_TYPES_H
|
||||
|
||||
void register_squish_types();
|
||||
void unregister_squish_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_squish_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_squish_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // SQUISH_REGISTER_TYPES_H
|
||||
|
@ -36,7 +36,11 @@
|
||||
|
||||
static ImageLoaderSVG *image_loader_svg = nullptr;
|
||||
|
||||
void register_svg_types() {
|
||||
void initialize_svg_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
tvg::CanvasEngine tvgEngine = tvg::CanvasEngine::Sw;
|
||||
if (tvg::Initializer::init(tvgEngine, 1) != tvg::Result::Success) {
|
||||
return;
|
||||
@ -45,7 +49,11 @@ void register_svg_types() {
|
||||
ImageLoader::add_image_format_loader(image_loader_svg);
|
||||
}
|
||||
|
||||
void unregister_svg_types() {
|
||||
void uninitialize_svg_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!image_loader_svg) {
|
||||
return;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef SVG_REGISTER_TYPES_H
|
||||
#define SVG_REGISTER_TYPES_H
|
||||
|
||||
void register_svg_types();
|
||||
void unregister_svg_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_svg_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_svg_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // SVG_REGISTER_TYPES_H
|
||||
|
@ -32,7 +32,11 @@
|
||||
|
||||
#include "text_server_adv.h"
|
||||
|
||||
void preregister_text_server_adv_types() {
|
||||
void initialize_text_server_adv_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
return;
|
||||
}
|
||||
|
||||
GDREGISTER_CLASS(TextServerAdvanced);
|
||||
TextServerManager *tsman = TextServerManager::get_singleton();
|
||||
if (tsman) {
|
||||
@ -42,10 +46,10 @@ void preregister_text_server_adv_types() {
|
||||
}
|
||||
}
|
||||
|
||||
void register_text_server_adv_types() {
|
||||
}
|
||||
|
||||
void unregister_text_server_adv_types() {
|
||||
void uninitialize_text_server_adv_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef GDEXTENSION
|
||||
@ -61,8 +65,9 @@ extern "C" {
|
||||
GDNativeBool GDN_EXPORT textserver_advanced_init(const GDNativeInterface *p_interface, const GDNativeExtensionClassLibraryPtr p_library, GDNativeInitialization *r_initialization) {
|
||||
GDExtensionBinding::InitObject init_obj(p_interface, p_library, r_initialization);
|
||||
|
||||
init_obj.register_server_initializer(&preregister_text_server_adv_types);
|
||||
init_obj.register_server_terminator(&unregister_text_server_adv_types);
|
||||
init_obj.register_initializer(&initialize_text_server_adv_module);
|
||||
init_obj.register_terminator(&uninitialize_text_server_adv_module);
|
||||
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SERVERS);
|
||||
|
||||
return init_obj.init();
|
||||
}
|
||||
|
@ -31,10 +31,14 @@
|
||||
#ifndef TEXT_SERVER_ADV_REGISTER_TYPES_H
|
||||
#define TEXT_SERVER_ADV_REGISTER_TYPES_H
|
||||
|
||||
#define MODULE_TEXT_SERVER_ADV_HAS_PREREGISTER
|
||||
#ifdef GDEXTENSION
|
||||
#include <godot_cpp/core/class_db.hpp>
|
||||
using namespace godot;
|
||||
#else
|
||||
#include "modules/register_module_types.h"
|
||||
#endif
|
||||
|
||||
void preregister_text_server_adv_types();
|
||||
void register_text_server_adv_types();
|
||||
void unregister_text_server_adv_types();
|
||||
void initialize_text_server_adv_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_text_server_adv_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // TEXT_SERVER_ADV_REGISTER_TYPES_H
|
||||
|
@ -32,7 +32,11 @@
|
||||
|
||||
#include "text_server_fb.h"
|
||||
|
||||
void preregister_text_server_fb_types() {
|
||||
void initialize_text_server_fb_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
return;
|
||||
}
|
||||
|
||||
GDREGISTER_CLASS(TextServerFallback);
|
||||
TextServerManager *tsman = TextServerManager::get_singleton();
|
||||
if (tsman) {
|
||||
@ -42,10 +46,10 @@ void preregister_text_server_fb_types() {
|
||||
}
|
||||
}
|
||||
|
||||
void register_text_server_fb_types() {
|
||||
}
|
||||
|
||||
void unregister_text_server_fb_types() {
|
||||
void uninitialize_text_server_fb_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef GDEXTENSION
|
||||
@ -61,8 +65,9 @@ extern "C" {
|
||||
GDNativeBool GDN_EXPORT textserver_fallback_init(const GDNativeInterface *p_interface, const GDNativeExtensionClassLibraryPtr p_library, GDNativeInitialization *r_initialization) {
|
||||
GDExtensionBinding::InitObject init_obj(p_interface, p_library, r_initialization);
|
||||
|
||||
init_obj.register_server_initializer(&preregister_text_server_fb_types);
|
||||
init_obj.register_server_terminator(&unregister_text_server_fb_types);
|
||||
init_obj.register_initializer(&initialize_text_server_fb_module);
|
||||
init_obj.register_terminator(&uninitialize_text_server_fb_module);
|
||||
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SERVERS);
|
||||
|
||||
return init_obj.init();
|
||||
}
|
||||
|
@ -31,10 +31,14 @@
|
||||
#ifndef TEXT_SERVER_FB_REGISTER_TYPES_H
|
||||
#define TEXT_SERVER_FB_REGISTER_TYPES_H
|
||||
|
||||
#define MODULE_TEXT_SERVER_FB_HAS_PREREGISTER
|
||||
#ifdef GDEXTENSION
|
||||
#include <godot_cpp/core/class_db.hpp>
|
||||
using namespace godot;
|
||||
#else
|
||||
#include "modules/register_module_types.h"
|
||||
#endif
|
||||
|
||||
void preregister_text_server_fb_types();
|
||||
void register_text_server_fb_types();
|
||||
void unregister_text_server_fb_types();
|
||||
void initialize_text_server_fb_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_text_server_fb_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // TEXT_SERVER_FB_REGISTER_TYPES_H
|
||||
|
@ -34,11 +34,19 @@
|
||||
|
||||
static ImageLoaderTGA *image_loader_tga = nullptr;
|
||||
|
||||
void register_tga_types() {
|
||||
void initialize_tga_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
image_loader_tga = memnew(ImageLoaderTGA);
|
||||
ImageLoader::add_image_format_loader(image_loader_tga);
|
||||
}
|
||||
|
||||
void unregister_tga_types() {
|
||||
void uninitialize_tga_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
memdelete(image_loader_tga);
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef TGA_REGISTER_TYPES_H
|
||||
#define TGA_REGISTER_TYPES_H
|
||||
|
||||
void register_tga_types();
|
||||
void unregister_tga_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_tga_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_tga_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // TGA_REGISTER_TYPES_H
|
||||
|
@ -34,14 +34,22 @@
|
||||
|
||||
static Ref<ResourceFormatLoaderTheora> resource_loader_theora;
|
||||
|
||||
void register_theora_types() {
|
||||
void initialize_theora_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
resource_loader_theora.instantiate();
|
||||
ResourceLoader::add_resource_format_loader(resource_loader_theora, true);
|
||||
|
||||
GDREGISTER_CLASS(VideoStreamTheora);
|
||||
}
|
||||
|
||||
void unregister_theora_types() {
|
||||
void uninitialize_theora_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
ResourceLoader::remove_resource_format_loader(resource_loader_theora);
|
||||
resource_loader_theora.unref();
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef THEORA_REGISTER_TYPES_H
|
||||
#define THEORA_REGISTER_TYPES_H
|
||||
|
||||
void register_theora_types();
|
||||
void unregister_theora_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_theora_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_theora_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // THEORA_REGISTER_TYPES_H
|
||||
|
@ -35,14 +35,22 @@
|
||||
|
||||
static ImageLoaderTinyEXR *image_loader_tinyexr = nullptr;
|
||||
|
||||
void register_tinyexr_types() {
|
||||
void initialize_tinyexr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
image_loader_tinyexr = memnew(ImageLoaderTinyEXR);
|
||||
ImageLoader::add_image_format_loader(image_loader_tinyexr);
|
||||
|
||||
Image::save_exr_func = save_exr;
|
||||
}
|
||||
|
||||
void unregister_tinyexr_types() {
|
||||
void uninitialize_tinyexr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
memdelete(image_loader_tinyexr);
|
||||
|
||||
Image::save_exr_func = nullptr;
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef TINYEXR_REGISTER_TYPES_H
|
||||
#define TINYEXR_REGISTER_TYPES_H
|
||||
|
||||
void register_tinyexr_types();
|
||||
void unregister_tinyexr_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_tinyexr_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_tinyexr_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // TINYEXR_REGISTER_TYPES_H
|
||||
|
@ -35,10 +35,17 @@
|
||||
#include "upnp.h"
|
||||
#include "upnp_device.h"
|
||||
|
||||
void register_upnp_types() {
|
||||
void initialize_upnp_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
GDREGISTER_CLASS(UPNP);
|
||||
GDREGISTER_CLASS(UPNPDevice);
|
||||
}
|
||||
|
||||
void unregister_upnp_types() {
|
||||
void uninitialize_upnp_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef UPNP_REGISTER_TYPES_H
|
||||
#define UPNP_REGISTER_TYPES_H
|
||||
|
||||
void register_upnp_types();
|
||||
void unregister_upnp_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_upnp_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_upnp_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // UPNP_REGISTER_TYPES_H
|
||||
|
@ -89,10 +89,18 @@ static Vector<Vector<Vector3>> convex_decompose(const real_t *p_vertices, int p_
|
||||
return ret;
|
||||
}
|
||||
|
||||
void register_vhacd_types() {
|
||||
void initialize_vhacd_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
Mesh::convex_decomposition_function = convex_decompose;
|
||||
}
|
||||
|
||||
void unregister_vhacd_types() {
|
||||
void uninitialize_vhacd_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
Mesh::convex_decomposition_function = nullptr;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef VHACD_REGISTER_TYPES_H
|
||||
#define VHACD_REGISTER_TYPES_H
|
||||
|
||||
void register_vhacd_types();
|
||||
void unregister_vhacd_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_vhacd_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_vhacd_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // VHACD_REGISTER_TYPES_H
|
||||
|
@ -47,95 +47,104 @@ VisualScriptLanguage *visual_script_language = nullptr;
|
||||
static VisualScriptCustomNodes *vs_custom_nodes_singleton = nullptr;
|
||||
#endif
|
||||
|
||||
void register_visual_script_types() {
|
||||
visual_script_language = memnew(VisualScriptLanguage);
|
||||
//script_language_gd->init();
|
||||
ScriptServer::register_language(visual_script_language);
|
||||
void initialize_visual_script_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
visual_script_language = memnew(VisualScriptLanguage);
|
||||
//script_language_gd->init();
|
||||
ScriptServer::register_language(visual_script_language);
|
||||
|
||||
GDREGISTER_CLASS(VisualScript);
|
||||
GDREGISTER_ABSTRACT_CLASS(VisualScriptNode);
|
||||
GDREGISTER_CLASS(VisualScriptFunctionState);
|
||||
GDREGISTER_CLASS(VisualScriptFunction);
|
||||
GDREGISTER_ABSTRACT_CLASS(VisualScriptLists);
|
||||
GDREGISTER_CLASS(VisualScriptComposeArray);
|
||||
GDREGISTER_CLASS(VisualScriptOperator);
|
||||
GDREGISTER_CLASS(VisualScriptVariableSet);
|
||||
GDREGISTER_CLASS(VisualScriptVariableGet);
|
||||
GDREGISTER_CLASS(VisualScriptConstant);
|
||||
GDREGISTER_CLASS(VisualScriptIndexGet);
|
||||
GDREGISTER_CLASS(VisualScriptIndexSet);
|
||||
GDREGISTER_CLASS(VisualScriptGlobalConstant);
|
||||
GDREGISTER_CLASS(VisualScriptClassConstant);
|
||||
GDREGISTER_CLASS(VisualScriptMathConstant);
|
||||
GDREGISTER_CLASS(VisualScriptBasicTypeConstant);
|
||||
GDREGISTER_CLASS(VisualScriptEngineSingleton);
|
||||
GDREGISTER_CLASS(VisualScriptSceneNode);
|
||||
GDREGISTER_CLASS(VisualScriptSceneTree);
|
||||
GDREGISTER_CLASS(VisualScriptResourcePath);
|
||||
GDREGISTER_CLASS(VisualScriptSelf);
|
||||
GDREGISTER_CLASS(VisualScriptCustomNode);
|
||||
GDREGISTER_CLASS(VisualScriptSubCall);
|
||||
GDREGISTER_CLASS(VisualScriptComment);
|
||||
GDREGISTER_CLASS(VisualScriptConstructor);
|
||||
GDREGISTER_CLASS(VisualScriptLocalVar);
|
||||
GDREGISTER_CLASS(VisualScriptLocalVarSet);
|
||||
GDREGISTER_CLASS(VisualScriptInputAction);
|
||||
GDREGISTER_CLASS(VisualScriptDeconstruct);
|
||||
GDREGISTER_CLASS(VisualScriptPreload);
|
||||
GDREGISTER_CLASS(VisualScriptTypeCast);
|
||||
GDREGISTER_CLASS(VisualScript);
|
||||
GDREGISTER_ABSTRACT_CLASS(VisualScriptNode);
|
||||
GDREGISTER_CLASS(VisualScriptFunctionState);
|
||||
GDREGISTER_CLASS(VisualScriptFunction);
|
||||
GDREGISTER_ABSTRACT_CLASS(VisualScriptLists);
|
||||
GDREGISTER_CLASS(VisualScriptComposeArray);
|
||||
GDREGISTER_CLASS(VisualScriptOperator);
|
||||
GDREGISTER_CLASS(VisualScriptVariableSet);
|
||||
GDREGISTER_CLASS(VisualScriptVariableGet);
|
||||
GDREGISTER_CLASS(VisualScriptConstant);
|
||||
GDREGISTER_CLASS(VisualScriptIndexGet);
|
||||
GDREGISTER_CLASS(VisualScriptIndexSet);
|
||||
GDREGISTER_CLASS(VisualScriptGlobalConstant);
|
||||
GDREGISTER_CLASS(VisualScriptClassConstant);
|
||||
GDREGISTER_CLASS(VisualScriptMathConstant);
|
||||
GDREGISTER_CLASS(VisualScriptBasicTypeConstant);
|
||||
GDREGISTER_CLASS(VisualScriptEngineSingleton);
|
||||
GDREGISTER_CLASS(VisualScriptSceneNode);
|
||||
GDREGISTER_CLASS(VisualScriptSceneTree);
|
||||
GDREGISTER_CLASS(VisualScriptResourcePath);
|
||||
GDREGISTER_CLASS(VisualScriptSelf);
|
||||
GDREGISTER_CLASS(VisualScriptCustomNode);
|
||||
GDREGISTER_CLASS(VisualScriptSubCall);
|
||||
GDREGISTER_CLASS(VisualScriptComment);
|
||||
GDREGISTER_CLASS(VisualScriptConstructor);
|
||||
GDREGISTER_CLASS(VisualScriptLocalVar);
|
||||
GDREGISTER_CLASS(VisualScriptLocalVarSet);
|
||||
GDREGISTER_CLASS(VisualScriptInputAction);
|
||||
GDREGISTER_CLASS(VisualScriptDeconstruct);
|
||||
GDREGISTER_CLASS(VisualScriptPreload);
|
||||
GDREGISTER_CLASS(VisualScriptTypeCast);
|
||||
|
||||
GDREGISTER_CLASS(VisualScriptFunctionCall);
|
||||
GDREGISTER_CLASS(VisualScriptPropertySet);
|
||||
GDREGISTER_CLASS(VisualScriptPropertyGet);
|
||||
//ClassDB::register_type<VisualScriptScriptCall>();
|
||||
GDREGISTER_CLASS(VisualScriptEmitSignal);
|
||||
GDREGISTER_CLASS(VisualScriptFunctionCall);
|
||||
GDREGISTER_CLASS(VisualScriptPropertySet);
|
||||
GDREGISTER_CLASS(VisualScriptPropertyGet);
|
||||
//ClassDB::register_type<VisualScriptScriptCall>();
|
||||
GDREGISTER_CLASS(VisualScriptEmitSignal);
|
||||
|
||||
GDREGISTER_CLASS(VisualScriptReturn);
|
||||
GDREGISTER_CLASS(VisualScriptCondition);
|
||||
GDREGISTER_CLASS(VisualScriptWhile);
|
||||
GDREGISTER_CLASS(VisualScriptIterator);
|
||||
GDREGISTER_CLASS(VisualScriptSequence);
|
||||
//GDREGISTER_CLASS(VisualScriptInputFilter);
|
||||
GDREGISTER_CLASS(VisualScriptSwitch);
|
||||
GDREGISTER_CLASS(VisualScriptSelect);
|
||||
GDREGISTER_CLASS(VisualScriptReturn);
|
||||
GDREGISTER_CLASS(VisualScriptCondition);
|
||||
GDREGISTER_CLASS(VisualScriptWhile);
|
||||
GDREGISTER_CLASS(VisualScriptIterator);
|
||||
GDREGISTER_CLASS(VisualScriptSequence);
|
||||
//GDREGISTER_CLASS(VisualScriptInputFilter);
|
||||
GDREGISTER_CLASS(VisualScriptSwitch);
|
||||
GDREGISTER_CLASS(VisualScriptSelect);
|
||||
|
||||
GDREGISTER_CLASS(VisualScriptYield);
|
||||
GDREGISTER_CLASS(VisualScriptYieldSignal);
|
||||
GDREGISTER_CLASS(VisualScriptYield);
|
||||
GDREGISTER_CLASS(VisualScriptYieldSignal);
|
||||
|
||||
GDREGISTER_CLASS(VisualScriptBuiltinFunc);
|
||||
GDREGISTER_CLASS(VisualScriptBuiltinFunc);
|
||||
|
||||
GDREGISTER_CLASS(VisualScriptExpression);
|
||||
GDREGISTER_CLASS(VisualScriptExpression);
|
||||
|
||||
register_visual_script_nodes();
|
||||
register_visual_script_func_nodes();
|
||||
register_visual_script_builtin_func_node();
|
||||
register_visual_script_flow_control_nodes();
|
||||
register_visual_script_yield_nodes();
|
||||
register_visual_script_expression_node();
|
||||
register_visual_script_nodes();
|
||||
register_visual_script_func_nodes();
|
||||
register_visual_script_builtin_func_node();
|
||||
register_visual_script_flow_control_nodes();
|
||||
register_visual_script_yield_nodes();
|
||||
register_visual_script_expression_node();
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
ClassDB::set_current_api(ClassDB::API_EDITOR);
|
||||
GDREGISTER_CLASS(VisualScriptCustomNodes);
|
||||
ClassDB::set_current_api(ClassDB::API_CORE);
|
||||
vs_custom_nodes_singleton = memnew(VisualScriptCustomNodes);
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("VisualScriptCustomNodes", VisualScriptCustomNodes::get_singleton()));
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
|
||||
ClassDB::set_current_api(ClassDB::API_EDITOR);
|
||||
GDREGISTER_CLASS(VisualScriptCustomNodes);
|
||||
ClassDB::set_current_api(ClassDB::API_CORE);
|
||||
vs_custom_nodes_singleton = memnew(VisualScriptCustomNodes);
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("VisualScriptCustomNodes", VisualScriptCustomNodes::get_singleton()));
|
||||
|
||||
VisualScriptEditor::register_editor();
|
||||
VisualScriptEditor::register_editor();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void unregister_visual_script_types() {
|
||||
unregister_visual_script_nodes();
|
||||
void uninitialize_visual_script_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS) {
|
||||
unregister_visual_script_nodes();
|
||||
|
||||
ScriptServer::unregister_language(visual_script_language);
|
||||
ScriptServer::unregister_language(visual_script_language);
|
||||
|
||||
if (visual_script_language) {
|
||||
memdelete(visual_script_language);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
VisualScriptEditor::free_clipboard();
|
||||
if (vs_custom_nodes_singleton) {
|
||||
memdelete(vs_custom_nodes_singleton);
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
|
||||
VisualScriptEditor::free_clipboard();
|
||||
if (vs_custom_nodes_singleton) {
|
||||
memdelete(vs_custom_nodes_singleton);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (visual_script_language) {
|
||||
memdelete(visual_script_language);
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef VISUAL_SCRIPT_REGISTER_TYPES_H
|
||||
#define VISUAL_SCRIPT_REGISTER_TYPES_H
|
||||
|
||||
void register_visual_script_types();
|
||||
void unregister_visual_script_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_visual_script_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_visual_script_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // VISUAL_SCRIPT_REGISTER_TYPES_H
|
||||
|
@ -33,7 +33,11 @@
|
||||
#include "audio_stream_ogg_vorbis.h"
|
||||
#include "resource_importer_ogg_vorbis.h"
|
||||
|
||||
void register_vorbis_types() {
|
||||
void initialize_vorbis_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
if (Engine::get_singleton()->is_editor_hint()) {
|
||||
Ref<ResourceImporterOGGVorbis> ogg_vorbis_importer;
|
||||
@ -45,4 +49,8 @@ void register_vorbis_types() {
|
||||
GDREGISTER_CLASS(AudioStreamPlaybackOGGVorbis);
|
||||
}
|
||||
|
||||
void unregister_vorbis_types() {}
|
||||
void uninitialize_vorbis_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef VORBIS_REGISTER_TYPES_H
|
||||
#define VORBIS_REGISTER_TYPES_H
|
||||
|
||||
void register_vorbis_types();
|
||||
void unregister_vorbis_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_vorbis_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_vorbis_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // VORBIS_REGISTER_TYPES_H
|
||||
|
@ -34,11 +34,19 @@
|
||||
|
||||
static ImageLoaderWEBP *image_loader_webp = nullptr;
|
||||
|
||||
void register_webp_types() {
|
||||
void initialize_webp_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
image_loader_webp = memnew(ImageLoaderWEBP);
|
||||
ImageLoader::add_image_format_loader(image_loader_webp);
|
||||
}
|
||||
|
||||
void unregister_webp_types() {
|
||||
void uninitialize_webp_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
memdelete(image_loader_webp);
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef WEBP_REGISTER_TYPES_H
|
||||
#define WEBP_REGISTER_TYPES_H
|
||||
|
||||
void register_webp_types();
|
||||
void unregister_webp_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_webp_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_webp_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // WEBP_REGISTER_TYPES_H
|
||||
|
@ -37,7 +37,11 @@
|
||||
#include "webrtc_data_channel_extension.h"
|
||||
#include "webrtc_peer_connection_extension.h"
|
||||
|
||||
void register_webrtc_types() {
|
||||
void initialize_webrtc_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
#define SET_HINT(NAME, _VAL_, _MAX_) \
|
||||
GLOBAL_DEF(NAME, _VAL_); \
|
||||
ProjectSettings::get_singleton()->set_custom_property_info(NAME, PropertyInfo(Variant::INT, NAME, PROPERTY_HINT_RANGE, "2," #_MAX_ ",1,or_greater"));
|
||||
@ -55,4 +59,8 @@ void register_webrtc_types() {
|
||||
#undef SET_HINT
|
||||
}
|
||||
|
||||
void unregister_webrtc_types() {}
|
||||
void uninitialize_webrtc_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef WEBRTC_REGISTER_TYPES_H
|
||||
#define WEBRTC_REGISTER_TYPES_H
|
||||
|
||||
void register_webrtc_types();
|
||||
void unregister_webrtc_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_webrtc_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_webrtc_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // WEBRTC_REGISTER_TYPES_H
|
||||
|
@ -55,25 +55,33 @@ static void _editor_init_callback() {
|
||||
}
|
||||
#endif
|
||||
|
||||
void register_websocket_types() {
|
||||
void initialize_websocket_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
#ifdef JAVASCRIPT_ENABLED
|
||||
EMWSPeer::make_default();
|
||||
EMWSClient::make_default();
|
||||
EMWSServer::make_default();
|
||||
EMWSPeer::make_default();
|
||||
EMWSClient::make_default();
|
||||
EMWSServer::make_default();
|
||||
#else
|
||||
WSLPeer::make_default();
|
||||
WSLClient::make_default();
|
||||
WSLServer::make_default();
|
||||
WSLPeer::make_default();
|
||||
WSLClient::make_default();
|
||||
WSLServer::make_default();
|
||||
#endif
|
||||
|
||||
GDREGISTER_ABSTRACT_CLASS(WebSocketMultiplayerPeer);
|
||||
ClassDB::register_custom_instance_class<WebSocketServer>();
|
||||
ClassDB::register_custom_instance_class<WebSocketClient>();
|
||||
ClassDB::register_custom_instance_class<WebSocketPeer>();
|
||||
GDREGISTER_ABSTRACT_CLASS(WebSocketMultiplayerPeer);
|
||||
ClassDB::register_custom_instance_class<WebSocketServer>();
|
||||
ClassDB::register_custom_instance_class<WebSocketClient>();
|
||||
ClassDB::register_custom_instance_class<WebSocketPeer>();
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
EditorNode::add_init_callback(&_editor_init_callback);
|
||||
if (p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
|
||||
EditorNode::add_init_callback(&_editor_init_callback);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void unregister_websocket_types() {}
|
||||
void uninitialize_websocket_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef WEBSOCKET_REGISTER_TYPES_H
|
||||
#define WEBSOCKET_REGISTER_TYPES_H
|
||||
|
||||
void register_websocket_types();
|
||||
void unregister_websocket_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_websocket_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_websocket_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // WEBSOCKET_REGISTER_TYPES_H
|
||||
|
@ -37,7 +37,11 @@
|
||||
Ref<WebXRInterfaceJS> webxr;
|
||||
#endif
|
||||
|
||||
void register_webxr_types() {
|
||||
void initialize_webxr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
GDREGISTER_ABSTRACT_CLASS(WebXRInterface);
|
||||
|
||||
#ifdef JAVASCRIPT_ENABLED
|
||||
@ -46,7 +50,11 @@ void register_webxr_types() {
|
||||
#endif
|
||||
}
|
||||
|
||||
void unregister_webxr_types() {
|
||||
void uninitialize_webxr_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef JAVASCRIPT_ENABLED
|
||||
if (webxr.is_valid()) {
|
||||
// uninitialise our interface if it is initialised
|
||||
|
@ -31,7 +31,9 @@
|
||||
#ifndef WEBXR_REGISTER_TYPES_H
|
||||
#define WEBXR_REGISTER_TYPES_H
|
||||
|
||||
void register_webxr_types();
|
||||
void unregister_webxr_types();
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_webxr_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_webxr_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // WEBXR_REGISTER_TYPES_H
|
||||
|
@ -222,9 +222,16 @@ bool xatlas_mesh_lightmap_unwrap_callback(float p_texel_size, const float *p_ver
|
||||
return true;
|
||||
}
|
||||
|
||||
void register_xatlas_unwrap_types() {
|
||||
void initialize_xatlas_unwrap_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
|
||||
array_mesh_lightmap_unwrap_callback = xatlas_mesh_lightmap_unwrap_callback;
|
||||
}
|
||||
|
||||
void unregister_xatlas_unwrap_types() {
|
||||
void uninitialize_xatlas_unwrap_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user