FreeRDP
Loading...
Searching...
No Matches
codec/region.h
1
24#ifndef FREERDP_CODEC_REGION_H
25#define FREERDP_CODEC_REGION_H
26
27#include <freerdp/api.h>
28#include <freerdp/types.h>
29
30#ifdef __cplusplus
31extern "C"
32{
33#endif
34
35 typedef struct S_REGION16_DATA REGION16_DATA;
36
37 typedef struct
38 {
39 RECTANGLE_16 extents;
40 REGION16_DATA* data;
41 } REGION16;
42
48 WINPR_ATTR_NODISCARD
49 FREERDP_API BOOL rectangles_equal(const RECTANGLE_16* r1, const RECTANGLE_16* r2);
50
56 WINPR_ATTR_NODISCARD
57 FREERDP_API BOOL rectangles_intersects(const RECTANGLE_16* r1, const RECTANGLE_16* r2);
58
65 WINPR_ATTR_NODISCARD
66 FREERDP_API BOOL rectangles_intersection(const RECTANGLE_16* r1, const RECTANGLE_16* r2,
67 RECTANGLE_16* dst);
68
77 FREERDP_API const char* rectangle_to_string(const RECTANGLE_16* rect, char* buffer,
78 size_t length);
79
87 WINPR_ATTR_MALLOC(free, 1)
88 FREERDP_API RECTANGLE_16* rectangles_clone(const RECTANGLE_16* rects, size_t count);
89
93 FREERDP_API void region16_init(REGION16* region);
94
96 WINPR_ATTR_NODISCARD
97 FREERDP_API int region16_n_rects(const REGION16* region);
98
105 WINPR_ATTR_NODISCARD
106 FREERDP_API const RECTANGLE_16* region16_rects(const REGION16* region, UINT32* nbRects);
107
109 WINPR_ATTR_NODISCARD
110 FREERDP_API const RECTANGLE_16* region16_extents(const REGION16* region);
111
116 WINPR_ATTR_NODISCARD
117 FREERDP_API BOOL rectangle_is_empty(const RECTANGLE_16* rect);
118
123 WINPR_ATTR_NODISCARD
124 FREERDP_API BOOL region16_is_empty(const REGION16* region);
125
129 FREERDP_API void region16_clear(REGION16* region);
130
134 FREERDP_API void region16_print(const REGION16* region);
135
141 WINPR_ATTR_MALLOC(free, 1)
142 FREERDP_API char* region16_to_string(const REGION16* region);
143
149 WINPR_ATTR_NODISCARD
150 FREERDP_API BOOL region16_copy(REGION16* dst, const REGION16* src);
151
158 WINPR_ATTR_NODISCARD
159 FREERDP_API BOOL region16_union_rect(REGION16* dst, const REGION16* src,
160 const RECTANGLE_16* rect);
161
167 WINPR_ATTR_NODISCARD
168 FREERDP_API BOOL region16_intersects_rect(const REGION16* src, const RECTANGLE_16* arg2);
169
176 WINPR_ATTR_NODISCARD
177 FREERDP_API BOOL region16_intersect_rect(REGION16* dst, const REGION16* src,
178 const RECTANGLE_16* rect);
179
183 FREERDP_API void region16_uninit(REGION16* region);
184
185#ifdef __cplusplus
186}
187#endif
188
189#endif /* FREERDP_CODEC_REGION_H */