1 /**
2  * @file lv_gpu_stm32_dma2d.h
3  *
4  */
5 
6 #ifndef LV_GPU_STM32_DMA2D_H
7 #define LV_GPU_STM32_DMA2D_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /*********************
14  *      INCLUDES
15  *********************/
16 #include "../../misc/lv_color.h"
17 #include "../../hal/lv_hal_disp.h"
18 #include "../sw/lv_draw_sw.h"
19 
20 #if LV_USE_GPU_STM32_DMA2D
21 
22 /*********************
23  *      DEFINES
24  *********************/
25 
26 #define LV_DMA2D_ARGB8888 0
27 #define LV_DMA2D_RGB888 1
28 #define LV_DMA2D_RGB565 2
29 #define LV_DMA2D_ARGB1555 3
30 #define LV_DMA2D_ARGB4444 4
31 
32 /**********************
33  *      TYPEDEFS
34  **********************/
35 typedef lv_draw_sw_ctx_t lv_draw_stm32_dma2d_ctx_t;
36 
37 struct _lv_disp_drv_t;
38 
39 /**********************
40  * GLOBAL PROTOTYPES
41  **********************/
42 
43 /**
44  * Turn on the peripheral and set output color mode, this only needs to be done once
45  */
46 void lv_draw_stm32_dma2d_init(void);
47 
48 void lv_draw_stm32_dma2d_ctx_init(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx);
49 
50 void lv_draw_stm32_dma2d_ctx_deinit(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx);
51 
52 void lv_draw_stm32_dma2d_blend(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc);
53 
54 void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx);
55 
56 /**********************
57  *      MACROS
58  **********************/
59 
60 #endif  /*LV_USE_GPU_STM32_DMA2D*/
61 
62 #ifdef __cplusplus
63 } /*extern "C"*/
64 #endif
65 
66 #endif /*LV_GPU_STM32_DMA2D_H*/
67