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

Adding support for the OpenXR Display Refresh Rate extension

This commit is contained in:
Bastiaan Olij
2022-10-10 18:51:53 +11:00
parent ca25c6e0a3
commit e14717bb2e
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"
@@ -1787,6 +1788,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;
@@ -1856,6 +1882,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() {