aboutsummaryrefslogtreecommitdiff
path: root/include/wlr/util/region.h
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-03-26 15:31:08 -0400
committeremersion <contact@emersion.fr>2018-03-26 15:31:08 -0400
commit4555fc8a543caed15250a038e979bb24cee03a6c (patch)
tree44667d21ef6d897206661a3bb597c7a658a4c418 /include/wlr/util/region.h
parentbcb74c2c781405149af99f66ce61b1a8f63771fd (diff)
Fix damage tracking for rotated surfaces
It was broken because the damage extents were rotated about its own center, not about the center of the surface. This adds a new wlr_region_rotated_bounds that rotates regions. This allows us to have only one code path (for both non-rotated views and rotated views) and optimizes rendering for rotated views.
Diffstat (limited to 'include/wlr/util/region.h')
-rw-r--r--include/wlr/util/region.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/wlr/util/region.h b/include/wlr/util/region.h
index 7883af97..c0fe6063 100644
--- a/include/wlr/util/region.h
+++ b/include/wlr/util/region.h
@@ -26,4 +26,11 @@ void wlr_region_transform(pixman_region32_t *dst, pixman_region32_t *src,
void wlr_region_expand(pixman_region32_t *dst, pixman_region32_t *src,
int distance);
+/*
+ * Builds the smallest possible region that contains the region rotated about
+ * the point (ox, oy).
+ */
+void wlr_region_rotated_bounds(pixman_region32_t *dst, pixman_region32_t *src,
+ float rotation, int ox, int oy);
+
#endif