wlroots/include/wlr/util/region.h
Simon Ser ca45f4490c Remove all wayland-server.h includes
The documentation for wayland-server.h says:

> Use of this header file is discouraged. Prefer including
> wayland-server-core.h instead, which does not include the server protocol
> header and as such only defines the library PI, excluding the deprecated API
> below.

Replacing wayland-server.h with wayland-server-core.h allows us to drop the
WL_HIDE_DEPRECATED declaration.
2019-07-27 15:49:32 -04:00

57 lines
1.7 KiB
C

/*
* This is a stable interface of wlroots. Future changes will be limited to:
*
* - New functions
* - New struct members
* - New enum members
*
* Note that wlroots does not make an ABI compatibility promise - in the future,
* the layout and size of structs used by wlroots may change, requiring code
* depending on this header to be recompiled (but not edited).
*
* Breaking changes are announced by email and follow a 1-year deprecation
* schedule. Send an email to ~sircmpwn/wlroots-announce+subscribe@lists.sr.ht
* to receive these announcements.
*/
#ifndef WLR_UTIL_REGION_H
#define WLR_UTIL_REGION_H
#include <stdbool.h>
#include <pixman.h>
#include <wayland-server-protocol.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);
/*
* 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);
bool wlr_region_confine(pixman_region32_t *region, double x1, double y1, double x2,
double y2, double *x2_out, double *y2_out);
#endif