summaryrefslogtreecommitdiffstats
path: root/include/godot_cpp/godot.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/godot_cpp/godot.hpp')
-rw-r--r--include/godot_cpp/godot.hpp27
1 files changed, 14 insertions, 13 deletions
diff --git a/include/godot_cpp/godot.hpp b/include/godot_cpp/godot.hpp
index e8fcca2..b478f5e 100644
--- a/include/godot_cpp/godot.hpp
+++ b/include/godot_cpp/godot.hpp
@@ -43,12 +43,20 @@ extern "C" void *token;
} // namespace internal
+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
+};
+
class GDExtensionBinding {
public:
- using Callback = void (*)();
+ using Callback = void (*)(ModuleInitializationLevel p_level);
- static Callback init_callbacks[GDNATIVE_MAX_INITIALIZATION_LEVEL];
- static Callback terminate_callbacks[GDNATIVE_MAX_INITIALIZATION_LEVEL];
+ static Callback init_callback;
+ static Callback terminate_callback;
+ static GDNativeInitializationLevel minimum_initialization_level;
static GDNativeBool init(const GDNativeInterface *p_interface, const GDNativeExtensionClassLibraryPtr p_library, GDNativeInitialization *r_initialization);
public:
@@ -66,16 +74,9 @@ public:
library(p_library),
initialization(r_initialization){};
- void register_core_initializer(Callback p_core_init) const;
- void register_server_initializer(Callback p_server_init) const;
- void register_driver_initializer(Callback p_driver_init) const;
- void register_scene_initializer(Callback p_scene_init) const;
- void register_editor_initializer(Callback p_editor_init) const;
- void register_core_terminator(Callback p_core_terminate) const;
- void register_server_terminator(Callback p_server_terminate) const;
- void register_scene_terminator(Callback p_scene_terminate) const;
- void register_driver_terminator(Callback p_driver_terminate) const;
- void register_editor_terminator(Callback p_editor_terminate) const;
+ void register_initializer(Callback p_init) const;
+ void register_terminator(Callback p_init) const;
+ void set_minimum_library_initialization_level(ModuleInitializationLevel p_level) const;
GDNativeBool init() const;
};