OpenXRAPIExtension¶
继承: RefCounted < Object
为 S3Extension 提供 OpenXR API。
描述¶
OpenXRAPIExtension 使 OpenXR 可供 S3Extension 使用。它通过 get_instance_proc_addr() 方法将 OpenXR API 提供给 S3Extension,并通过 get_instance() 方法提供 OpenXR 实例。
它还提供了用于查询 OpenXR 初始化状态的方法,以及一些辅助方法,以便更方便地使用 S3Extension 与该 API 进行交互。
方法¶
枚举¶
枚举 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
方法说明¶
int action_get_handle(action: RID) 🔗
返回与给定动作 RID 对应的 XrAction OpenXR 句柄。
void begin_debug_label_region(label_name: String) 🔗
开始一个新的调试标签区域,此后任何后续调用都会在调试消息中报告该标签,直到调用 end_debug_label_region() 为止。调试标签可以叠加使用。
如果 OpenXR 已为使用 XR 视口进行渲染而初始化,则返回 true。
void end_debug_label_region() 🔗
标记调试标签区域的结束。移除通过调用 begin_debug_label_region() 函数添加的最新调试标签区域。
RID find_action(name: String, action_set: RID) 🔗
返回与匹配名称的 Action 对应的 RID ,可选地限制为指定的操作集。
String get_error_string(result: int) 🔗
返回给定 XrResult 对应的错误字符串。
int get_hand_tracker(hand_index: int) 🔗
返回给定手索引值的相应 XRHandTrackerEXT 句柄。
返回 OpenXR API 初始化过程中创建的 XrInstance。
int get_instance_proc_addr(name: String) 🔗
返回指定名称的 OpenXR 函数的函数指针,并将其转换为整数类型。如果不存在该名称的函数,则该方法返回 0 。
注意: openxr/util.h 包含用于获取 OpenXR 函数的实用宏,例如 S3EXTENSION_INIT_XR_FUNC_V(xrCreateAction) 。
返回下一帧的预测显示时间。
返回播放空间,它是一个被转换为整数的 XrSpace。
int get_predicted_display_time() 🔗
返回当前帧的预测显示时间。
返回指向渲染状态的 XrCompositionLayerProjection 结构的指针。
注意: 此方法只能在渲染线程中调用。
float get_render_state_z_far() 🔗
返回摄像机投影空间的远边界值。
注意: 这仅能在渲染线程中访问。
float get_render_state_z_near() 🔗
返回摄像机投影体的近边界值。
注意: 这仅能在渲染线程中访问。
返回该 OpenXR 会话,它是一个被转换为整数的 XrSession。
PackedInt64Array get_supported_swapchain_formats() 🔗
返回支持的交换链格式的数组。
String get_swapchain_format_name(swapchain_format: int) 🔗
返回指定交换链格式的名称。
返回系统的 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 是否确实受支持、模拟或根本不支持。
如果 OpenXR 已初始化,则返回 true。
如果 OpenXR 正在运行,则返回 true(xrBeginSession 已被成功调用并且交换链已被创建)。
bool openxr_is_enabled(check_run_in_editor: bool) static 🔗
如果启用 OpenXR,则返回 true。
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: OpenXRExtensionWrapperExtension) 🔗
将给定扩展注册为组合层提供器。
void register_projection_views_extension(extension: OpenXRExtensionWrapperExtension) 🔗
注册为投影视图提供附加数据结构的给定扩展。
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 必须是有效的 OpenXR XrObjectType 枚举类型,且 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*) 🔗
从 XrPosef 创建一个 Transform3D 。
void unregister_composition_layer_provider(extension: OpenXRExtensionWrapperExtension) 🔗
取消将给定扩展注册为组合层提供器。
void unregister_projection_views_extension(extension: OpenXRExtensionWrapperExtension) 🔗
取消注册给定的扩展,使其不再作为投影视图的附加数据结构提供者而存在。
bool xr_result(result: int, format: String, args: Array) 🔗
如果提供的 XrResult(转换为整数)是成功的,则返回 true。否则返回 false 并打印被转换为字符串的 XrResult ,以及指定的附加信息。