OpenXRExtensionWrapperExtension

继承: Object

允许客户端使用 GDExtension 实现 OpenXR 扩展。

描述

OpenXRExtensionWrapperExtension 允许客户端使用 GDExtension 实现 OpenXR 扩展。扩展应该使用 register_extension_wrapper 注册。

方法

int

_get_composition_layer(index: int) virtual

int

_get_composition_layer_count() virtual

int

_get_composition_layer_order(index: int) virtual

Dictionary

_get_requested_extensions() virtual

PackedStringArray

_get_suggested_tracker_names() virtual

Array[Dictionary]

_get_viewport_composition_layer_extension_properties() virtual

Dictionary

_get_viewport_composition_layer_extension_property_defaults() virtual

void

_on_before_instance_created() virtual

bool

_on_event_polled(event: const void) virtual

void

_on_instance_created(instance: int) virtual

void

_on_instance_destroyed() virtual

void

_on_main_swapchains_created() virtual

void

_on_pre_render() virtual

void

_on_process() virtual

void

_on_register_metadata() virtual

void

_on_session_created(session: int) virtual

void

_on_session_destroyed() virtual

void

_on_state_exiting() virtual

void

_on_state_focused() virtual

void

_on_state_idle() virtual

void

_on_state_loss_pending() virtual

void

_on_state_ready() virtual

void

_on_state_stopping() virtual

void

_on_state_synchronized() virtual

void

_on_state_visible() virtual

void

_on_viewport_composition_layer_destroyed(layer: const void) virtual

int

_set_hand_joint_locations_and_get_next_pointer(hand_index: int, next_pointer: void) virtual

int

_set_instance_create_info_and_get_next_pointer(next_pointer: void) virtual

int

_set_session_create_and_get_next_pointer(next_pointer: void) virtual

int

_set_swapchain_create_info_and_get_next_pointer(next_pointer: void) virtual

int

_set_system_properties_and_get_next_pointer(next_pointer: void) virtual

int

_set_viewport_composition_layer_and_get_next_pointer(layer: const void, property_values: Dictionary, next_pointer: void*) virtual

OpenXRAPIExtension

get_openxr_api()

void

register_extension_wrapper()


方法说明

int _get_composition_layer(index: int) virtual 🔗

返回指向 XrCompositionLayerBaseHeader 结构的指针以提供给定的合成层。

仅当扩展先前使用 OpenXRAPIExtension.register_composition_layer_provider 注册自身时才会调用该函数。


int _get_composition_layer_count() virtual 🔗

通过 _get_composition_layer 返回该扩展包装器提供的合成层数量。

仅当扩展先前使用 OpenXRAPIExtension.register_composition_layer_provider 注册自身时,才会调用该方法。


int _get_composition_layer_order(index: int) virtual 🔗

返回一个整数,该整数将用于对通过 _get_composition_layer 提供的给定合成层进行排序。数字越小,层就越容易移到列表的最前面,数字越大,层就越容易移到列表的最后面。默认投影层的顺序为 0,因此该方法提供的层可能应该位于(但不完全位于)0 的上方或下方。

仅当扩展程序先前使用 OpenXRAPIExtension.register_composition_layer_provider 注册自身时,才会调用该方法。


Dictionary _get_requested_extensions() virtual 🔗

返回与该扩展相关的 OpenXR 扩展的 Dictionary。该 Dictionary 应包含扩展名,映射到 bool * 转换为整数:

  • 如果 bool *nullptr,则该扩展是强制性的。

  • 如果 bool * 指向布尔值,则在启用扩展的情况下,该布尔值将更新为 true


PackedStringArray _get_suggested_tracker_names() virtual 🔗

返回扩展包装器中使用的位置跟踪器名称的 PackedStringArray


Array[Dictionary] _get_viewport_composition_layer_extension_properties() virtual 🔗

获取表示属性的 Dictionary 数组,就像 Object._get_property_list 一样,将被添加到 OpenXRCompositionLayer 节点。


Dictionary _get_viewport_composition_layer_extension_property_defaults() virtual 🔗

获取一个 Dictionary,其中包含 _get_viewport_composition_layer_extension_properties 返回的属性的默认值。


void _on_before_instance_created() virtual 🔗

在创建 OpenXR 实例之前调用。


bool _on_event_polled(event: const void*) virtual 🔗

当有 OpenXR 事件需要处理时调用。实现时,如果事件已被处理,则返回 true,否则返回 false


void _on_instance_created(instance: int) virtual 🔗

在创建 OpenXR 实例后立即调用。


void _on_instance_destroyed() virtual 🔗

在 OpenXR 实例被销毁之前调用。


void _on_main_swapchains_created() virtual 🔗

在主交换链(重新)创建后立即调用。


void _on_pre_render() virtual 🔗

在 XR 视口开始其渲染步进之前调用。


void _on_process() virtual 🔗

作为 OpenXR 进程处理的一部分调用。这发生在主循环的一般和物理处理步进之前。在该步进中,控制器数据被查询并可供游戏逻辑使用。


void _on_register_metadata() virtual 🔗

允许扩展注册额外的控制器元数据。即使 OpenXR API 未被构造,也会调用该函数,因为元数据需要可供编辑器使用。

扩展还应该提供元数据,无论主机系统是否支持它们。控制器数据用于为可以访问相关硬件的用户设置动作映射。


void _on_session_created(session: int) virtual 🔗

在创建 OpenXR 会话后立即调用。


void _on_session_destroyed() virtual 🔗

在 OpenXR 会话被销毁之前调用。


void _on_state_exiting() virtual 🔗

当 OpenXR 会话状态被更改为退出时调用。


void _on_state_focused() virtual 🔗

当 OpenXR 会话状态被更改为聚焦时调用。该状态是游戏运行时的活动状态。


void _on_state_idle() virtual 🔗

当 OpenXR 会话状态被更改为空闲时调用。


void _on_state_loss_pending() virtual 🔗

当 OpenXR 会话状态被更改为丢失挂起时调用。


void _on_state_ready() virtual 🔗

当 OpenXR 会话状态被更改为就绪时调用。这意味着 OpenXR 已准备好建立会话。


void _on_state_stopping() virtual 🔗

当 OpenXR 会话状态被更改为停止时调用。


void _on_state_synchronized() virtual 🔗

当 OpenXR 会话状态被更改为同步时调用。当应用程序失去焦点时,OpenXR 也会返回到该状态。


void _on_state_visible() virtual 🔗

当 OpenXR 会话状态被更改为可见时调用。这意味着 OpenXR 现在已准备好接收帧。


void _on_viewport_composition_layer_destroyed(layer: const void*) virtual 🔗

当通过 OpenXRCompositionLayer 创建的合成层被销毁时调用。

layer 是指向 XrCompositionLayerBaseHeader 结构的指针。


int _set_hand_joint_locations_and_get_next_pointer(hand_index: int, next_pointer: void*) virtual 🔗

当每个手部跟踪器被创建时添加额外的数据结构。


int _set_instance_create_info_and_get_next_pointer(next_pointer: void*) virtual 🔗

创建 OpenXR 实例时添加额外的数据结构。


int _set_session_create_and_get_next_pointer(next_pointer: void*) virtual 🔗

创建 OpenXR 会话时添加额外的数据结构。


int _set_swapchain_create_info_and_get_next_pointer(next_pointer: void*) virtual 🔗

创建 OpenXR 交换链时添加额外的数据结构。


int _set_system_properties_and_get_next_pointer(next_pointer: void*) virtual 🔗

在询问 OpenXR 系统功能时添加额外的数据结构。


int _set_viewport_composition_layer_and_get_next_pointer(layer: const void*, property_values: Dictionary, next_pointer: void*) virtual 🔗

向由 OpenXRCompositionLayer 创建的合成层添加其他数据结构。

property_values 包含 _get_viewport_composition_layer_extension_properties 返回的属性值。

layer 是指向 XrCompositionLayerBaseHeader 结构的指针。


OpenXRAPIExtension get_openxr_api() 🔗

返回创建的 OpenXRAPIExtension,可用于访问 OpenXR API。


void register_extension_wrapper() 🔗

注册扩展程序。这应该发生在核心模块初始化级别。