OpenXRExtensionWrapperExtension
继承: Object
允许客户端使用 GDExtension 实现 OpenXR 扩展。
描述
OpenXRExtensionWrapperExtension 允许客户端使用 GDExtension 实现 OpenXR 扩展。扩展应该使用 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() 🔗
注册扩展程序。这应该发生在核心模块初始化级别。