From f9625d1d56482a2c8fce4a2d4743d36607fc639d Mon Sep 17 00:00:00 2001 From: emersion Date: Sat, 7 Jul 2018 10:30:52 +0100 Subject: Split renderer --- include/sway/output.h | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'include/sway/output.h') diff --git a/include/sway/output.h b/include/sway/output.h index e6fe55c6..b6cda83c 100644 --- a/include/sway/output.h +++ b/include/sway/output.h @@ -38,6 +38,16 @@ struct sway_output { } events; }; +/** + * Contains a surface's root geometry information. For instance, when rendering + * a popup, this will contain the parent view's position and size. + */ +struct root_geometry { + double x, y; + int width, height; + float rotation; +}; + void output_damage_whole(struct sway_output *output); void output_damage_surface(struct sway_output *output, double ox, double oy, @@ -56,6 +66,35 @@ struct sway_container *output_by_name(const char *name); void output_enable(struct sway_output *output); bool output_has_opaque_lockscreen(struct sway_output *output, - struct sway_seat *seat); + struct sway_seat *seat); + +struct sway_container *output_get_active_workspace(struct sway_output *output); + +void output_render(struct sway_output *output, struct timespec *when, + pixman_region32_t *damage); + +bool output_get_surface_box(struct root_geometry *geo, + struct sway_output *output, struct wlr_surface *surface, int sx, int sy, + struct wlr_box *surface_box); + +void output_surface_for_each_surface(struct wlr_surface *surface, + double ox, double oy, struct root_geometry *geo, + wlr_surface_iterator_func_t iterator, void *user_data); + +void output_view_for_each_surface(struct sway_view *view, + struct sway_output *output, struct root_geometry *geo, + wlr_surface_iterator_func_t iterator, void *user_data); + +void output_layer_for_each_surface(struct wl_list *layer_surfaces, + struct root_geometry *geo, wlr_surface_iterator_func_t iterator, + void *user_data); + +void output_unmanaged_for_each_surface(struct wl_list *unmanaged, + struct sway_output *output, struct root_geometry *geo, + wlr_surface_iterator_func_t iterator, void *user_data); + +void output_drag_icons_for_each_surface(struct wl_list *drag_icons, + struct sway_output *output, struct root_geometry *geo, + wlr_surface_iterator_func_t iterator, void *user_data); #endif -- cgit v1.2.3-54-g00ecf