output->base.repaint = drm_output_repaint;
output->base.set_hardware_cursor = drm_output_set_cursor;
output->base.destroy = drm_output_destroy;
+ output->base.assign_planes = NULL;
return 0;
wfd_output_prepare_scanout_surface;
output->base.set_hardware_cursor = wfd_output_set_cursor;
output->base.destroy = wfd_output_destroy;
+ output->base.assign_planes = NULL;
wl_list_insert(ec->base.output_list.prev, &output->base.link);
output->base.repaint = wayland_output_repaint;
output->base.set_hardware_cursor = wayland_output_set_cursor;
output->base.destroy = wayland_output_destroy;
+ output->base.assign_planes = NULL;
wl_list_insert(c->base.output_list.prev, &output->base.link);
output->base.repaint = x11_output_repaint;
output->base.set_hardware_cursor = x11_output_set_cursor;
output->base.destroy = x11_output_destroy;
+ output->base.assign_planes = NULL;
wl_list_insert(c->base.output_list.prev, &output->base.link);
&es->transform.boundingbox);
}
+ if (output->assign_planes)
+ /*
+ * This will queue flips for the fbs and sprites where
+ * applicable and clear the damage for those surfaces.
+ * The repaint loop below will repaint everything
+ * else.
+ */
+ output->assign_planes(output);
+
weston_output_set_cursor(output, ec->input_device);
wl_list_for_each(es, &ec->surface_list, link) {
int (*set_hardware_cursor)(struct weston_output *output,
struct weston_input_device *input);
void (*destroy)(struct weston_output *output);
+ void (*assign_planes)(struct weston_output *output);
};
struct weston_input_device {