aboutsummaryrefslogtreecommitdiff
path: root/rootston/output.c
diff options
context:
space:
mode:
Diffstat (limited to 'rootston/output.c')
-rw-r--r--rootston/output.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/rootston/output.c b/rootston/output.c
index 16a185af..846bb4e6 100644
--- a/rootston/output.c
+++ b/rootston/output.c
@@ -379,7 +379,7 @@ static int handle_repaint(void *data) {
return 0;
}
-static void output_damage_surface(struct roots_output *output,
+static void output_damage_whole_surface(struct roots_output *output,
struct wlr_surface *surface, double lx, double ly) {
if (!wlr_surface_has_buffer(surface)) {
return;
@@ -392,17 +392,24 @@ static void output_damage_surface(struct roots_output *output,
return;
}
- // TODO: use surface damage
+
pixman_region32_union_rect(&output->damage, &output->damage, box.x, box.y,
box.width, box.height);
}
-void output_damage_view(struct roots_output *output, struct roots_view *view) {
- output_damage_surface(output, view->wlr_surface, view->x, view->y);
+void output_damage_whole_view(struct roots_output *output,
+ struct roots_view *view) {
+ output_damage_whole_surface(output, view->wlr_surface, view->x, view->y);
// TODO: subsurfaces, popups, etc
}
+void output_damage_from_view(struct roots_output *output,
+ struct roots_view *view) {
+ // TODO: use surface damage
+ output_damage_whole_view(output, view);
+}
+
static void set_mode(struct wlr_output *output,
struct roots_output_config *oc) {
int mhz = (int)(oc->mode.refresh_rate * 1000);