1 /**
2  * @file lv_draw_vglite.h
3  *
4  */
5 
6 /**
7  * Copyright 2023-2024 NXP
8  *
9  * SPDX-License-Identifier: MIT
10  */
11 
12 #ifndef LV_DRAW_VGLITE_H
13 #define LV_DRAW_VGLITE_H
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 /*********************
20  *      INCLUDES
21  *********************/
22 
23 #include "../../../lv_conf_internal.h"
24 
25 #if LV_USE_DRAW_VGLITE
26 #include "../../lv_draw_private.h"
27 #include "../../../display/lv_display_private.h"
28 #include "../../../misc/lv_area_private.h"
29 
30 #include "../../lv_draw_triangle.h"
31 #include "../../lv_draw_label.h"
32 #include "../../lv_draw_image.h"
33 #include "../../lv_draw_line.h"
34 #include "../../lv_draw_arc.h"
35 
36 /*********************
37  *      DEFINES
38  *********************/
39 
40 /**********************
41  *      TYPEDEFS
42  **********************/
43 
44 typedef struct lv_draw_vglite_unit {
45     lv_draw_unit_t base_unit;
46     lv_draw_task_t * task_act;
47 #if LV_USE_OS
48     lv_thread_sync_t sync;
49     lv_thread_t thread;
50     volatile bool inited;
51     volatile bool exit_status;
52 #endif
53 #if LV_USE_VGLITE_DRAW_ASYNC
54     volatile bool wait_for_finish;
55 #endif
56 } lv_draw_vglite_unit_t;
57 
58 /**********************
59  * GLOBAL PROTOTYPES
60  **********************/
61 
62 void lv_draw_buf_vglite_init_handlers(void);
63 
64 void lv_draw_vglite_init(void);
65 
66 void lv_draw_vglite_deinit(void);
67 
68 void lv_draw_vglite_arc(lv_draw_unit_t * draw_unit, const lv_draw_arc_dsc_t * dsc,
69                         const lv_area_t * coords);
70 
71 void lv_draw_vglite_border(lv_draw_unit_t * draw_unit, const lv_draw_border_dsc_t * dsc,
72                            const lv_area_t * coords);
73 
74 void lv_draw_vglite_fill(lv_draw_unit_t * draw_unit, const lv_draw_fill_dsc_t * dsc,
75                          const lv_area_t * coords);
76 
77 void lv_draw_vglite_img(lv_draw_unit_t * draw_unit, const lv_draw_image_dsc_t * dsc,
78                         const lv_area_t * coords);
79 
80 void lv_draw_vglite_label(lv_draw_unit_t * draw_unit, const lv_draw_label_dsc_t * dsc,
81                           const lv_area_t * coords);
82 
83 void lv_draw_vglite_layer(lv_draw_unit_t * draw_unit, const lv_draw_image_dsc_t * draw_dsc,
84                           const lv_area_t * coords);
85 
86 void lv_draw_vglite_line(lv_draw_unit_t * draw_unit, const lv_draw_line_dsc_t * dsc);
87 
88 void lv_draw_vglite_triangle(lv_draw_unit_t * draw_unit, const lv_draw_triangle_dsc_t * dsc);
89 
90 /**********************
91  *      MACROS
92  **********************/
93 #endif /*LV_USE_DRAW_VGLITE*/
94 
95 #ifdef __cplusplus
96 } /*extern "C"*/
97 #endif
98 
99 #endif /*LV_DRAW_VGLITE_H*/
100