1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-17 14:11:06 +00:00

OpenXR: Add support for frame synthesis

This commit is contained in:
Bastiaan Olij
2025-08-21 00:02:40 +10:00
parent 8327dfa215
commit c5aae722ee
11 changed files with 653 additions and 20 deletions

View File

@@ -45,6 +45,9 @@ void OpenXRExtensionWrapper::_bind_methods() {
GDVIRTUAL_BIND(_set_frame_end_info_and_get_next_pointer, "next_pointer");
GDVIRTUAL_BIND(_set_view_locate_info_and_get_next_pointer, "next_pointer");
GDVIRTUAL_BIND(_set_reference_space_create_info_and_get_next_pointer, "reference_space_type", "next_pointer");
GDVIRTUAL_BIND(_prepare_view_configuration, "view_count");
GDVIRTUAL_BIND(_set_view_configuration_and_get_next_pointer, "view", "next_pointer");
GDVIRTUAL_BIND(_print_view_configuration_info, "view");
GDVIRTUAL_BIND(_get_composition_layer_count);
GDVIRTUAL_BIND(_get_composition_layer, "index");
GDVIRTUAL_BIND(_get_composition_layer_order, "index");
@@ -185,6 +188,24 @@ void *OpenXRExtensionWrapper::set_frame_end_info_and_get_next_pointer(void *p_ne
return nullptr;
}
void OpenXRExtensionWrapper::prepare_view_configuration(uint32_t p_view_count) {
GDVIRTUAL_CALL(_prepare_view_configuration, p_view_count);
}
void *OpenXRExtensionWrapper::set_view_configuration_and_get_next_pointer(uint32_t p_view, void *p_next_pointer) {
uint64_t pointer = 0;
if (GDVIRTUAL_CALL(_set_view_configuration_and_get_next_pointer, p_view, GDExtensionPtr<void>(p_next_pointer), pointer)) {
return reinterpret_cast<void *>(pointer);
}
return nullptr;
}
void OpenXRExtensionWrapper::print_view_configuration_info(uint32_t p_view) const {
GDVIRTUAL_CALL(_print_view_configuration_info, p_view);
}
void *OpenXRExtensionWrapper::set_view_locate_info_and_get_next_pointer(void *p_next_pointer) {
uint64_t pointer = 0;