Merge pull request #19171 from BastiaanOlij/add_arvr_interface_gdnative_version

Adding version info to GDNative ARVR interfaces
This commit is contained in:
Bastiaan Olij 2018-05-30 18:49:07 +10:00 committed by GitHub
commit 3d9dffdef7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 1 deletions

View File

@ -217,6 +217,10 @@ void ARVRInterfaceGDNative::process() {
extern "C" {
void GDAPI godot_arvr_register_interface(const godot_arvr_interface_gdnative *p_interface) {
// If our major version is 0 or bigger then 10, we're likely looking at our constructor pointer from an older plugin
ERR_EXPLAINC("GDNative ARVR interfaces build for Godot 3.0 are not supported");
ERR_FAIL_COND((p_interface->version.major == 0) || (p_interface->version.major > 10));
Ref<ARVRInterfaceGDNative> new_interface;
new_interface.instance();
new_interface->set_interface((godot_arvr_interface_gdnative *const)p_interface);

View File

@ -5966,7 +5966,7 @@
"type": "ARVR",
"version": {
"major": 1,
"minor": 0
"minor": 1
},
"next": null,
"api": [

View File

@ -37,7 +37,15 @@
extern "C" {
#endif
// For future versions of the API we should only add new functions at the end of the structure and use the
// version info to detect whether a call is available
// Use these to populate version in your plugin
#define GODOTVR_API_MAJOR 1
#define GODOTVR_API_MINOR 0
typedef struct {
godot_gdnative_api_version version; /* version of our API */
void *(*constructor)(godot_object *);
void (*destructor)(void *);
godot_string (*get_name)(const void *);