Compare commits
2 Commits
dc41cc38d7
...
ffc36a2812
Author | SHA1 | Date |
---|---|---|
|
ffc36a2812 | |
|
5f350e2572 |
|
@ -113,7 +113,7 @@ private:
|
|||
static void _register_class(bool p_virtual = false, bool p_exposed = true);
|
||||
|
||||
template <class T>
|
||||
static GDExtensionObjectPtr create(void *data) {
|
||||
static GDExtensionObjectPtr _create_instance_func(void *data) {
|
||||
if constexpr (!std::is_abstract_v<T>) {
|
||||
T *new_object = memnew(T);
|
||||
return new_object->_owner;
|
||||
|
@ -123,7 +123,7 @@ private:
|
|||
}
|
||||
|
||||
template <class T>
|
||||
static GDExtensionClassInstancePtr recreate(void *data, GDExtensionObjectPtr obj) {
|
||||
static GDExtensionClassInstancePtr _recreate_instance_func(void *data, GDExtensionObjectPtr obj) {
|
||||
if constexpr (!std::is_abstract_v<T>) {
|
||||
#ifdef HOT_RELOAD_ENABLED
|
||||
T *new_instance = (T *)memalloc(sizeof(T));
|
||||
|
@ -229,9 +229,9 @@ void ClassDB::_register_class(bool p_virtual, bool p_exposed) {
|
|||
T::to_string_bind, // GDExtensionClassToString to_string_func;
|
||||
nullptr, // GDExtensionClassReference reference_func;
|
||||
nullptr, // GDExtensionClassUnreference unreference_func;
|
||||
create<T>, // GDExtensionClassCreateInstance create_instance_func; /* this one is mandatory */
|
||||
&_create_instance_func<T>, // GDExtensionClassCreateInstance create_instance_func; /* this one is mandatory */
|
||||
T::free, // GDExtensionClassFreeInstance free_instance_func; /* this one is mandatory */
|
||||
recreate<T>, // GDExtensionClassRecreateInstance recreate_instance_func;
|
||||
&_recreate_instance_func<T>, // GDExtensionClassRecreateInstance recreate_instance_func;
|
||||
&ClassDB::get_virtual_func, // GDExtensionClassGetVirtual get_virtual_func;
|
||||
nullptr, // GDExtensionClassGetVirtualCallData get_virtual_call_data_func;
|
||||
nullptr, // GDExtensionClassCallVirtualWithData call_virtual_func;
|
||||
|
|
Loading…
Reference in New Issue