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, преобразованный в целое число.
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_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_views_extension(extension: OpenXRExtensionWrapper) 🔗
Отменяет регистрацию указанного расширения в качестве поставщика дополнительных структур данных для проекционных представлений.
Примечание: Эту функцию нельзя вызвать, пока сеанс OpenXR еще запущен.
void update_main_swapchain_size() 🔗
Запросите рекомендуемое разрешение у среды выполнения OpenXR и обновите размер основной цепочки обменов, если он изменился.
bool xr_result(result: int, format: String, args: Array) 🔗
Возвращает true, если предоставленный XrResult (приведенный к целому числу) успешен. В противном случае возвращает false и печатает XrResult, преобразованный в строку, с указанной дополнительной информацией.