1 /**
2  * @file lv_draw_dave2d.h
3  *
4  */
5 
6 #ifndef LV_DRAW_DAVE2D_H
7 #define LV_DRAW_DAVE2D_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /*********************
14  *      INCLUDES
15  *********************/
16 #include "../../../lv_conf_internal.h"
17 #if LV_USE_DRAW_DAVE2D
18 #include "../../lv_draw.h"
19 #include "../../lv_draw_private.h"
20 #include "hal_data.h"
21 #include "lv_draw_dave2d_utils.h"
22 #include "../../lv_draw_rect.h"
23 #include "../../lv_draw_line.h"
24 #include "../../lv_draw_arc.h"
25 #include "../../lv_draw_label.h"
26 #include "../../lv_draw_image.h"
27 #include "../../lv_draw_triangle.h"
28 #include "../../lv_draw_buf.h"
29 
30 
31 
32 /*********************
33  *      DEFINES
34  *********************/
35 
36 #define D2_RENDER_EACH_OPERATION      (1)
37 
38 /**********************
39  *      TYPEDEFS
40  **********************/
41 
42 typedef struct {
43     lv_draw_unit_t base_unit;
44     lv_draw_task_t * task_act;
45 #if LV_USE_OS
46     lv_thread_sync_t sync;
47     lv_thread_t thread;
48 #endif
49     uint32_t idx;
50     d2_device * d2_handle;
51     d2_renderbuffer * renderbuffer;
52 #if LV_USE_OS
53     lv_mutex_t * pd2Mutex;
54 #endif
55 } lv_draw_dave2d_unit_t;
56 
57 /**********************
58  * GLOBAL PROTOTYPES
59  **********************/
60 
61 void lv_draw_dave2d_init(void);
62 
63 void lv_draw_dave2d_image(lv_draw_dave2d_unit_t * draw_unit, const lv_draw_image_dsc_t * draw_dsc,
64                           const lv_area_t * coords);
65 
66 void lv_draw_dave2d_fill(lv_draw_dave2d_unit_t * draw_unit, const lv_draw_fill_dsc_t * dsc, const lv_area_t * coords);
67 
68 void lv_draw_dave2d_border(lv_draw_dave2d_unit_t * draw_unit, const lv_draw_border_dsc_t * dsc,
69                            const lv_area_t * coords);
70 
71 void lv_draw_dave2d_box_shadow(lv_draw_dave2d_unit_t * draw_unit, const lv_draw_box_shadow_dsc_t * dsc,
72                                const lv_area_t * coords);
73 
74 void lv_draw_dave2d_label(lv_draw_dave2d_unit_t * draw_unit, const lv_draw_label_dsc_t * dsc, const lv_area_t * coords);
75 
76 void lv_draw_dave2d_arc(lv_draw_dave2d_unit_t * draw_unit, const lv_draw_arc_dsc_t * dsc, const lv_area_t * coords);
77 
78 void lv_draw_dave2d_line(lv_draw_dave2d_unit_t * draw_unit, const lv_draw_line_dsc_t * dsc);
79 
80 void lv_draw_dave2d_layer(lv_draw_dave2d_unit_t * draw_unit, const lv_draw_image_dsc_t * draw_dsc,
81                           const lv_area_t * coords);
82 
83 void lv_draw_dave2d_triangle(lv_draw_dave2d_unit_t * draw_unit, const lv_draw_triangle_dsc_t * dsc);
84 
85 void lv_draw_dave2d_mask_rect(lv_draw_dave2d_unit_t * draw_unit, const lv_draw_mask_rect_dsc_t * dsc,
86                               const lv_area_t * coords);
87 
88 void lv_draw_dave2d_transform(lv_draw_dave2d_unit_t * draw_unit, const lv_area_t * dest_area, const void * src_buf,
89                               int32_t src_w, int32_t src_h, int32_t src_stride,
90                               const lv_draw_image_dsc_t * draw_dsc, const lv_draw_image_sup_t * sup, lv_color_format_t cf, void * dest_buf);
91 
92 /***********************
93  * GLOBAL VARIABLES
94  ***********************/
95 
96 /**********************
97  *      MACROS
98  **********************/
99 
100 #endif /*LV_USE_DRAW_DAVE2D*/
101 
102 #ifdef __cplusplus
103 } /*extern "C"*/
104 #endif
105 
106 #endif /*LV_USE_DRAW_DAVE2D*/
107