You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-10 13:00:37 +00:00
Adding getters to RenderTarget and implementing override functionality for XR
This commit is contained in:
@@ -120,15 +120,28 @@ private:
|
||||
|
||||
OpenXRGraphicsExtensionWrapper *graphics_extension = nullptr;
|
||||
XrSystemGraphicsProperties graphics_properties;
|
||||
void *swapchain_graphics_data = nullptr;
|
||||
uint32_t image_index = 0;
|
||||
bool image_acquired = false;
|
||||
|
||||
uint32_t view_count = 0;
|
||||
XrViewConfigurationView *view_configuration_views = nullptr;
|
||||
XrView *views = nullptr;
|
||||
XrCompositionLayerProjectionView *projection_views = nullptr;
|
||||
XrSwapchain swapchain = XR_NULL_HANDLE;
|
||||
XrCompositionLayerDepthInfoKHR *depth_views = nullptr; // Only used by Composition Layer Depth Extension if available
|
||||
|
||||
enum OpenXRSwapChainTypes {
|
||||
OPENXR_SWAPCHAIN_COLOR,
|
||||
OPENXR_SWAPCHAIN_DEPTH,
|
||||
// OPENXR_SWAPCHAIN_VELOCITY,
|
||||
OPENXR_SWAPCHAIN_MAX
|
||||
};
|
||||
|
||||
struct OpenXRSwapChainInfo {
|
||||
XrSwapchain swapchain = XR_NULL_HANDLE;
|
||||
void *swapchain_graphics_data = nullptr;
|
||||
uint32_t image_index = 0;
|
||||
bool image_acquired = false;
|
||||
};
|
||||
|
||||
OpenXRSwapChainInfo swapchains[OPENXR_SWAPCHAIN_MAX];
|
||||
|
||||
XrSpace play_space = XR_NULL_HANDLE;
|
||||
XrSpace view_space = XR_NULL_HANDLE;
|
||||
@@ -212,13 +225,13 @@ private:
|
||||
bool setup_spaces();
|
||||
bool load_supported_swapchain_formats();
|
||||
bool is_swapchain_format_supported(int64_t p_swapchain_format);
|
||||
bool create_main_swapchain();
|
||||
bool create_swapchains();
|
||||
void destroy_session();
|
||||
|
||||
// swapchains
|
||||
bool create_swapchain(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(XrSwapchain p_swapchain, uint32_t &r_image_index);
|
||||
bool release_image(XrSwapchain p_swapchain);
|
||||
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.
|
||||
@@ -318,6 +331,8 @@ public:
|
||||
|
||||
void pre_render();
|
||||
bool pre_draw_viewport(RID p_render_target);
|
||||
RID get_color_texture();
|
||||
RID get_depth_texture();
|
||||
void post_draw_viewport(RID p_render_target);
|
||||
void end_frame();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user