Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
OpenXRAPIExtension
Наследует: RefCounted < Object
Делает API OpenXR доступным для GDExtension.
Описание
OpenXRAPIExtension делает OpenXR доступным для GDExtension. Он предоставляет API OpenXR для GDExtension через метод get_instance_proc_addr() и экземпляр OpenXR через get_instance().
Он также предоставляет методы для запроса статуса инициализации OpenXR и вспомогательные методы для простоты использования API с GDExtension.
Обучающие материалы
Методы
Перечисления
enum OpenXRAlphaBlendModeSupport: 🔗
OpenXRAlphaBlendModeSupport OPENXR_ALPHA_BLEND_MODE_SUPPORT_NONE = 0
Означает, что XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND вообще не поддерживается.
OpenXRAlphaBlendModeSupport OPENXR_ALPHA_BLEND_MODE_SUPPORT_REAL = 1
Означает, что XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND действительно поддерживается.
OpenXRAlphaBlendModeSupport OPENXR_ALPHA_BLEND_MODE_SUPPORT_EMULATING = 2
Означает, что XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND эмулируется.
Описания метода
int action_get_handle(action: RID) 🔗
Возвращает соответствующий дескриптор OpenXR XrAction для указанного RID действия.
void begin_debug_label_region(label_name: String) 🔗
Начинает новую область отладочной метки, эта метка будет сообщаться в отладочных сообщениях для любых вызовов, следующих за этим, пока не будет вызван end_debug_label_region(). Отладочные метки могут быть сложены.
Возвращает true, если OpenXR инициализирован для рендеринга с областью просмотра XR.
void end_debug_label_region() 🔗
Отмечает конец области отладочной метки. Удаляет последнюю область отладочной метки, добавленную вызовом begin_debug_label_region().
RID find_action(name: String, action_set: RID) 🔗
Возвращает RID, соответствующий Действию совпадающего имени, при необходимости ограниченному указанным набором действий.
String get_error_string(result: int) 🔗
Возвращает строку ошибки для указанного XrResult.
int get_hand_tracker(hand_index: int) 🔗
Возвращает соответствующий дескриптор XRHandTrackerEXT для заданного значения индекса руки.
Возвращает XrInstance, созданный во время инициализации API OpenXR.
int get_instance_proc_addr(name: String) 🔗
Возвращает указатель функции OpenXR с указанным именем, приведенный к целому числу. Если функция с указанным именем не существует, метод возвращает 0.
Примечание: openxr/util.h содержит служебные макросы для получения функций OpenXR, например, GDEXTENSION_INIT_XR_FUNC_V(xrCreateAction).
Возвращает прогнозируемое время отображения следующего кадра.
Возвращает версию OpenXR, которая была инициализирована. Действительна только после создания экземпляра OpenXR. См. XR_MAKE_VERSION для получения информации о том, как рассчитывается версия.
Возвращает игровое пространство, которое представляет собой XrSpace, приведенное к целому числу.
int get_predicted_display_time() 🔗
Возвращает прогнозируемое время отображения текущего кадра.
Возвращает указатель на структуру XrCompositionLayerProjection состояния рендеринга.
Примечание: Этот метод следует вызывать только из потока рендеринга.
float get_render_state_z_far() 🔗
Возвращает значение дальней границы усеченной пирамиды видимости камеры.
Примечание: Это доступно только в потоке рендеринга.
float get_render_state_z_near() 🔗
Возвращает ближнее граничное значение пирамиды видимости камеры.
Примечание: Это доступно только в потоке рендеринга.
Возвращает сеанс OpenXR, который представляет собой XrSession, преобразованный в целое число.
PackedInt64Array get_supported_swapchain_formats() 🔗
Возвращает массив поддерживаемых форматов цепочки обмена.
String get_swapchain_format_name(swapchain_format: int) 🔗
Возвращает имя указанного формата цепочки обмена.
Возвращает идентификатор (ID) системы, который представляет собой XrSystemId, преобразованный в целое число.
int get_view_configuration() const 🔗
Возвращает тип конфигурации вида, который представляет собой XrViewConfigurationType преобразованный в целое число.
Возвращает количество вида. Обычно это два, по одному для каждого глаза, но может отличаться в зависимости от конфигурации вида.
void insert_debug_label(label_name: String) 🔗
Вставляет метку отладки, эта метка отображается в любом отладочном сообщении, полученном в результате последующих вызовов OpenXR, пока не будет вызван любой из методов begin_debug_label_region(), end_debug_label_region() или insert_debug_label().
OpenXRAlphaBlendModeSupport is_environment_blend_mode_alpha_supported() 🔗
Возвращает OpenXRAlphaBlendModeSupport, указывающий, поддерживается ли XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND на самом деле, эмулируется или не поддерживается вообще.
Возвращает true, если OpenXR инициализирован.
Возвращает true, если OpenXR запущен (xrBeginSession был успешно вызван и цепочки обмена были созданы).
bool openxr_is_enabled(check_run_in_editor: bool) static 🔗
Возвращает true, если OpenXR включен.
void openxr_swapchain_acquire(swapchain: int) 🔗
Получает изображение предоставленной цепочки обмена.
int openxr_swapchain_create(create_flags: int, usage_flags: int, swapchain_format: int, width: int, height: int, sample_count: int, array_size: int) 🔗
Возвращает указатель на новую цепочку обмена, созданную с использованием предоставленных параметров.
void openxr_swapchain_free(swapchain: int) 🔗
Уничтожает предоставленную цепочку обмена и освобождает ее из памяти.
RID openxr_swapchain_get_image(swapchain: int) 🔗
Возвращает RID предоставленного образа цепочки обмена.
int openxr_swapchain_get_swapchain(swapchain: int) 🔗
Возвращает дескриптор XrSwapchain предоставленной цепочки обмена.
void openxr_swapchain_release(swapchain: int) 🔗
Выпускает образ предоставленной цепочки обмена.
void register_composition_layer_provider(extension: OpenXRExtensionWrapper) 🔗
Регистрирует указанное расширение в качестве поставщика слоя композиции.
Примечание: Этот метод нельзя вызвать после начала сессии OpenXR. Однако его можно вызвать в OpenXRExtensionWrapper._on_session_created().
void register_frame_info_extension(extension: OpenXRExtensionWrapper) 🔗
Регистрирует указанное расширение как изменяющее информацию о кадре с помощью виртуальных методов OpenXRExtensionWrapper._set_frame_wait_info_and_get_next_pointer(), OpenXRExtensionWrapper._set_view_locate_info_and_get_next_pointer() или OpenXRExtensionWrapper._set_frame_end_info_and_get_next_pointer().
Примечание: Этот метод нельзя вызвать после начала сеанса OpenXR. Однако его можно вызвать в OpenXRExtensionWrapper._on_session_created().
void register_projection_layer_extension(extension: OpenXRExtensionWrapper) 🔗
Регистрирует указанное расширение как изменяющее XrCompositionLayerProjection с помощью виртуального метода OpenXRExtensionWrapper._set_projection_layer_and_get_next_pointer().
Примечание: Этот метод нельзя вызвать после начала сессии OpenXR. Однако его можно вызвать в OpenXRExtensionWrapper._on_session_created().
void register_projection_views_extension(extension: OpenXRExtensionWrapper) 🔗
Регистрирует указанное расширение в качестве поставщика дополнительных структур данных для проекционных представлений.
Примечание: Этот метод нельзя вызвать после начала сеанса OpenXR. Однако его можно вызвать в OpenXRExtensionWrapper._on_session_created().
void set_custom_play_space(space: const void*) 🔗
Устанавливает ссылочное пространство, используемое OpenXR, на указанное XrSpace (приводится к void *).
void set_emulate_environment_blend_mode_alpha_blend(enabled: bool) 🔗
Если установлено значение true, загружается расширение OpenXR, способное эмулировать режим смешивания XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND.
void set_object_name(object_type: int, object_handle: int, object_name: String) 🔗
Задайте имя объекта OpenXR, используемого для отладочного вывода. object_type должен быть допустимым перечислением OpenXR XrObjectType, а object_handle должен быть допустимым дескриптором объекта OpenXR.
void set_render_region(render_region: Rect2i) 🔗
Устанавливает область рендеринга на render_region, переопределяя прямоугольник обычной цели рендеринга.
void set_velocity_depth_texture(render_target: RID) 🔗
Устанавливает цель рендеринга текстуры глубины скорости.
void set_velocity_target_size(target_size: Vector2i) 🔗
Устанавливает целевой размер текстур скорости и глубины скорости.
void set_velocity_texture(render_target: RID) 🔗
Устанавливает цель рендеринга текстуры скорости.
Transform3D transform_from_pose(pose: const void*) 🔗
Создает Transform3D из XrPosef.
void unregister_composition_layer_provider(extension: OpenXRExtensionWrapper) 🔗
Отменяет регистрацию указанного расширения в качестве поставщика слоя композиции.
Примечание: Эту функцию нельзя вызвать, пока сессия OpenXR еще запущена.
void unregister_frame_info_extension(extension: OpenXRExtensionWrapper) 🔗
Отменяет регистрацию указанного расширения как изменяющего информацию о кадре.
Примечание: Эту функцию нельзя вызвать, пока сессия OpenXR еще запущена.
void unregister_projection_layer_extension(extension: OpenXRExtensionWrapper) 🔗
Отменяет регистрацию указанного расширения как изменяющего XrCompositionLayerProjection.
Примечание: Эту функцию нельзя вызвать, пока сессия OpenXR еще запущена.
void unregister_projection_views_extension(extension: OpenXRExtensionWrapper) 🔗
Отменяет регистрацию указанного расширения в качестве поставщика дополнительных структур данных для проекционных представлений.
Примечание: Эту функцию нельзя вызвать, пока сеанс OpenXR еще запущен.
void update_main_swapchain_size() 🔗
Запросите рекомендуемое разрешение у среды выполнения OpenXR и обновите размер основной цепочки обменов, если он изменился.
bool xr_result(result: int, format: String, args: Array) 🔗
Возвращает true, если предоставленный XrResult (приведенный к целому числу) успешен. В противном случае возвращает false и печатает XrResult, преобразованный в строку, с указанной дополнительной информацией.