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...
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_post_draw_viewport(viewport: RID) virtual 🔗
给定视口渲染后立即调用。
注意:此时绘制命令可能还在队列中,尚未执行。
void _on_pre_draw_viewport(viewport: RID) 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_android_surface_swapchain_create_info_and_get_next_pointer(property_values: Dictionary, next_pointer: void*
) virtual 🔗
向由 OpenXRCompositionLayer 创建的合成层添加其他数据结构。
property_values
包含 _get_viewport_composition_layer_extension_properties() 返回的属性值。
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_projection_views_and_get_next_pointer(view_index: int, next_pointer: void*
) virtual 🔗
为 view_index
视图的投影视图添加的额外数据结构。
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() 🔗
注册扩展程序。这应该发生在核心模块初始化级别。