OpenXRAPIExtension

继承: RefCounted < Object

为 GDExtension 提供 OpenXR API。

描述

OpenXRAPIExtension 使 OpenXR 可用于 GDExtension。它通过 get_instance_proc_addr 方法向 GDExtension 提供 OpenXR API,并通过 get_instance 提供 OpenXR 实例。

它还提供了用于查询 OpenXR 初始化状态的方法,以及便于通过 GDExtension 使用 API 的辅助方法。

教程

方法

bool

can_render()

String

get_error_string(result: int)

int

get_hand_tracker(hand_index: int)

int

get_instance()

int

get_instance_proc_addr(name: String)

int

get_next_frame_time()

int

get_play_space()

int

get_predicted_display_time()

int

get_session()

String

get_swapchain_format_name(swapchain_format: int)

int

get_system_id()

OpenXRAlphaBlendModeSupport

is_environment_blend_mode_alpha_supported()

bool

is_initialized()

bool

is_running()

bool

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)

Transform3D

transform_from_pose(pose: const void*)

void

unregister_composition_layer_provider(extension: OpenXRExtensionWrapperExtension)

bool

xr_result(result: int, format: String, args: Array)


枚举

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


方法说明

bool can_render() 🔗

如果 OpenXR 已为使用 XR 视口进行渲染而初始化,则返回 true


String get_error_string(result: int) 🔗

返回给定 XrResult 对应的错误字符串。


int get_hand_tracker(hand_index: int) 🔗

返回给定手索引值的相应 XRHandTrackerEXT 句柄。


int get_instance() 🔗

返回 OpenXR API 初始化过程中创建的 XrInstance


int get_instance_proc_addr(name: String) 🔗

返回具有指定名称的 OpenXR 函数的函数指针,转换为整数。如果给定名称的函数不存在,该方法返回 0

注意:openxr/util.h 包含用于获取 OpenXR 函数的实用宏,例如, GDEXTENSION_INIT_XR_FUNC_V(xrCreateAction)


int get_next_frame_time() 🔗

返回下一帧的预测显示时间。


int get_play_space() 🔗

返回播放空间,它是一个被转换为整数的 XrSpace


int get_predicted_display_time() 🔗

返回当前帧的预测显示时间。


int get_session() 🔗

返回该 OpenXR 会话,它是一个被转换为整数的 XrSession


String get_swapchain_format_name(swapchain_format: int) 🔗

返回指定交换链格式的名称。


int get_system_id() 🔗

返回系统的 id,它是一个被转换为整数的 XrSystemId


OpenXRAlphaBlendModeSupport is_environment_blend_mode_alpha_supported() 🔗

返回 OpenXRAlphaBlendModeSupport 表示 XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND 是否确实受支持、模拟或根本不支持。


bool is_initialized() 🔗

如果 OpenXR 已初始化,则返回 true


bool is_running() 🔗

如果 OpenXR 正在运行,则返回 truexrBeginSession 已被成功调用并且交换链已被创建)。


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 ,以及指定的附加信息。