OpenXRExtensionWrapperExtension

继承: Object

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

描述

OpenXRExtensionWrapperExtension 允许客户端使用 S3Extension 实现 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_post_draw_viewport(viewport: RID) virtual

void

_on_pre_draw_viewport(viewport: RID) 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_android_surface_swapchain_create_info_and_get_next_pointer(property_values: Dictionary, next_pointer: 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_projection_views_and_get_next_pointer(view_index: int, 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_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 创建的 Android 屏幕交换链添加了额外的数据结构。

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

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