diff options
Diffstat (limited to 'modules/openxr/openxr_api.h')
-rw-r--r-- | modules/openxr/openxr_api.h | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/modules/openxr/openxr_api.h b/modules/openxr/openxr_api.h index 7ec622364b..615643591f 100644 --- a/modules/openxr/openxr_api.h +++ b/modules/openxr/openxr_api.h @@ -57,6 +57,15 @@ class OpenXRInterface; class OpenXRAPI { +public: + struct OpenXRSwapChainInfo { + XrSwapchain swapchain = XR_NULL_HANDLE; + void *swapchain_graphics_data = nullptr; + uint32_t image_index = 0; + bool image_acquired = false; + bool skip_acquire_swapchain = false; + }; + private: // our singleton static OpenXRAPI *singleton; @@ -137,14 +146,8 @@ private: OPENXR_SWAPCHAIN_MAX }; - struct OpenXRSwapChainInfo { - XrSwapchain swapchain = XR_NULL_HANDLE; - void *swapchain_graphics_data = nullptr; - uint32_t image_index = 0; - bool image_acquired = false; - bool skip_acquire_swapchain = false; - }; - + int64_t color_swapchain_format = 0; + int64_t depth_swapchain_format = 0; OpenXRSwapChainInfo swapchains[OPENXR_SWAPCHAIN_MAX]; XrSpace play_space = XR_NULL_HANDLE; @@ -241,11 +244,6 @@ private: bool create_swapchains(); void destroy_session(); - // swapchains - bool create_swapchain(XrSwapchainUsageFlags p_usage_flags, int64_t p_swapchain_format, uint32_t p_width, uint32_t p_height, uint32_t p_sample_count, uint32_t p_array_size, XrSwapchain &r_swapchain, void **r_swapchain_graphics_data); - bool acquire_image(OpenXRSwapChainInfo &p_swapchain); - bool release_image(OpenXRSwapChainInfo &p_swapchain); - // action map struct Tracker { // Trackers represent tracked physical objects such as controllers, pucks, etc. String name; // Name for this tracker (i.e. "/user/hand/left") @@ -405,6 +403,14 @@ public: // Play space. Size2 get_play_space_bounds() const; + // swapchains + int64_t get_color_swapchain_format() const { return color_swapchain_format; } + bool create_swapchain(XrSwapchainCreateFlags p_create_flags, XrSwapchainUsageFlags p_usage_flags, int64_t p_swapchain_format, uint32_t p_width, uint32_t p_height, uint32_t p_sample_count, uint32_t p_array_size, XrSwapchain &r_swapchain, void **r_swapchain_graphics_data); + void free_swapchain(OpenXRSwapChainInfo &p_swapchain); + bool acquire_image(OpenXRSwapChainInfo &p_swapchain); + RID get_image(OpenXRSwapChainInfo &p_swapchain); + bool release_image(OpenXRSwapChainInfo &p_swapchain); + // action map String get_default_action_map_resource_name(); |