Update register initializer/terminator in README

Referencing https://github.com/godotengine/godot-cpp/pull/750
pull/774/head
Naryosha 2022-06-26 16:25:42 +07:00 committed by GitHub
parent 40f5bfda22
commit 832e04b93b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 4 deletions

View File

@ -79,19 +79,23 @@ extern "C" {
GDNativeBool GDN_EXPORT example_library_init(const GDNativeInterface *p_interface, const GDNativeExtensionClassLibraryPtr p_library, GDNativeInitialization *r_initialization) { GDNativeBool GDN_EXPORT example_library_init(const GDNativeInterface *p_interface, const GDNativeExtensionClassLibraryPtr p_library, GDNativeInitialization *r_initialization) {
godot::GDExtensionBinding::InitObject init_obj(p_interface, p_library, r_initialization); godot::GDExtensionBinding::InitObject init_obj(p_interface, p_library, r_initialization);
init_obj.register_scene_initializer(register_example_types); init_obj.register_initializer(initialize_example_module);
init_obj.register_scene_terminator(unregister_example_types); init_obj.register_terminator(uninitialize_example_module);
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);
return init_obj.init(); return init_obj.init();
} }
} }
``` ```
The `register_example_types()` should register the classes in ClassDB, very like a Godot module would do. The `initialize_example_module()` should register the classes in ClassDB, very like a Godot module would do.
```cpp ```cpp
using namespace godot; using namespace godot;
void register_example_types() { void initialize_example_module(ModuleInitializationLevel p_level) {
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
return;
}
ClassDB::register_class<Example>(); ClassDB::register_class<Example>();
} }
``` ```