summaryrefslogtreecommitdiffstats
path: root/core/extension/gdnative_interface.h
diff options
context:
space:
mode:
authorreduz <reduzio@gmail.com>2022-03-10 08:17:38 +0100
committerreduz <reduzio@gmail.com>2022-03-10 12:28:11 +0100
commit6f51eca1e3045571ccc68414a922e8b0229111f0 (patch)
tree8aee693d8f1972009c5788f34fcebfd6c681e9e1 /core/extension/gdnative_interface.h
parent741bbb9d7c95dfd810c113ca935a8f16238b5334 (diff)
downloadredot-engine-6f51eca1e3045571ccc68414a922e8b0229111f0.tar.gz
Discern between virtual and abstract class bindings
* Previous "virtual" classes (which can't be instantiated) are not corretly named "abstract". * Added a new "virtual" category for classes, they can't be instantiated from the editor, but can be inherited from script and extensions. * Converted a large amount of classes from "abstract" to "virtual" where it makes sense. Most classes that make sense have been converted. Missing: * Physics servers * VideoStream * Script* classes. which will go in a separate PR due to the complexity involved.
Diffstat (limited to 'core/extension/gdnative_interface.h')
-rw-r--r--core/extension/gdnative_interface.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/extension/gdnative_interface.h b/core/extension/gdnative_interface.h
index 62934d1d73..76e87eaf23 100644
--- a/core/extension/gdnative_interface.h
+++ b/core/extension/gdnative_interface.h
@@ -194,6 +194,7 @@ typedef void *GDExtensionClassInstancePtr;
typedef GDNativeBool (*GDNativeExtensionClassSet)(GDExtensionClassInstancePtr p_instance, const GDNativeStringNamePtr p_name, const GDNativeVariantPtr p_value);
typedef GDNativeBool (*GDNativeExtensionClassGet)(GDExtensionClassInstancePtr p_instance, const GDNativeStringNamePtr p_name, GDNativeVariantPtr r_ret);
+typedef uint64_t (*GDNativeExtensionClassGetRID)(GDExtensionClassInstancePtr p_instance);
typedef struct {
uint32_t type;
@@ -228,6 +229,7 @@ typedef struct {
GDNativeExtensionClassCreateInstance create_instance_func; /* this one is mandatory */
GDNativeExtensionClassFreeInstance free_instance_func; /* this one is mandatory */
GDNativeExtensionClassGetVirtual get_virtual_func;
+ GDNativeExtensionClassGetRID get_rid_func;
void *class_userdata;
} GDNativeExtensionClassCreationInfo;