mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-03-02 20:56:34 +00:00
ipc+comp: Use new xrt_layer_data and friends struct
This commit is contained in:
parent
5912964ded
commit
320c9ab3cb
src/xrt
|
@ -319,7 +319,7 @@ compositor_layer_stereo_projection(struct xrt_compositor *xc,
|
|||
uint32_t layer_id = c->slots[slot_id].num_layers;
|
||||
|
||||
struct comp_layer *layer = &c->slots[slot_id].layers[layer_id];
|
||||
struct comp_layer_data *data = &layer->data;
|
||||
struct xrt_layer_data *data = &layer->data;
|
||||
layer->scs[0] = comp_swapchain(l_sc);
|
||||
layer->scs[1] = comp_swapchain(r_sc);
|
||||
|
||||
|
@ -358,9 +358,9 @@ compositor_layer_quad(struct xrt_compositor *xc,
|
|||
uint32_t layer_id = c->slots[slot_id].num_layers;
|
||||
|
||||
struct comp_layer *layer = &c->slots[slot_id].layers[layer_id];
|
||||
struct comp_layer_data *data = &layer->data;
|
||||
struct xrt_layer_data *data = &layer->data;
|
||||
layer->scs[0] = comp_swapchain(sc);
|
||||
layer->scs[0] = NULL;
|
||||
layer->scs[1] = NULL;
|
||||
|
||||
data->quad.visibility = visibility;
|
||||
data->quad.image_index = image_index;
|
||||
|
@ -393,10 +393,10 @@ compositor_layer_commit(struct xrt_compositor *xc)
|
|||
|
||||
for (uint32_t i = 0; i < num_layers; i++) {
|
||||
struct comp_layer *layer = &c->slots[slot_id].layers[i];
|
||||
struct comp_layer_data *data = &layer->data;
|
||||
struct xrt_layer_data *data = &layer->data;
|
||||
switch (data->type) {
|
||||
case XRT_LAYER_QUAD: {
|
||||
struct comp_layer_quad *quad = &layer->data.quad;
|
||||
struct xrt_layer_quad_data *quad = &layer->data.quad;
|
||||
struct comp_swapchain_image *image;
|
||||
image = &layer->scs[0]->images[quad->image_index];
|
||||
comp_renderer_set_quad_layer(c->r, image, &quad->pose,
|
||||
|
@ -404,7 +404,8 @@ compositor_layer_commit(struct xrt_compositor *xc)
|
|||
i, quad->array_index);
|
||||
} break;
|
||||
case XRT_LAYER_STEREO_PROJECTION: {
|
||||
struct comp_layer_stereo *stereo = &data->stereo;
|
||||
struct xrt_layer_stereo_projection_data *stereo =
|
||||
&data->stereo;
|
||||
struct comp_swapchain_image *right;
|
||||
struct comp_swapchain_image *left;
|
||||
left = &layer->scs[0]->images[stereo->l.image_index];
|
||||
|
|
|
@ -96,35 +96,6 @@ struct comp_layer_quad
|
|||
struct xrt_vec2 size;
|
||||
};
|
||||
|
||||
/*!
|
||||
* A stereo projection layer.
|
||||
*
|
||||
* @ingroup comp_main
|
||||
* @see comp_layer
|
||||
*/
|
||||
struct comp_layer_stereo
|
||||
{
|
||||
struct
|
||||
{
|
||||
uint32_t image_index;
|
||||
uint32_t array_index;
|
||||
} l, r;
|
||||
};
|
||||
|
||||
struct comp_layer_data
|
||||
{
|
||||
enum xrt_layer_type type;
|
||||
enum xrt_layer_composition_flags flags;
|
||||
int64_t timestamp;
|
||||
|
||||
bool flip_y;
|
||||
|
||||
union {
|
||||
struct comp_layer_quad quad;
|
||||
struct comp_layer_stereo stereo;
|
||||
};
|
||||
};
|
||||
|
||||
/*!
|
||||
* A single layer.
|
||||
*
|
||||
|
@ -135,7 +106,7 @@ struct comp_layer
|
|||
{
|
||||
struct comp_swapchain *scs[2];
|
||||
|
||||
struct comp_layer_data data;
|
||||
struct xrt_layer_data data;
|
||||
};
|
||||
|
||||
/*!
|
||||
|
|
|
@ -364,8 +364,8 @@ ipc_compositor_layer_stereo_projection(
|
|||
struct ipc_shared_memory *ism = icc->ipc_c->ism;
|
||||
struct ipc_layer_slot *slot = &ism->slots[icc->layers.slot_id];
|
||||
struct ipc_layer_entry *layer = &slot->layers[icc->layers.num_layers];
|
||||
struct ipc_layer_data *data = &layer->data;
|
||||
struct ipc_layer_stereo_projection *stereo = &data->stereo;
|
||||
struct xrt_layer_data *data = &layer->data;
|
||||
struct xrt_layer_stereo_projection_data *stereo = &data->stereo;
|
||||
struct ipc_client_swapchain *l = ipc_client_swapchain(l_sc);
|
||||
struct ipc_client_swapchain *r = ipc_client_swapchain(r_sc);
|
||||
|
||||
|
@ -416,8 +416,8 @@ ipc_compositor_layer_quad(struct xrt_compositor *xc,
|
|||
struct ipc_shared_memory *ism = icc->ipc_c->ism;
|
||||
struct ipc_layer_slot *slot = &ism->slots[icc->layers.slot_id];
|
||||
struct ipc_layer_entry *layer = &slot->layers[icc->layers.num_layers];
|
||||
struct ipc_layer_data *data = &layer->data;
|
||||
struct ipc_layer_quad *quad = &data->quad;
|
||||
struct xrt_layer_data *data = &layer->data;
|
||||
struct xrt_layer_quad_data *quad = &data->quad;
|
||||
struct ipc_client_swapchain *ics = ipc_client_swapchain(sc);
|
||||
|
||||
layer->xdev_id = 0; //! @todo Real id.
|
||||
|
|
|
@ -73,51 +73,12 @@ struct ipc_shared_device
|
|||
uint32_t first_output_index;
|
||||
};
|
||||
|
||||
struct ipc_layer_stereo_projection
|
||||
{
|
||||
struct
|
||||
{
|
||||
uint32_t image_index;
|
||||
uint32_t array_index;
|
||||
|
||||
struct xrt_rect rect;
|
||||
struct xrt_fov fov;
|
||||
struct xrt_pose pose;
|
||||
} l, r;
|
||||
};
|
||||
|
||||
struct ipc_layer_quad
|
||||
{
|
||||
enum xrt_layer_eye_visibility visibility;
|
||||
|
||||
uint32_t image_index;
|
||||
uint32_t array_index;
|
||||
|
||||
struct xrt_rect rect;
|
||||
struct xrt_pose pose;
|
||||
struct xrt_vec2 size;
|
||||
};
|
||||
|
||||
struct ipc_layer_data
|
||||
{
|
||||
enum xrt_layer_type type;
|
||||
enum xrt_input_name name;
|
||||
uint64_t timestamp;
|
||||
enum xrt_layer_composition_flags flags;
|
||||
bool flip_y;
|
||||
|
||||
union {
|
||||
struct ipc_layer_quad quad;
|
||||
struct ipc_layer_stereo_projection stereo;
|
||||
};
|
||||
};
|
||||
|
||||
struct ipc_layer_entry
|
||||
{
|
||||
uint32_t xdev_id;
|
||||
uint32_t swapchain_ids[2];
|
||||
|
||||
struct ipc_layer_data data;
|
||||
struct xrt_layer_data data;
|
||||
};
|
||||
|
||||
struct ipc_layer_slot
|
||||
|
|
Loading…
Reference in a new issue