OpenXR: Change timing of xrWaitFrame and add thread safety features to OpenXR
This commit is contained in:
@@ -122,17 +122,21 @@ public:
|
||||
|
||||
/** rendering and internal **/
|
||||
|
||||
// These methods are called from the main thread.
|
||||
virtual Transform3D get_camera_transform() = 0; /* returns the position of our camera, only used for updating reference frame. For monoscopic this is equal to the views transform, for stereoscopic this should be an average */
|
||||
virtual void process() = 0;
|
||||
|
||||
// These methods can be called from both main and render thread.
|
||||
virtual Size2 get_render_target_size() = 0; /* returns the recommended render target size per eye for this device */
|
||||
virtual uint32_t get_view_count() = 0; /* returns the view count we need (1 is monoscopic, 2 is stereoscopic but can be more) */
|
||||
virtual Transform3D get_camera_transform() = 0; /* returns the position of our camera for updating our camera node. For monoscopic this is equal to the views transform, for stereoscopic this should be an average */
|
||||
|
||||
// These methods are called from the rendering thread.
|
||||
virtual Transform3D get_transform_for_view(uint32_t p_view, const Transform3D &p_cam_transform) = 0; /* get each views transform */
|
||||
virtual Projection get_projection_for_view(uint32_t p_view, double p_aspect, double p_z_near, double p_z_far) = 0; /* get each view projection matrix */
|
||||
virtual RID get_vrs_texture(); /* obtain VRS texture */
|
||||
virtual RID get_color_texture(); /* obtain color output texture (if applicable) */
|
||||
virtual RID get_depth_texture(); /* obtain depth output texture (if applicable, used for reprojection) */
|
||||
virtual RID get_velocity_texture(); /* obtain velocity output texture (if applicable, used for spacewarp) */
|
||||
|
||||
virtual void process() = 0;
|
||||
virtual void pre_render(){};
|
||||
virtual bool pre_draw_viewport(RID p_render_target) { return true; }; /* inform XR interface we are about to start our viewport draw process */
|
||||
virtual Vector<BlitToScreen> post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) = 0; /* inform XR interface we finished our viewport draw process */
|
||||
|
||||
Reference in New Issue
Block a user