aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
authorKirill Primak <vyivel@posteo.net>2021-12-04 20:05:32 +0300
committerSimon Ser <contact@emersion.fr>2021-12-09 18:26:56 +0000
commit7964bdae760a5417fe18cd893f91bd85c7123173 (patch)
treea6a2e1ae1706c2962109fff481a837aaf69d8420 /include/wlr
parentdf7d28034325ae80fd4b1660e2c6d5f67dc30d67 (diff)
surface: fix non-buffer damage handling
This commit fixes the way the damage that doesn't come directly from the client is handled.
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/types/wlr_surface.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/include/wlr/types/wlr_surface.h b/include/wlr/types/wlr_surface.h
index ae3ae80f..4255a1f2 100644
--- a/include/wlr/types/wlr_surface.h
+++ b/include/wlr/types/wlr_surface.h
@@ -112,6 +112,11 @@ struct wlr_surface {
*/
pixman_region32_t buffer_damage;
/**
+ * The last commit's damage caused by surface and its subsurfaces'
+ * movement, in surface-local coordinates.
+ */
+ pixman_region32_t external_damage;
+ /**
* The current opaque region, in surface-local coordinates. It is clipped to
* the surface bounds. If the surface's buffer is using a fully opaque
* format, this is set to the whole surface.
@@ -273,9 +278,10 @@ void wlr_surface_for_each_surface(struct wlr_surface *surface,
wlr_surface_iterator_func_t iterator, void *user_data);
/**
- * Get the effective damage to the surface in terms of surface local
- * coordinates. This includes damage induced by resizing and moving the
- * surface. The damage is not expected to be bounded by the surface itself.
+ * Get the effective surface damage in surface-local coordinate space. Besides
+ * buffer damage, this includes damage induced by resizing and moving the
+ * surface and its subsurfaces. The resulting damage is not expected to be
+ * bounded by the surface itself.
*/
void wlr_surface_get_effective_damage(struct wlr_surface *surface,
pixman_region32_t *damage);