From 5371a960c9f0665d7de594cc5e274db225620207 Mon Sep 17 00:00:00 2001 From: "George L. Albany" Date: Tue, 24 Jan 2023 20:07:01 -0500 Subject: feat(build): Implement scons building feat(engine): Integrate basic Godot project feat(test): Demonstrate Godot using extension feat(dependency): Add OV2-compiler as deps submodule feat(dependency): Add godot-cpp as a submodule feat(git): Ignore Godot 4 files feat(docs): Updated readme with instructions feat: Can call `TestSingleton.hello_singleton()` from GDScript Adds basic workflow support but that is currently disabled --- extension/src/register_types.cpp | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 extension/src/register_types.cpp (limited to 'extension/src/register_types.cpp') diff --git a/extension/src/register_types.cpp b/extension/src/register_types.cpp new file mode 100644 index 0000000..775e6c3 --- /dev/null +++ b/extension/src/register_types.cpp @@ -0,0 +1,51 @@ +#include "register_types.h" +#include +#include +#include +#include +#include + +#include "TestSingleton.hpp" + +using namespace godot; +using namespace OpenVic2; + +static TestSingleton *_test_singleton; + +void initialize_openvic2_types(ModuleInitializationLevel p_level) +{ + if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { + return; + } + + ClassDB::register_class(); + + _test_singleton = memnew(TestSingleton); + Engine::get_singleton()->register_singleton("TestSingleton", TestSingleton::get_singleton()); +} + +void uninitialize_openvic2_types(ModuleInitializationLevel p_level) { + if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { + return; + } + + Engine::get_singleton()->unregister_singleton("TestSingleton"); + memdelete(_test_singleton); +} + +extern "C" +{ + + // Initialization. + + GDExtensionBool GDE_EXPORT openvic2_library_init(const GDExtensionInterface *p_interface, const GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization) + { + GDExtensionBinding::InitObject init_obj(p_interface, p_library, r_initialization); + + init_obj.register_initializer(initialize_openvic2_types); + init_obj.register_terminator(uninitialize_openvic2_types); + init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE); + + return init_obj.init(); + } +} \ No newline at end of file -- cgit v1.2.3-56-ga3b1