OpenXRAPIExtension

Успадковує: RefCounted < Object

Зробіть API OpenXR, доступний для GDExtension.

Опис

OpenXRAPIExtension робить OpenXR доступним для GDExtension. За допомогою методу OpenXR API до GDExtension через get_instance_proc_addr() та екземпляр OpenXR через get_instance().

Також передбачено методи запиту стану ініціалізації OpenXR, а також методи помічника для зручності використання API з GDExtension.

Посібники

Методи

int

action_get_handle(action: RID)

void

begin_debug_label_region(label_name: String)

bool

can_render()

void

end_debug_label_region()

RID

find_action(name: String, action_set: RID)

String

get_error_string(result: int)

int

get_hand_tracker(hand_index: int)

int

get_instance()

int

get_instance_proc_addr(name: String)

int

get_next_frame_time()

int

get_play_space()

int

get_predicted_display_time()

int

get_projection_layer()

float

get_render_state_z_far()

float

get_render_state_z_near()

int

get_session()

PackedInt64Array

get_supported_swapchain_formats()

String

get_swapchain_format_name(swapchain_format: int)

int

get_system_id()

void

insert_debug_label(label_name: String)

OpenXRAlphaBlendModeSupport

is_environment_blend_mode_alpha_supported()

bool

is_initialized()

bool

is_running()

bool

openxr_is_enabled(check_run_in_editor: bool) static

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)

int

openxr_swapchain_get_swapchain(swapchain: int)

void

openxr_swapchain_release(swapchain: int)

void

register_composition_layer_provider(extension: OpenXRExtensionWrapper)

void

register_frame_info_extension(extension: OpenXRExtensionWrapper)

void

register_projection_views_extension(extension: OpenXRExtensionWrapper)

void

set_custom_play_space(space: const void*)

void

set_emulate_environment_blend_mode_alpha_blend(enabled: bool)

void

set_object_name(object_type: int, object_handle: int, object_name: String)

void

set_render_region(render_region: Rect2i)

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*)

void

unregister_composition_layer_provider(extension: OpenXRExtensionWrapper)

void

unregister_frame_info_extension(extension: OpenXRExtensionWrapper)

void

unregister_projection_views_extension(extension: OpenXRExtensionWrapper)

bool

xr_result(result: int, format: String, args: Array)


Переліки

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) 🔗

Повертає відповідний XrAction дескриптор OpenXR для даної дії RID.


void begin_debug_label_region(label_name: String) 🔗

Початок нової області мітки налагодження, ця мітка повідомлятиметься в повідомленнях налагодження для будь-яких наступних викликів, доки не буде викликано end_debug_label_region(). Мітки налагодження можна складати в стопку.


bool can_render() 🔗

Повертаємо true, якщо OpenXR ініціюється для рендерингу з портом XR.


void end_debug_label_region() 🔗

Позначає кінець області мітки налагодження. Видаляє останню область мітки налагодження, додану за допомогою виклику begin_debug_label_region().


RID find_action(name: String, action_set: RID) 🔗

Повертає RID, що відповідає Action із відповідним ім’ям, необов’язково обмеженим вказаним набором дій.


String get_error_string(result: int) 🔗

Повернути рядок помилки для наданої XrResult.


int get_hand_tracker(hand_index: int) 🔗

Повертає відповідну XRHandTrackerEXT ручку за задану вартість індексу.


int get_instance() 🔗

Повернутися до XrInstance створеного під час ініціалізації API OpenXR.


int get_instance_proc_addr(name: String) 🔗

Повертає параметр функції OpenXR з вказаною назвою, відливаючи до цілого. Якщо функція з вказаною назвою не існує, метод повертає 0.

Примітка: openxr/util.h містить корисні макроси для еквайрингу Функції OpenXR, наприклад GDEXTENSION_INIT_XR_FUNC_V(xrCreateAction).


int get_next_frame_time() 🔗

Повертає передбачуваний час відображення для наступного кадру.


int get_play_space() 🔗

Повертає ігровий простір, який є ` XrSpace <https://registry.khronos.org/OpenXR/specs/1.0/man/html/XrSpace.html>`__ пролити в ціле.


int get_predicted_display_time() 🔗

Повертає передбачуваний час відображення для поточного каркасу.


int get_projection_layer() 🔗

Повертає вказівник на структуру XrCompositionLayerProjection стану візуалізації.

**Примітка: ** Цей метод слід викликати лише з потоку візуалізації.


float get_render_state_z_far() 🔗

Повертає дальнє граничне значення косої точки камери.

Примітка: Це доступно лише в потоці візуалізації.


float get_render_state_z_near() 🔗

Повертає ближнє граничне значення косої точки камери.

Примітка: Це доступно лише в потоці візуалізації.


int get_session() 🔗

Повертає сеанс OpenXR, який є XrSession відкидається до цілого.


PackedInt64Array get_supported_swapchain_formats() 🔗

Повертає масив підтримуваних форматів свопчейн.


String get_swapchain_format_name(swapchain_format: int) 🔗

Повертає ім'я вказаного формату swapchain.


int get_system_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 є дійсно підтриманим, ізольованим або не підтримується на всіх.


bool is_initialized() 🔗

true, якщо OpenXR ініціюється.


bool is_running() 🔗

Повертає true, якщо OpenXR працює (xrBeginSession був успішно названий і були створені swapchains).


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) 🔗

Зареєструвати задане розширення як виробник шарів композиції.


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().


void register_projection_views_extension(extension: OpenXRExtensionWrapper) 🔗

Реєструє вказане розширення як постачальник додаткових структур даних для представлень проекцій.


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 має бути дійсним переліком XrObjectType OpenXR, а 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) 🔗

Незареєструвати дане розширення як постачальника шарів композиції.


void unregister_frame_info_extension(extension: OpenXRExtensionWrapper) 🔗

Скасовує реєстрацію вказаного розширення як такого, що змінює інформацію про фрейм.


void unregister_projection_views_extension(extension: OpenXRExtensionWrapper) 🔗

Скасовує реєстрацію вказаного розширення як постачальника додаткових структур даних для представлень проекцій.


bool xr_result(result: int, format: String, args: Array) 🔗

Повертає true, якщо наданий XrResult (приведений до цілого числа) є успішним. Інакше повертає false і друкує XrResult, перетворений на рядок, із зазначеними додатковими відомостями.