mikroSDK Reference Manual
lv_draw_sw.h
Go to the documentation of this file.
1
6#ifndef LV_DRAW_SW_H
7#define LV_DRAW_SW_H
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13/*********************
14 * INCLUDES
15 *********************/
16#include "lv_draw_sw_blend.h"
17#include "../lv_draw.h"
18#include "../../misc/lv_area.h"
19#include "../../misc/lv_color.h"
21
22/*********************
23 * DEFINES
24 *********************/
25
26/**********************
27 * TYPEDEFS
28 **********************/
29
30struct _lv_disp_drv_t;
31
32typedef struct {
33 lv_draw_ctx_t base_draw;
34
36 void (*blend)(lv_draw_ctx_t * draw_ctx, const lv_draw_sw_blend_dsc_t * dsc);
38
39typedef struct {
40 lv_draw_layer_ctx_t base_draw;
41
42 uint32_t buf_size_bytes: 31;
43 uint32_t has_alpha : 1;
45
46/**********************
47 * GLOBAL PROTOTYPES
48 **********************/
49
50void lv_draw_sw_init_ctx(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx);
51void lv_draw_sw_deinit_ctx(struct _lv_disp_drv_t * drv, lv_draw_ctx_t * draw_ctx);
52
53void lv_draw_sw_wait_for_finish(lv_draw_ctx_t * draw_ctx);
54
55void lv_draw_sw_arc(lv_draw_ctx_t * draw_ctx, const lv_draw_arc_dsc_t * dsc, const lv_point_t * center, uint16_t radius,
56 uint16_t start_angle, uint16_t end_angle);
57
58void lv_draw_sw_rect(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords);
59
60void lv_draw_sw_bg(lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * dsc, const lv_area_t * coords);
61void lv_draw_sw_letter(lv_draw_ctx_t * draw_ctx, const lv_draw_label_dsc_t * dsc, const lv_point_t * pos_p,
62 uint32_t letter);
63
64LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_img_decoded(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * draw_dsc,
65 const lv_area_t * coords, const uint8_t * src_buf, lv_img_cf_t cf);
66
67LV_ATTRIBUTE_FAST_MEM void lv_draw_sw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc,
68 const lv_point_t * point1, const lv_point_t * point2);
69
70void lv_draw_sw_polygon(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_rect_dsc_t * draw_dsc,
71 const lv_point_t * points, uint16_t point_cnt);
72
73void lv_draw_sw_buffer_copy(lv_draw_ctx_t * draw_ctx,
74 void * dest_buf, lv_coord_t dest_stride, const lv_area_t * dest_area,
75 void * src_buf, lv_coord_t src_stride, const lv_area_t * src_area);
76
77void lv_draw_sw_transform(lv_draw_ctx_t * draw_ctx, const lv_area_t * dest_area, const void * src_buf,
78 lv_coord_t src_w, lv_coord_t src_h, lv_coord_t src_stride,
79 const lv_draw_img_dsc_t * draw_dsc, lv_img_cf_t cf, lv_color_t * cbuf, lv_opa_t * abuf);
80
81struct _lv_draw_layer_ctx_t * lv_draw_sw_layer_create(struct _lv_draw_ctx_t * draw_ctx, lv_draw_layer_ctx_t * layer_ctx,
82 lv_draw_layer_flags_t flags);
83
84void lv_draw_sw_layer_adjust(struct _lv_draw_ctx_t * draw_ctx, struct _lv_draw_layer_ctx_t * layer_ctx,
85 lv_draw_layer_flags_t flags);
86
87void lv_draw_sw_layer_blend(struct _lv_draw_ctx_t * draw_ctx, struct _lv_draw_layer_ctx_t * layer_ctx,
88 const lv_draw_img_dsc_t * draw_dsc);
89
90void lv_draw_sw_layer_destroy(lv_draw_ctx_t * draw_ctx, lv_draw_layer_ctx_t * layer_ctx);
91
92/***********************
93 * GLOBAL VARIABLES
94 ***********************/
95
96/**********************
97 * MACROS
98 **********************/
99
100#ifdef __cplusplus
101} /*extern "C"*/
102#endif
103
104#endif /*LV_DRAW_SW_H*/
Definition lv_hal_disp.h:77
Definition lv_draw.h:59
Definition lv_draw.h:45
Definition lv_area.h:43
Definition lv_draw_arc.h:28
Definition lv_draw_img.h:32
Definition lv_draw_label.h:30
Definition lv_draw_line.h:28
Definition lv_draw_rect.h:32
Definition lv_draw_sw_blend.h:29
Definition lv_draw_sw.h:32
Definition lv_draw_sw.h:39
Definition lv_area.h:37