c/main: Add support for depth projection

This commit is contained in:
Jakob Bornecrantz committed 2020-08-25 14:55:43 +01:00
1 parent efac59a1d8
commit 8356308bf9
1 file changed
+26
+26
View File
@@ -339,6 +339,30 @@ compositor_layer_stereo_projection(struct xrt_compositor *xc,
return XRT_SUCCESS;
}
static xrt_result_t
compositor_layer_stereo_projection_depth(struct xrt_compositor *xc,
struct xrt_device *xdev,
struct xrt_swapchain *l_xsc,
struct xrt_swapchain *r_xsc,
struct xrt_swapchain *l_d_xsc,
struct xrt_swapchain *r_d_xsc,
struct xrt_layer_data *data)
{
struct comp_compositor *c = comp_compositor(xc);
// Without IPC we only have one slot
uint32_t slot_id = 0;
uint32_t layer_id = c->slots[slot_id].num_layers;
struct comp_layer *layer = &c->slots[slot_id].layers[layer_id];
layer->scs[0] = comp_swapchain(l_xsc);
layer->scs[1] = comp_swapchain(r_xsc);
layer->data = *data;
c->slots[slot_id].num_layers++;
return XRT_SUCCESS;
}
static xrt_result_t
do_single(struct xrt_compositor *xc,
struct xrt_device *xdev,
@@ -1099,6 +1123,8 @@ xrt_gfx_provider_create_native(struct xrt_device *xdev)
c->base.base.layer_begin = compositor_layer_begin;
c->base.base.layer_stereo_projection =
compositor_layer_stereo_projection;
c->base.base.layer_stereo_projection_depth =
compositor_layer_stereo_projection_depth;
c->base.base.layer_quad = compositor_layer_quad;
c->base.base.layer_cube = compositor_layer_cube;
c->base.base.layer_cylinder = compositor_layer_cylinder;