aboutsummaryrefslogtreecommitdiff
path: root/include/wlr/util
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
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')
-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