FreeRDP
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
31 extern "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  FREERDP_API BOOL rectangles_equal(const RECTANGLE_16* r1, const RECTANGLE_16* r2);
49 
55  FREERDP_API BOOL rectangles_intersects(const RECTANGLE_16* r1, const RECTANGLE_16* r2);
56 
63  FREERDP_API BOOL rectangles_intersection(const RECTANGLE_16* r1, const RECTANGLE_16* r2,
64  RECTANGLE_16* dst);
65 
69  FREERDP_API void region16_init(REGION16* region);
70 
72  FREERDP_API int region16_n_rects(const REGION16* region);
73 
80  FREERDP_API const RECTANGLE_16* region16_rects(const REGION16* region, UINT32* nbRects);
81 
83  FREERDP_API const RECTANGLE_16* region16_extents(const REGION16* region);
84 
89  FREERDP_API BOOL rectangle_is_empty(const RECTANGLE_16* rect);
90 
95  FREERDP_API BOOL region16_is_empty(const REGION16* region);
96 
100  FREERDP_API void region16_clear(REGION16* region);
101 
105  FREERDP_API void region16_print(const REGION16* region);
106 
112  FREERDP_API BOOL region16_copy(REGION16* dst, const REGION16* src);
113 
120  FREERDP_API BOOL region16_union_rect(REGION16* dst, const REGION16* src,
121  const RECTANGLE_16* rect);
122 
128  FREERDP_API BOOL region16_intersects_rect(const REGION16* src, const RECTANGLE_16* arg2);
129 
136  FREERDP_API BOOL region16_intersect_rect(REGION16* dst, const REGION16* src,
137  const RECTANGLE_16* arg2);
138 
142  FREERDP_API void region16_uninit(REGION16* region);
143 
144 #ifdef __cplusplus
145 }
146 #endif
147 
148 #endif /* FREERDP_CODEC_REGION_H */