Skip to content

Commit 6f51eca

Browse files
committedMar 10, 2022
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.
1 parent 741bbb9 commit 6f51eca

File tree

90 files changed

+1077
-274
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+1077
-274
lines changed
 

‎.github/workflows/linux_builds.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ jobs:
3636
tests: true
3737
sconsflags: float=64 use_asan=yes use_ubsan=yes
3838
proj-test: true
39-
godot-cpp-test: true
39+
# Can be turned off for PRs that intentionally break compat with godot-cpp,
40+
# until both the upstream PR and the matching godot-cpp changes are merged.
41+
godot-cpp-test: false
4042
bin: "./bin/godot.linuxbsd.double.tools.64.san"
4143
build-mono: false
4244
# Skip 2GiB artifact speeding up action.

‎core/extension/gdnative_interface.h

+2
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ typedef void *GDExtensionClassInstancePtr;
194194

195195
typedef GDNativeBool (*GDNativeExtensionClassSet)(GDExtensionClassInstancePtr p_instance, const GDNativeStringNamePtr p_name, const GDNativeVariantPtr p_value);
196196
typedef GDNativeBool (*GDNativeExtensionClassGet)(GDExtensionClassInstancePtr p_instance, const GDNativeStringNamePtr p_name, GDNativeVariantPtr r_ret);
197+
typedef uint64_t (*GDNativeExtensionClassGetRID)(GDExtensionClassInstancePtr p_instance);
197198

198199
typedef struct {
199200
uint32_t type;
@@ -228,6 +229,7 @@ typedef struct {
228229
GDNativeExtensionClassCreateInstance create_instance_func; /* this one is mandatory */
229230
GDNativeExtensionClassFreeInstance free_instance_func; /* this one is mandatory */
230231
GDNativeExtensionClassGetVirtual get_virtual_func;
232+
GDNativeExtensionClassGetRID get_rid_func;
231233
void *class_userdata;
232234
} GDNativeExtensionClassCreationInfo;
233235

0 commit comments

Comments
 (0)
Please sign in to comment.