OpenXRAPIExtension
繼承: RefCounted < Object
使 OpenXR API 可用於 GDExtension。
說明
OpenXRAPIExtension 使 OpenXR 可用於 GDExtension。它透過 get_instance_proc_addr() 方法向 GDExtension 提供 OpenXR API,並透過 [methodsion API,並透過 [methodsion get_instance get_instance
它還提供了用於查詢 OpenXR 初始化狀態的方法,以及便於透過 GDExtension 使用 API 的輔助方法。
教學
方法
列舉
enum OpenXRAlphaBlendModeSupport: 🔗
OpenXRAlphaBlendModeSupport OPENXR_ALPHA_BLEND_MODE_SUPPORT_NONE = 0
Means that XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND isn't supported at all.
OpenXRAlphaBlendModeSupport OPENXR_ALPHA_BLEND_MODE_SUPPORT_REAL = 1
Means that XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND is really supported.
OpenXRAlphaBlendModeSupport OPENXR_ALPHA_BLEND_MODE_SUPPORT_EMULATING = 2
Means that XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND is emulated.
方法說明
int action_get_handle(action: RID) 🔗
Returns the corresponding XrAction OpenXR handle for the given action RID.
void begin_debug_label_region(label_name: String) 🔗
Begins a new debug label region, this label will be reported in debug messages for any calls following this until end_debug_label_region() is called. Debug labels can be stacked.
如果通訊端是打開的,並且在監聽埠,則返回 true。
void end_debug_label_region() 🔗
Marks the end of a debug label region. Removes the latest debug label region added by calling begin_debug_label_region().
RID find_action(name: String, action_set: RID) 🔗
Returns the RID corresponding to an Action of a matching name, optionally limited to a specified action set.
String get_error_string(result: int) 🔗
回傳給定XrResult.
int get_hand_tracker(hand_index: int) 🔗
Returns the corresponding XRHandTrackerEXT handle for the given hand index value.
Returns the XrInstance created during the initialization of the OpenXR API.
int get_instance_proc_addr(name: String) 🔗
傳回指定名稱的OpenXR函式的函式指針,轉換為整數。如果指定名稱的函式不存在,則該方法傳回0。
注意: openxr/util.h 包含用於取得OpenXR 函式的實用宏,例如GDEXTENSION_INIT_XR_FUNC_V(xrCreateAction)。
Returns the predicted display timing for the next frame.
回傳播放空間,這是一個 XrSpace 轉換為整數。
int get_predicted_display_time() 🔗
Returns the predicted display timing for the current frame.
Returns a pointer to the render state's XrCompositionLayerProjection struct.
Note: This method should only be called from the rendering thread.
float get_render_state_z_far() 🔗
Returns the far boundary value of the camera frustum.
Note: This is only accessible in the render thread.
float get_render_state_z_near() 🔗
Returns the near boundary value of the camera frustum.
Note: This is only accessible in the render thread.
回傳 OpenXR 會話,它是一個 XrSession 轉換為整數。
PackedInt64Array get_supported_swapchain_formats() 🔗
Returns an array of supported swapchain formats.
String get_swapchain_format_name(swapchain_format: int) 🔗
返回指定參數的值。
Returns the id of the system, which is an XrSystemId cast to an integer.
void insert_debug_label(label_name: String) 🔗
Inserts a debug label, this label is reported in any debug message resulting from the OpenXR calls that follows, until any of begin_debug_label_region(), end_debug_label_region(), or insert_debug_label() is called.
OpenXRAlphaBlendModeSupport is_environment_blend_mode_alpha_supported() 🔗
Returns OpenXRAlphaBlendModeSupport denoting if XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND is really supported, emulated or not supported at all.
如果 OpenXR 已初始化,則返回 true。
如果OpenXR 正在運作,則傳回true (xrBeginSession 已成功呼叫並建立了交換鏈)。
bool openxr_is_enabled(check_run_in_editor: bool) static 🔗
如果啟用 OpenXR,則返回 true。
void openxr_swapchain_acquire(swapchain: int) 🔗
Acquires the image of the provided swapchain.
int openxr_swapchain_create(create_flags: int, usage_flags: int, swapchain_format: int, width: int, height: int, sample_count: int, array_size: int) 🔗
Returns a pointer to a new swapchain created using the provided parameters.
void openxr_swapchain_free(swapchain: int) 🔗
Destroys the provided swapchain and frees it from memory.
RID openxr_swapchain_get_image(swapchain: int) 🔗
Returns the RID of the provided swapchain's image.
int openxr_swapchain_get_swapchain(swapchain: int) 🔗
Returns the XrSwapchain handle of the provided swapchain.
void openxr_swapchain_release(swapchain: int) 🔗
Releases the image of the provided swapchain.
void register_composition_layer_provider(extension: OpenXRExtensionWrapper) 🔗
Registers the given extension as a composition layer provider.
void register_frame_info_extension(extension: OpenXRExtensionWrapper) 🔗
Registers the given extension as modifying frame info via the OpenXRExtensionWrapper._set_frame_wait_info_and_get_next_pointer(), OpenXRExtensionWrapper._set_view_locate_info_and_get_next_pointer(), or OpenXRExtensionWrapper._set_frame_end_info_and_get_next_pointer() virtual methods.
void register_projection_views_extension(extension: OpenXRExtensionWrapper) 🔗
Registers the given extension as a provider of additional data structures to projections views.
void set_custom_play_space(space: const void*) 🔗
Sets the reference space used by OpenXR to the given XrSpace (cast to a void *).
void set_emulate_environment_blend_mode_alpha_blend(enabled: bool) 🔗
If set to true, an OpenXR extension is loaded which is capable of emulating the XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND blend mode.
void set_object_name(object_type: int, object_handle: int, object_name: String) 🔗
Set the object name of an OpenXR object, used for debug output. object_type must be a valid OpenXR XrObjectType enum and object_handle must be a valid OpenXR object handle.
void set_render_region(render_region: Rect2i) 🔗
Sets the render region to render_region, overriding the normal render target's rect.
void set_velocity_depth_texture(render_target: RID) 🔗
Sets the render target of the velocity depth texture.
void set_velocity_target_size(target_size: Vector2i) 🔗
Sets the target size of the velocity and velocity depth textures.
void set_velocity_texture(render_target: RID) 🔗
Sets the render target of the velocity texture.
Transform3D transform_from_pose(pose: const void*) 🔗
從 XrPosef.
void unregister_composition_layer_provider(extension: OpenXRExtensionWrapper) 🔗
Unregisters the given extension as a composition layer provider.
void unregister_frame_info_extension(extension: OpenXRExtensionWrapper) 🔗
Unregisters the given extension as modifying frame info.
void unregister_projection_views_extension(extension: OpenXRExtensionWrapper) 🔗
Unregisters the given extension as a provider of additional data structures to projections views.
bool xr_result(result: int, format: String, args: Array) 🔗
如果提供的 XrResult(轉換為整數)成功則回傳true。否則返回 false 並列印 XrResult 轉換為字串,帶有指定的附加資訊。