1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-05 12:10:55 +00:00

Merge pull request #67179 from BastiaanOlij/openxr_add_refresh_rate_extension

Adding support for the OpenXR Display Refresh Rate extension
This commit is contained in:
Rémi Verschelde
2022-10-17 17:32:01 +02:00
8 changed files with 280 additions and 0 deletions

View File

@@ -50,6 +50,7 @@
#endif
#include "extensions/openxr_composition_layer_depth_extension.h"
#include "extensions/openxr_fb_display_refresh_rate_extension.h"
#include "extensions/openxr_fb_passthrough_extension_wrapper.h"
#include "extensions/openxr_hand_tracking_extension.h"
#include "extensions/openxr_htc_vive_tracker_extension.h"
@@ -1748,6 +1749,31 @@ void OpenXRAPI::end_frame() {
}
}
float OpenXRAPI::get_display_refresh_rate() const {
OpenXRDisplayRefreshRateExtension *drrext = OpenXRDisplayRefreshRateExtension::get_singleton();
if (drrext) {
return drrext->get_refresh_rate();
}
return 0.0;
}
void OpenXRAPI::set_display_refresh_rate(float p_refresh_rate) {
OpenXRDisplayRefreshRateExtension *drrext = OpenXRDisplayRefreshRateExtension::get_singleton();
if (drrext != nullptr) {
drrext->set_refresh_rate(p_refresh_rate);
}
}
Array OpenXRAPI::get_available_display_refresh_rates() const {
OpenXRDisplayRefreshRateExtension *drrext = OpenXRDisplayRefreshRateExtension::get_singleton();
if (drrext != nullptr) {
return drrext->get_available_refresh_rates();
}
return Array();
}
OpenXRAPI::OpenXRAPI() {
// OpenXRAPI is only constructed if OpenXR is enabled.
singleton = this;
@@ -1817,6 +1843,7 @@ OpenXRAPI::OpenXRAPI() {
register_extension_wrapper(memnew(OpenXRHTCViveTrackerExtension(this)));
register_extension_wrapper(memnew(OpenXRHandTrackingExtension(this)));
register_extension_wrapper(memnew(OpenXRFbPassthroughExtensionWrapper(this)));
register_extension_wrapper(memnew(OpenXRDisplayRefreshRateExtension(this)));
}
OpenXRAPI::~OpenXRAPI() {