diff --git a/modules/openxr/doc_classes/OpenXRAPIExtension.xml b/modules/openxr/doc_classes/OpenXRAPIExtension.xml
index 6dfc4bedf5..48608375c3 100644
--- a/modules/openxr/doc_classes/OpenXRAPIExtension.xml
+++ b/modules/openxr/doc_classes/OpenXRAPIExtension.xml
@@ -149,6 +149,18 @@
Returns the ID of the system, which is an [url=https://registry.khronos.org/OpenXR/specs/1.0/man/html/XrSystemId.html]XrSystemId[/url] cast to an integer.
+
+
+
+ Returns the view configuration type, which is an [url=https://registry.khronos.org/OpenXR/specs/1.0/man/html/XrViewConfigurationType.html]XrViewConfigurationType[/url] cast to an integer.
+
+
+
+
+
+ Returns the number of views. It is usually two, one for each eye, but may differ with different view configurations.
+
+
diff --git a/modules/openxr/openxr_api.cpp b/modules/openxr/openxr_api.cpp
index 88f27c6639..d7ba393671 100644
--- a/modules/openxr/openxr_api.cpp
+++ b/modules/openxr/openxr_api.cpp
@@ -1561,7 +1561,7 @@ void OpenXRAPI::set_form_factor(XrFormFactor p_form_factor) {
form_factor = p_form_factor;
}
-uint32_t OpenXRAPI::get_view_count() {
+uint32_t OpenXRAPI::get_view_count() const {
return view_configuration_views.size();
}
diff --git a/modules/openxr/openxr_api.h b/modules/openxr/openxr_api.h
index 11902828b0..e462c26a75 100644
--- a/modules/openxr/openxr_api.h
+++ b/modules/openxr/openxr_api.h
@@ -502,7 +502,7 @@ public:
void set_form_factor(XrFormFactor p_form_factor);
XrFormFactor get_form_factor() const { return form_factor; }
- uint32_t get_view_count();
+ uint32_t get_view_count() const;
void set_view_configuration(XrViewConfigurationType p_view_configuration);
XrViewConfigurationType get_view_configuration() const { return view_configuration; }
diff --git a/modules/openxr/openxr_api_extension.cpp b/modules/openxr/openxr_api_extension.cpp
index 750d9bb9ad..14017c2653 100644
--- a/modules/openxr/openxr_api_extension.cpp
+++ b/modules/openxr/openxr_api_extension.cpp
@@ -50,6 +50,9 @@ void OpenXRAPIExtension::_bind_methods() {
ClassDB::bind_method(D_METHOD("end_debug_label_region"), &OpenXRAPIExtension::end_debug_label_region);
ClassDB::bind_method(D_METHOD("insert_debug_label", "label_name"), &OpenXRAPIExtension::insert_debug_label);
+ ClassDB::bind_method(D_METHOD("get_view_count"), &OpenXRAPIExtension::get_view_count);
+ ClassDB::bind_method(D_METHOD("get_view_configuration"), &OpenXRAPIExtension::get_view_configuration);
+
ClassDB::bind_method(D_METHOD("is_initialized"), &OpenXRAPIExtension::is_initialized);
ClassDB::bind_method(D_METHOD("is_running"), &OpenXRAPIExtension::is_running);
@@ -183,6 +186,16 @@ void OpenXRAPIExtension::insert_debug_label(const String &p_label_name) {
OpenXRAPI::get_singleton()->insert_debug_label(p_label_name);
}
+uint32_t OpenXRAPIExtension::get_view_count() const {
+ ERR_FAIL_NULL_V(OpenXRAPI::get_singleton(), 0);
+ return (uint32_t)OpenXRAPI::get_singleton()->get_view_count();
+}
+
+uint64_t OpenXRAPIExtension::get_view_configuration() const {
+ ERR_FAIL_NULL_V(OpenXRAPI::get_singleton(), 0);
+ return (uint64_t)OpenXRAPI::get_singleton()->get_view_configuration();
+}
+
bool OpenXRAPIExtension::is_initialized() {
ERR_FAIL_NULL_V(OpenXRAPI::get_singleton(), false);
return OpenXRAPI::get_singleton()->is_initialized();
diff --git a/modules/openxr/openxr_api_extension.h b/modules/openxr/openxr_api_extension.h
index 63dd1c2f1e..f17e123ab7 100644
--- a/modules/openxr/openxr_api_extension.h
+++ b/modules/openxr/openxr_api_extension.h
@@ -77,6 +77,9 @@ public:
void end_debug_label_region();
void insert_debug_label(const String &p_label_name);
+ uint32_t get_view_count() const;
+ uint64_t get_view_configuration() const;
+
bool is_initialized();
bool is_running();