OpenXRAPIExtension
继承: RefCounted < Object
为 GDExtension 提供 OpenXR API。
描述
OpenXRAPIExtension 使 OpenXR 可用于 GDExtension。它通过 get_instance_proc_addr 方法向 GDExtension 提供 OpenXR API,并通过 get_instance 提供 OpenXR 实例。
它还提供了用于查询 OpenXR 初始化状态的方法,以及便于通过 GDExtension 使用 API 的辅助方法。
教程
方法
get_error_string(result: int) | |
get_hand_tracker(hand_index: int) | |
get_instance_proc_addr(name: String) | |
get_swapchain_format_name(swapchain_format: int) | |
openxr_is_enabled(check_run_in_editor: bool) static | |
void | register_composition_layer_provider(extension: OpenXRExtensionWrapperExtension) |
void | set_emulate_environment_blend_mode_alpha_blend(enabled: bool) |
transform_from_pose(pose: | |
void | unregister_composition_layer_provider(extension: OpenXRExtensionWrapperExtension) |
枚举
enum 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
表示模拟 XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND。
方法说明
如果 OpenXR 已为使用 XR 视口进行渲染而初始化,则返回 true
。
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 函数的实用宏,例如, GDEXTENSION_INIT_XR_FUNC_V(xrCreateAction)
。
返回下一帧的预测显示时间。
返回播放空间,它是一个被转换为整数的 XrSpace。
int get_predicted_display_time() 🔗
返回当前帧的预测显示时间。
返回该 OpenXR 会话,它是一个被转换为整数的 XrSession。
String get_swapchain_format_name(swapchain_format: int) 🔗
返回指定交换链格式的名称。
返回系统的 id,它是一个被转换为整数的 XrSystemId。
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 register_composition_layer_provider(extension: OpenXRExtensionWrapperExtension) 🔗
将给定扩展注册为组合层提供器。
void set_emulate_environment_blend_mode_alpha_blend(enabled: bool) 🔗
如果设置为 true
,则会加载 OpenXR 扩展,该扩展能够模拟 XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND 混合模式。
Transform3D transform_from_pose(pose: const void*
) 🔗
从 XrPosef 创建一个 Transform3D 。
void unregister_composition_layer_provider(extension: OpenXRExtensionWrapperExtension) 🔗
取消将给定扩展注册为组合层提供器。
bool xr_result(result: int, format: String, args: Array) 🔗
如果提供的 XrResult(转换为整数)是成功的,则返回 true
。否则返回 false
并打印被转换为字符串的 XrResult ,以及指定的附加信息。