Merge pull request #19171 from BastiaanOlij/add_arvr_interface_gdnative_version
Adding version info to GDNative ARVR interfaces
This commit is contained in:
commit
3d9dffdef7
3 changed files with 13 additions and 1 deletions
|
@ -217,6 +217,10 @@ void ARVRInterfaceGDNative::process() {
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
void GDAPI godot_arvr_register_interface(const godot_arvr_interface_gdnative *p_interface) {
|
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;
|
Ref<ARVRInterfaceGDNative> new_interface;
|
||||||
new_interface.instance();
|
new_interface.instance();
|
||||||
new_interface->set_interface((godot_arvr_interface_gdnative *const)p_interface);
|
new_interface->set_interface((godot_arvr_interface_gdnative *const)p_interface);
|
||||||
|
|
|
@ -5966,7 +5966,7 @@
|
||||||
"type": "ARVR",
|
"type": "ARVR",
|
||||||
"version": {
|
"version": {
|
||||||
"major": 1,
|
"major": 1,
|
||||||
"minor": 0
|
"minor": 1
|
||||||
},
|
},
|
||||||
"next": null,
|
"next": null,
|
||||||
"api": [
|
"api": [
|
||||||
|
|
|
@ -37,7 +37,15 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#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 {
|
typedef struct {
|
||||||
|
godot_gdnative_api_version version; /* version of our API */
|
||||||
void *(*constructor)(godot_object *);
|
void *(*constructor)(godot_object *);
|
||||||
void (*destructor)(void *);
|
void (*destructor)(void *);
|
||||||
godot_string (*get_name)(const void *);
|
godot_string (*get_name)(const void *);
|
||||||
|
|
Loading…
Reference in a new issue