You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-02 16:48:55 +00:00
Add OpenXR 1.1 support
This commit is contained in:
@@ -34,9 +34,9 @@
|
||||
#include "../openxr_api_extension.h"
|
||||
|
||||
void OpenXRExtensionWrapper::_bind_methods() {
|
||||
GDVIRTUAL_BIND(_get_requested_extensions);
|
||||
GDVIRTUAL_BIND(_get_requested_extensions, "xr_version");
|
||||
GDVIRTUAL_BIND(_set_system_properties_and_get_next_pointer, "next_pointer");
|
||||
GDVIRTUAL_BIND(_set_instance_create_info_and_get_next_pointer, "next_pointer");
|
||||
GDVIRTUAL_BIND(_set_instance_create_info_and_get_next_pointer, "xr_version", "next_pointer");
|
||||
GDVIRTUAL_BIND(_set_session_create_and_get_next_pointer, "next_pointer");
|
||||
GDVIRTUAL_BIND(_set_swapchain_create_info_and_get_next_pointer, "next_pointer");
|
||||
GDVIRTUAL_BIND(_set_hand_joint_locations_and_get_next_pointer, "hand_index", "next_pointer");
|
||||
@@ -79,14 +79,19 @@ void OpenXRExtensionWrapper::_bind_methods() {
|
||||
GDVIRTUAL_BIND(_on_viewport_composition_layer_destroyed, "layer");
|
||||
GDVIRTUAL_BIND(_set_android_surface_swapchain_create_info_and_get_next_pointer, "property_values", "next_pointer");
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
GDVIRTUAL_BIND_COMPAT(_get_requested_extensions_bind_compat_109302);
|
||||
GDVIRTUAL_BIND_COMPAT(_set_instance_create_info_and_get_next_pointer_bind_compat_109302, "next_pointer");
|
||||
#endif
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_openxr_api"), &OpenXRExtensionWrapper::_gdextension_get_openxr_api);
|
||||
ClassDB::bind_method(D_METHOD("register_extension_wrapper"), &OpenXRExtensionWrapper::_gdextension_register_extension_wrapper);
|
||||
}
|
||||
|
||||
HashMap<String, bool *> OpenXRExtensionWrapper::get_requested_extensions() {
|
||||
HashMap<String, bool *> OpenXRExtensionWrapper::get_requested_extensions(XrVersion p_xr_version) {
|
||||
Dictionary request_extension;
|
||||
|
||||
if (GDVIRTUAL_CALL(_get_requested_extensions, request_extension)) {
|
||||
if (GDVIRTUAL_CALL(_get_requested_extensions, (uint64_t)p_xr_version, request_extension)) {
|
||||
HashMap<String, bool *> result;
|
||||
for (const KeyValue<Variant, Variant> &kv : request_extension) {
|
||||
GDExtensionPtr<bool> value = VariantCaster<GDExtensionPtr<bool>>::cast(kv.value);
|
||||
@@ -95,6 +100,17 @@ HashMap<String, bool *> OpenXRExtensionWrapper::get_requested_extensions() {
|
||||
return result;
|
||||
}
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
if (GDVIRTUAL_CALL(_get_requested_extensions_bind_compat_109302, request_extension)) {
|
||||
HashMap<String, bool *> result;
|
||||
for (const KeyValue<Variant, Variant> &kv : request_extension) {
|
||||
GDExtensionPtr<bool> value = VariantCaster<GDExtensionPtr<bool>>::cast(kv.value);
|
||||
result.insert(kv.key, value);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
return HashMap<String, bool *>();
|
||||
}
|
||||
|
||||
@@ -108,13 +124,19 @@ void *OpenXRExtensionWrapper::set_system_properties_and_get_next_pointer(void *p
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void *OpenXRExtensionWrapper::set_instance_create_info_and_get_next_pointer(void *p_next_pointer) {
|
||||
void *OpenXRExtensionWrapper::set_instance_create_info_and_get_next_pointer(XrVersion p_xr_version, void *p_next_pointer) {
|
||||
uint64_t pointer;
|
||||
|
||||
if (GDVIRTUAL_CALL(_set_instance_create_info_and_get_next_pointer, GDExtensionPtr<void>(p_next_pointer), pointer)) {
|
||||
if (GDVIRTUAL_CALL(_set_instance_create_info_and_get_next_pointer, (uint64_t)p_xr_version, GDExtensionPtr<void>(p_next_pointer), pointer)) {
|
||||
return reinterpret_cast<void *>(pointer);
|
||||
}
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
if (GDVIRTUAL_CALL(_set_instance_create_info_and_get_next_pointer_bind_compat_109302, GDExtensionPtr<void>(p_next_pointer), pointer)) {
|
||||
return reinterpret_cast<void *>(pointer);
|
||||
}
|
||||
#endif
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user