diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/mobile_vr/mobile_vr_interface.cpp | 9 | ||||
-rw-r--r-- | modules/mobile_vr/mobile_vr_interface.h | 1 | ||||
-rw-r--r-- | modules/openxr/openxr_api.cpp | 7 | ||||
-rw-r--r-- | modules/openxr/openxr_api.h | 6 | ||||
-rw-r--r-- | modules/openxr/openxr_interface.cpp | 11 | ||||
-rw-r--r-- | modules/openxr/openxr_interface.h | 1 | ||||
-rw-r--r-- | modules/webxr/webxr_interface_js.cpp | 10 | ||||
-rw-r--r-- | modules/webxr/webxr_interface_js.h | 1 |
8 files changed, 45 insertions, 1 deletions
diff --git a/modules/mobile_vr/mobile_vr_interface.cpp b/modules/mobile_vr/mobile_vr_interface.cpp index 5fab53441c..94a3f0777e 100644 --- a/modules/mobile_vr/mobile_vr_interface.cpp +++ b/modules/mobile_vr/mobile_vr_interface.cpp @@ -372,6 +372,15 @@ void MobileVRInterface::uninitialize() { }; }; +Dictionary MobileVRInterface::get_system_info() { + Dictionary dict; + + dict[SNAME("XRRuntimeName")] = String("Godot mobile VR interface"); + dict[SNAME("XRRuntimeVersion")] = String(""); + + return dict; +} + bool MobileVRInterface::supports_play_area_mode(XRInterface::PlayAreaMode p_mode) { // This interface has no positional tracking so fix this to 3DOF return p_mode == XR_PLAY_AREA_3DOF; diff --git a/modules/mobile_vr/mobile_vr_interface.h b/modules/mobile_vr/mobile_vr_interface.h index 12075eda82..f680d8aa11 100644 --- a/modules/mobile_vr/mobile_vr_interface.h +++ b/modules/mobile_vr/mobile_vr_interface.h @@ -141,6 +141,7 @@ public: virtual bool is_initialized() const override; virtual bool initialize() override; virtual void uninitialize() override; + virtual Dictionary get_system_info() override; virtual bool supports_play_area_mode(XRInterface::PlayAreaMode p_mode) override; virtual XRInterface::PlayAreaMode get_play_area_mode() const override; diff --git a/modules/openxr/openxr_api.cpp b/modules/openxr/openxr_api.cpp index ddb3114b59..8509571012 100644 --- a/modules/openxr/openxr_api.cpp +++ b/modules/openxr/openxr_api.cpp @@ -385,8 +385,13 @@ bool OpenXRAPI::create_instance() { if (XR_FAILED(result)) { // not fatal probably print_line("OpenXR: Failed to get XR instance properties [", get_error_string(result), "]"); + + runtime_name = ""; + runtime_version = ""; } else { - print_line("OpenXR: Running on OpenXR runtime: ", instanceProps.runtimeName, " ", OpenXRUtil::make_xr_version_string(instanceProps.runtimeVersion)); + runtime_name = instanceProps.runtimeName; + runtime_version = OpenXRUtil::make_xr_version_string(instanceProps.runtimeVersion); + print_line("OpenXR: Running on OpenXR runtime: ", runtime_name, " ", runtime_version); } for (OpenXRExtensionWrapper *wrapper : registered_extension_wrappers) { diff --git a/modules/openxr/openxr_api.h b/modules/openxr/openxr_api.h index 8c642c4ff4..c8bef5d420 100644 --- a/modules/openxr/openxr_api.h +++ b/modules/openxr/openxr_api.h @@ -95,6 +95,10 @@ private: uint32_t num_swapchain_formats = 0; int64_t *supported_swapchain_formats = nullptr; + // system info + String runtime_name; + String runtime_version; + // configuration XrFormFactor form_factor = XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY; XrViewConfigurationType view_configuration = XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO; @@ -294,6 +298,8 @@ public: XrInstance get_instance() const { return instance; }; XrSystemId get_system_id() const { return system_id; }; XrSession get_session() const { return session; }; + String get_runtime_name() const { return runtime_name; }; + String get_runtime_version() const { return runtime_version; }; // helper method to convert an XrPosef to a Transform3D Transform3D transform_from_pose(const XrPosef &p_pose); diff --git a/modules/openxr/openxr_interface.cpp b/modules/openxr/openxr_interface.cpp index 51de9b913a..27344c9da7 100644 --- a/modules/openxr/openxr_interface.cpp +++ b/modules/openxr/openxr_interface.cpp @@ -583,6 +583,17 @@ void OpenXRInterface::uninitialize() { initialized = false; } +Dictionary OpenXRInterface::get_system_info() { + Dictionary dict; + + if (openxr_api) { + dict[SNAME("XRRuntimeName")] = openxr_api->get_runtime_name(); + dict[SNAME("XRRuntimeVersion")] = openxr_api->get_runtime_version(); + } + + return dict; +} + bool OpenXRInterface::supports_play_area_mode(XRInterface::PlayAreaMode p_mode) { return false; } diff --git a/modules/openxr/openxr_interface.h b/modules/openxr/openxr_interface.h index 40ee95f02f..de758a8c2d 100644 --- a/modules/openxr/openxr_interface.h +++ b/modules/openxr/openxr_interface.h @@ -112,6 +112,7 @@ public: virtual bool is_initialized() const override; virtual bool initialize() override; virtual void uninitialize() override; + virtual Dictionary get_system_info() override; virtual void trigger_haptic_pulse(const String &p_action_name, const StringName &p_tracker_name, double p_frequency, double p_amplitude, double p_duration_sec, double p_delay_sec = 0) override; diff --git a/modules/webxr/webxr_interface_js.cpp b/modules/webxr/webxr_interface_js.cpp index 97b2eea4d7..d3710bd0df 100644 --- a/modules/webxr/webxr_interface_js.cpp +++ b/modules/webxr/webxr_interface_js.cpp @@ -301,6 +301,16 @@ void WebXRInterfaceJS::uninitialize() { }; }; +Dictionary WebXRInterfaceJS::get_system_info() { + Dictionary dict; + + // TODO get actual information from WebXR to return here + dict[SNAME("XRRuntimeName")] = String("WebXR"); + dict[SNAME("XRRuntimeVersion")] = String(""); + + return dict; +} + Transform3D WebXRInterfaceJS::_js_matrix_to_transform(float *p_js_matrix) { Transform3D transform; diff --git a/modules/webxr/webxr_interface_js.h b/modules/webxr/webxr_interface_js.h index 31d2e200c0..20516e89e2 100644 --- a/modules/webxr/webxr_interface_js.h +++ b/modules/webxr/webxr_interface_js.h @@ -108,6 +108,7 @@ public: virtual bool is_initialized() const override; virtual bool initialize() override; virtual void uninitialize() override; + virtual Dictionary get_system_info() override; virtual Size2 get_render_target_size() override; virtual uint32_t get_view_count() override; |