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...
OpenXRAPIExtension
继承: RefCounted < Object
为 GDExtension 提供 OpenXR API。
描述
OpenXRAPIExtension 使 OpenXR 可用于 GDExtension。它通过 get_instance_proc_addr() 方法向 GDExtension 提供 OpenXR API,并通过 get_instance() 提供 OpenXR 实例。
它还提供了用于查询 OpenXR 初始化状态的方法,以及便于通过 GDExtension 使用 API 的辅助方法。
教程
方法
枚举
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
方法说明
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) 🔗
返回与名称匹配的动作
所对应的 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 函数的实用宏,例如, GDEXTENSION_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 ,以及指定的附加信息。