backend-x11: store backend on struct x11_output
To avoid retrieving the backend from the compositor all the time, store a pointer to the x11 backend on its x11_output structures. This will be useful once the compositor contains more than one backend. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
This commit is contained in:
parent
edb4ac4bf7
commit
ce6c8e8fd6
@ -127,6 +127,7 @@ struct x11_head {
|
|||||||
|
|
||||||
struct x11_output {
|
struct x11_output {
|
||||||
struct weston_output base;
|
struct weston_output base;
|
||||||
|
struct x11_backend *backend;
|
||||||
|
|
||||||
xcb_window_t window;
|
xcb_window_t window;
|
||||||
struct weston_mode mode;
|
struct weston_mode mode;
|
||||||
@ -449,7 +450,6 @@ static void
|
|||||||
set_clip_for_output(struct weston_output *output_base, pixman_region32_t *region)
|
set_clip_for_output(struct weston_output *output_base, pixman_region32_t *region)
|
||||||
{
|
{
|
||||||
struct x11_output *output = to_x11_output(output_base);
|
struct x11_output *output = to_x11_output(output_base);
|
||||||
struct weston_compositor *ec;
|
|
||||||
struct x11_backend *b;
|
struct x11_backend *b;
|
||||||
pixman_region32_t transformed_region;
|
pixman_region32_t transformed_region;
|
||||||
pixman_box32_t *rects;
|
pixman_box32_t *rects;
|
||||||
@ -461,8 +461,7 @@ set_clip_for_output(struct weston_output *output_base, pixman_region32_t *region
|
|||||||
if (!output)
|
if (!output)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ec = output->base.compositor;
|
b = output->backend;
|
||||||
b = to_x11_backend(ec);
|
|
||||||
|
|
||||||
pixman_region32_init(&transformed_region);
|
pixman_region32_init(&transformed_region);
|
||||||
weston_region_global_to_output(&transformed_region,
|
weston_region_global_to_output(&transformed_region,
|
||||||
@ -512,7 +511,7 @@ x11_output_repaint_shm(struct weston_output *output_base,
|
|||||||
assert(output);
|
assert(output);
|
||||||
|
|
||||||
ec = output->base.compositor;
|
ec = output->base.compositor;
|
||||||
b = to_x11_backend(ec);
|
b = output->backend;
|
||||||
|
|
||||||
pixman_renderer_output_set_buffer(output_base, output->hw_surface);
|
pixman_renderer_output_set_buffer(output_base, output->hw_surface);
|
||||||
ec->renderer->repaint_output(output_base, damage);
|
ec->renderer->repaint_output(output_base, damage);
|
||||||
@ -828,7 +827,7 @@ x11_output_switch_mode(struct weston_output *base, struct weston_mode *mode)
|
|||||||
|
|
||||||
assert(output);
|
assert(output);
|
||||||
|
|
||||||
b = to_x11_backend(base->compositor);
|
b = output->backend;
|
||||||
|
|
||||||
if (mode->width == output->mode.width &&
|
if (mode->width == output->mode.width &&
|
||||||
mode->height == output->mode.height)
|
mode->height == output->mode.height)
|
||||||
@ -880,7 +879,7 @@ x11_output_disable(struct weston_output *base)
|
|||||||
|
|
||||||
assert(output);
|
assert(output);
|
||||||
|
|
||||||
backend = to_x11_backend(base->compositor);
|
backend = output->backend;
|
||||||
|
|
||||||
if (!output->base.enabled)
|
if (!output->base.enabled)
|
||||||
return 0;
|
return 0;
|
||||||
@ -922,7 +921,7 @@ x11_output_enable(struct weston_output *base)
|
|||||||
|
|
||||||
assert(output);
|
assert(output);
|
||||||
|
|
||||||
b = to_x11_backend(base->compositor);
|
b = output->backend;
|
||||||
|
|
||||||
static const char name[] = "Weston Compositor";
|
static const char name[] = "Weston Compositor";
|
||||||
static const char class[] = "weston-1\0Weston Compositor";
|
static const char class[] = "weston-1\0Weston Compositor";
|
||||||
@ -1100,7 +1099,7 @@ x11_output_set_size(struct weston_output *base, int width, int height)
|
|||||||
if (!output)
|
if (!output)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
b = to_x11_backend(base->compositor);
|
b = output->backend;
|
||||||
scrn = b->screen;
|
scrn = b->screen;
|
||||||
|
|
||||||
/* We can only be called once. */
|
/* We can only be called once. */
|
||||||
@ -1169,6 +1168,8 @@ x11_output_create(struct weston_backend *backend, const char *name)
|
|||||||
output->base.enable = x11_output_enable;
|
output->base.enable = x11_output_enable;
|
||||||
output->base.attach_head = NULL;
|
output->base.attach_head = NULL;
|
||||||
|
|
||||||
|
output->backend = b;
|
||||||
|
|
||||||
weston_compositor_add_pending_output(&output->base, compositor);
|
weston_compositor_add_pending_output(&output->base, compositor);
|
||||||
|
|
||||||
return &output->base;
|
return &output->base;
|
||||||
|
Loading…
Reference in New Issue
Block a user