aboutsummaryrefslogtreecommitdiff
path: root/include/sway/output.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sway/output.h')
-rw-r--r--include/sway/output.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/include/sway/output.h b/include/sway/output.h
index 19fc5e99..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,
@@ -54,4 +64,37 @@ void output_damage_whole_container(struct sway_output *output,
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_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