1 /**
2  * @file lv_draw_mask.h
3  *
4  */
5 
6 #ifndef LV_DRAW_MASK_H
7 #define LV_DRAW_MASK_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /*********************
14  *      INCLUDES
15  *********************/
16 #include "../misc/lv_color.h"
17 #include "../misc/lv_area.h"
18 #include "../misc/lv_style.h"
19 
20 /*********************
21  *      DEFINES
22  *********************/
23 
24 /**********************
25  * GLOBAL PROTOTYPES
26  **********************/
27 
28 /**
29  * Initialize a rectangle mask draw descriptor.
30  * @param dsc       pointer to a draw descriptor
31  */
32 void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_mask_rect_dsc_init(lv_draw_mask_rect_dsc_t * dsc);
33 
34 /**
35  * Try to get a rectangle mask draw descriptor from a draw task.
36  * @param task      draw task
37  * @return          the task's draw descriptor or NULL if the task is not of type LV_DRAW_TASK_TYPE_MASK_RECTANGLE
38  */
39 lv_draw_mask_rect_dsc_t * lv_draw_task_get_mask_rect_dsc(lv_draw_task_t * task);
40 
41 /**
42  * Create a draw task to mask a rectangle from the buffer
43  * @param layer     pointer to a layer
44  * @param dsc       pointer to a draw descriptor
45  */
46 void lv_draw_mask_rect(lv_layer_t * layer, const lv_draw_mask_rect_dsc_t * dsc);
47 
48 /**********************
49  *      MACROS
50  **********************/
51 
52 #ifdef __cplusplus
53 } /*extern "C"*/
54 #endif
55 
56 #endif /*LV_DRAW_MASK_H*/
57