diff options
| author | emersion <contact@emersion.fr> | 2018-01-26 22:11:09 +0100 | 
|---|---|---|
| committer | emersion <contact@emersion.fr> | 2018-01-26 22:11:09 +0100 | 
| commit | ece2c1e4e200192bde19a2590b5a31f244e09524 (patch) | |
| tree | d8b2bb12b076bf73b70c21b2283ded34fedaee86 /include/wlr | |
| parent | a98ece68d32031dbd81b0064fad659515fc09f76 (diff) | |
| download | wlroots-ece2c1e4e200192bde19a2590b5a31f244e09524.tar.xz | |
Damage tracking for transformed outputs
Diffstat (limited to 'include/wlr')
| -rw-r--r-- | include/wlr/types/wlr_box.h | 8 | ||||
| -rw-r--r-- | include/wlr/types/wlr_output.h | 3 | ||||
| -rw-r--r-- | include/wlr/util/region.h | 7 | 
3 files changed, 15 insertions, 3 deletions
| diff --git a/include/wlr/types/wlr_box.h b/include/wlr/types/wlr_box.h index 0588201c..d6cc3509 100644 --- a/include/wlr/types/wlr_box.h +++ b/include/wlr/types/wlr_box.h @@ -2,6 +2,7 @@  #define WLR_TYPES_WLR_BOX_H  #include <stdbool.h> +#include <wayland-server.h>  struct wlr_box {  	int x, y; @@ -18,8 +19,11 @@ bool wlr_box_contains_point(const struct wlr_box *box, double x, double y);  bool wlr_box_empty(const struct wlr_box *box); -enum wl_output_transform; +/** + * Transforms a box inside a `width` x `height` box. + */  void wlr_box_transform(const struct wlr_box *box, -	enum wl_output_transform transform, struct wlr_box *dest); +	enum wl_output_transform transform, int width, int height, +	struct wlr_box *dest);  #endif diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h index 823c3b5e..4eefbf55 100644 --- a/include/wlr/types/wlr_output.h +++ b/include/wlr/types/wlr_output.h @@ -61,7 +61,8 @@ struct wlr_output {  	enum wl_output_transform transform;  	bool needs_swap; -	pixman_region32_t damage; // damage for cursors and fullscreen surface +	// damage for cursors and fullscreen surface, in output-local coordinates +	pixman_region32_t damage;  	float transform_matrix[16];  	struct { diff --git a/include/wlr/util/region.h b/include/wlr/util/region.h index e268436b..5d2b37e1 100644 --- a/include/wlr/util/region.h +++ b/include/wlr/util/region.h @@ -2,6 +2,7 @@  #define WLR_UTIL_REGION_H  #include <pixman.h> +#include <wayland-server.h>  /**   * Scales a region, ie. multiplies all its coordinates by `scale`. @@ -12,4 +13,10 @@  void wlr_region_scale(pixman_region32_t *dst, pixman_region32_t *src,  	float scale); +/** + * Applies a transform to a region inside a box of size `width` x `height`. + */ +void wlr_region_transform(pixman_region32_t *dst, pixman_region32_t *src, +	enum wl_output_transform transform, int width, int height); +  #endif | 
