diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-07-07 05:09:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-07 05:09:13 -0700 |
commit | c498c73b6d70bfd13337dd5fe10260d0058f125c (patch) | |
tree | 1e3109750e276782e331ba70f1dfc70bb987c46c /include/sway/output.h | |
parent | c523a14ae1f82958d42b20e90363f41c7a5f227a (diff) | |
parent | f9625d1d56482a2c8fce4a2d4743d36607fc639d (diff) |
Merge pull request #2224 from emersion/split-renderer
Split renderer
Diffstat (limited to 'include/sway/output.h')
-rw-r--r-- | include/sway/output.h | 41 |
1 files changed, 40 insertions, 1 deletions
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 |