mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	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.
		
			
				
	
	
		
			56 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 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
 |