diff options
Diffstat (limited to 'include/wlr/util')
-rw-r--r-- | include/wlr/util/region.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/include/wlr/util/region.h b/include/wlr/util/region.h new file mode 100644 index 00000000..7883af97 --- /dev/null +++ b/include/wlr/util/region.h @@ -0,0 +1,29 @@ +#ifndef WLR_UTIL_REGION_H +#define WLR_UTIL_REGION_H + +#include <pixman.h> +#include <wayland-server.h> + +/** + * Scales a region, ie. multiplies all its coordinates by `scale`. + * + * The resulting coordinates are rounded up or down so that the new region is + * at least as big as the original one. + */ +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); + +/** + * Expands the region of `distance`. If `distance` is negative, it shrinks the + * region. + */ +void wlr_region_expand(pixman_region32_t *dst, pixman_region32_t *src, + int distance); + +#endif |