godot-ultraleap-plugin/src/register_types.cpp

58 lines
1.8 KiB
C++

#include "register_types.h"
#include <gdextension_interface.h>
#include <godot_cpp/core/class_db.hpp>
#include <godot_cpp/core/defs.hpp>
#include <godot_cpp/godot.hpp>
#include "ultraleap.h"
#include "bone.h"
#include "digit.h"
#include "palm.h"
#include "hand.h"
#include "frame.h"
#include "types.h"
#include "image.h"
#include "device.h"
#include "device_node.h"
#include "device_list.h"
using namespace godot;
void initialize_ultraleap_module(ModuleInitializationLevel p_level) {
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
return;
}
ClassDB::register_class<UltraleapHandTracking>();
ClassDB::register_class<UltraleapBone>();
ClassDB::register_class<UltraleapDigit>();
ClassDB::register_class<UltraleapHand>();
ClassDB::register_class<UltraleapPalm>();
ClassDB::register_class<UltraleapFrame>();
ClassDB::register_class<UltraleapTypes>();
ClassDB::register_class<UltraleapImage>();
ClassDB::register_class<UltraleapDevice>();
ClassDB::register_class<UltraleapDeviceNode>();
ClassDB::register_class<UltraleapDeviceList>();
}
void uninitialize_ultraleap_module(ModuleInitializationLevel p_level) {
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
return;
}
}
extern "C" {
// Initialization.
GDExtensionBool GDE_EXPORT ultraleap_library_init(GDExtensionInterfaceGetProcAddress p_get_proc_address, GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization) {
godot::GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization);
init_obj.register_initializer(initialize_ultraleap_module);
init_obj.register_terminator(uninitialize_ultraleap_module);
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);
return init_obj.init();
}
}