aboutsummaryrefslogtreecommitdiff
path: root/include/sway/output.h
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2018-07-07 05:09:13 -0700
committerGitHub <noreply@github.com>2018-07-07 05:09:13 -0700
commitc498c73b6d70bfd13337dd5fe10260d0058f125c (patch)
tree1e3109750e276782e331ba70f1dfc70bb987c46c /include/sway/output.h
parentc523a14ae1f82958d42b20e90363f41c7a5f227a (diff)
parentf9625d1d56482a2c8fce4a2d4743d36607fc639d (diff)
Merge pull request #2224 from emersion/split-renderer
Split renderer
Diffstat (limited to 'include/sway/output.h')
-rw-r--r--include/sway/output.h41
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