summaryrefslogtreecommitdiffstats
path: root/gdextension
diff options
context:
space:
mode:
authorDavid Snopek <dsnopek@gmail.com>2023-08-04 11:02:57 -0500
committerDavid Snopek <dsnopek@gmail.com>2023-09-25 22:13:33 -0500
commitdf849651d9d71e3b901fe386a6752aec368c7206 (patch)
treefc6e5fabafb682aeba91c124d7c4beebb5c9c4ef /gdextension
parentc44c3d5ebf9826214efc971f0cbe047789af2575 (diff)
downloadredot-cpp-df849651d9d71e3b901fe386a6752aec368c7206.tar.gz
Changes necessary for hot reload to work
Diffstat (limited to 'gdextension')
-rw-r--r--gdextension/gdextension_interface.h2
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