diff options
author | David Snopek <dsnopek@gmail.com> | 2023-08-04 11:02:57 -0500 |
---|---|---|
committer | David Snopek <dsnopek@gmail.com> | 2023-09-25 22:13:33 -0500 |
commit | df849651d9d71e3b901fe386a6752aec368c7206 (patch) | |
tree | fc6e5fabafb682aeba91c124d7c4beebb5c9c4ef /gdextension | |
parent | c44c3d5ebf9826214efc971f0cbe047789af2575 (diff) | |
download | redot-cpp-df849651d9d71e3b901fe386a6752aec368c7206.tar.gz |
Changes necessary for hot reload to work
Diffstat (limited to 'gdextension')
-rw-r--r-- | gdextension/gdextension_interface.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gdextension/gdextension_interface.h b/gdextension/gdextension_interface.h index 48cb288..ab7e2de 100644 --- a/gdextension/gdextension_interface.h +++ b/gdextension/gdextension_interface.h @@ -267,6 +267,7 @@ typedef void (*GDExtensionClassUnreference)(GDExtensionClassInstancePtr p_instan typedef void (*GDExtensionClassCallVirtual)(GDExtensionClassInstancePtr p_instance, const GDExtensionConstTypePtr *p_args, GDExtensionTypePtr r_ret); typedef GDExtensionObjectPtr (*GDExtensionClassCreateInstance)(void *p_class_userdata); typedef void (*GDExtensionClassFreeInstance)(void *p_class_userdata, GDExtensionClassInstancePtr p_instance); +typedef GDExtensionClassInstancePtr (*GDExtensionClassRecreateInstance)(void *p_class_userdata, GDExtensionObjectPtr p_object); typedef GDExtensionClassCallVirtual (*GDExtensionClassGetVirtual)(void *p_class_userdata, GDExtensionConstStringNamePtr p_name); typedef void *(*GDExtensionClassGetVirtualCallData)(void *p_class_userdata, GDExtensionConstStringNamePtr p_name); typedef void (*GDExtensionClassCallVirtualWithData)(GDExtensionClassInstancePtr p_instance, GDExtensionConstStringNamePtr p_name, void *p_virtual_call_userdata, const GDExtensionConstTypePtr *p_args, GDExtensionTypePtr r_ret); @@ -308,6 +309,7 @@ typedef struct { GDExtensionClassUnreference unreference_func; GDExtensionClassCreateInstance create_instance_func; // (Default) constructor; mandatory. If the class is not instantiable, consider making it virtual or abstract. GDExtensionClassFreeInstance free_instance_func; // Destructor; mandatory. + GDExtensionClassRecreateInstance recreate_instance_func; // Queries a virtual function by name and returns a callback to invoke the requested virtual function. GDExtensionClassGetVirtual get_virtual_func; // Paired with `call_virtual_with_data_func`, this is an alternative to `get_virtual_func` for extensions that |