mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-23 15:56:59 +08:00
add LV_USE_BLEND_MODES and LV_USE_OPA_SCALE
it saves some style property queries by skipping some rarely used proeprties
This commit is contained in:
@@ -145,6 +145,12 @@ typedef void * lv_anim_user_data_t;
|
||||
/* 1: Enable shadow drawing*/
|
||||
#define LV_USE_SHADOW 1
|
||||
|
||||
/* 1: Use other blend modes than normal (`LV_BLEND_MODE_...`)*/
|
||||
#define LV_USE_BLEND_MODES 1
|
||||
|
||||
/* 1: Use the `opa_scale` style property to set the opacity of an object and its children at once*/
|
||||
#define LV_USE_OPA_SCALE 1
|
||||
|
||||
/* 1: Enable object groups (for keyboard/encoder navigation) */
|
||||
#define LV_USE_GROUP 1
|
||||
#if LV_USE_GROUP
|
||||
|
||||
+39
-5
@@ -1421,6 +1421,7 @@ void lv_obj_set_state(lv_obj_t * obj, lv_state_t new_state)
|
||||
|
||||
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
|
||||
|
||||
/*Get the transition time for the new state*/
|
||||
lv_obj_state_dsc_t dsc_ori = obj->state_dsc;
|
||||
obj->state_dsc.act = new_state;
|
||||
obj->state_dsc.prev = new_state;
|
||||
@@ -1430,6 +1431,7 @@ void lv_obj_set_state(lv_obj_t * obj, lv_state_t new_state)
|
||||
lv_style_int_t t = 0;
|
||||
#endif
|
||||
obj->state_dsc = dsc_ori;
|
||||
|
||||
if(t == 0) {
|
||||
#if LV_USE_ANIMATION
|
||||
lv_anim_del(obj, obj_state_anim_cb);
|
||||
@@ -2821,6 +2823,7 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t
|
||||
{
|
||||
draw_dsc->radius = lv_obj_get_style_radius(obj, part);
|
||||
|
||||
#if LV_USE_OPA_SCALE
|
||||
lv_opa_t opa_scale = lv_obj_get_style_opa_scale(obj, part);
|
||||
if(opa_scale <= LV_OPA_MIN) {
|
||||
draw_dsc->bg_opa = LV_OPA_TRANSP;
|
||||
@@ -2830,6 +2833,7 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t
|
||||
draw_dsc->value_opa = LV_OPA_TRANSP;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if(draw_dsc->bg_opa != LV_OPA_TRANSP) {
|
||||
draw_dsc->bg_opa = lv_obj_get_style_bg_opa(obj, part);
|
||||
@@ -2841,7 +2845,10 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t
|
||||
draw_dsc->bg_main_color_stop = lv_obj_get_style_bg_main_stop(obj, part);
|
||||
draw_dsc->bg_grad_color_stop = lv_obj_get_style_bg_grad_stop(obj, part);
|
||||
}
|
||||
|
||||
#if LV_USE_BLEND_MODES
|
||||
draw_dsc->bg_blend_mode = lv_obj_get_style_bg_blend_mode(obj, part);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2853,7 +2860,9 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t
|
||||
draw_dsc->border_side = lv_obj_get_style_border_side(obj, part);
|
||||
draw_dsc->border_color = lv_obj_get_style_border_color(obj, part);
|
||||
}
|
||||
#if LV_USE_BLEND_MODES
|
||||
draw_dsc->border_blend_mode = lv_obj_get_style_border_blend_mode(obj, part);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2866,7 +2875,9 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t
|
||||
draw_dsc->outline_pad = lv_obj_get_style_outline_pad(obj, part);
|
||||
draw_dsc->outline_color = lv_obj_get_style_outline_color(obj, part);
|
||||
}
|
||||
#if LV_USE_BLEND_MODES
|
||||
draw_dsc->outline_blend_mode = lv_obj_get_style_outline_blend_mode(obj, part);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2875,7 +2886,6 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t
|
||||
if(draw_dsc->pattern_image) {
|
||||
draw_dsc->pattern_opa = lv_obj_get_style_pattern_opa(obj, part);
|
||||
if(draw_dsc->pattern_opa > LV_OPA_MIN) {
|
||||
draw_dsc->pattern_blend_mode = lv_obj_get_style_pattern_blend_mode(obj, part);
|
||||
draw_dsc->pattern_recolor_opa = lv_obj_get_style_pattern_recolor_opa(obj, part);
|
||||
draw_dsc->pattern_repeat = lv_obj_get_style_pattern_repeat(obj, part);
|
||||
if(lv_img_src_get_type(draw_dsc->pattern_image) == LV_IMG_SRC_SYMBOL) {
|
||||
@@ -2884,10 +2894,13 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t
|
||||
} else if(draw_dsc->pattern_recolor_opa > LV_OPA_MIN ) {
|
||||
draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part);
|
||||
}
|
||||
#if LV_USE_BLEND_MODES
|
||||
draw_dsc->pattern_blend_mode = lv_obj_get_style_pattern_blend_mode(obj, part);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if LV_USE_SHADOW
|
||||
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
|
||||
draw_dsc->shadow_width = lv_obj_get_style_shadow_width(obj, part);
|
||||
if(draw_dsc->shadow_width) {
|
||||
@@ -2897,10 +2910,13 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t
|
||||
draw_dsc->shadow_ofs_y = lv_obj_get_style_shadow_offset_y(obj, part);
|
||||
draw_dsc->shadow_spread = lv_obj_get_style_shadow_spread(obj, part);
|
||||
draw_dsc->shadow_color = lv_obj_get_style_shadow_color(obj, part);
|
||||
#if LV_USE_BLEND_MODES
|
||||
draw_dsc->shadow_blend_mode = lv_obj_get_style_shadow_blend_mode(obj, part);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if(draw_dsc->value_opa > LV_OPA_MIN) {
|
||||
draw_dsc->value_str = lv_obj_get_style_value_str(obj, part);
|
||||
@@ -2914,11 +2930,14 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t
|
||||
draw_dsc->value_letter_space = lv_obj_get_style_value_letter_space(obj, part);
|
||||
draw_dsc->value_line_space = lv_obj_get_style_value_line_space(obj, part);
|
||||
draw_dsc->value_align = lv_obj_get_style_value_align(obj, part);
|
||||
#if LV_USE_BLEND_MODES
|
||||
draw_dsc->value_blend_mode = lv_obj_get_style_value_blend_mode(obj, part);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if LV_USE_OPA_SCALE
|
||||
if(opa_scale < LV_OPA_MAX) {
|
||||
draw_dsc->bg_opa = (uint16_t)((uint16_t)draw_dsc->bg_opa * opa_scale) >> 8;
|
||||
draw_dsc->border_opa = (uint16_t)((uint16_t)draw_dsc->border_opa * opa_scale) >> 8;
|
||||
@@ -2926,6 +2945,7 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, uint8_t part, lv_draw_rect_dsc_t
|
||||
draw_dsc->pattern_opa = (uint16_t)((uint16_t)draw_dsc->pattern_opa * opa_scale) >> 8;
|
||||
draw_dsc->value_opa = (uint16_t)((uint16_t)draw_dsc->value_opa * opa_scale) >> 8;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void lv_obj_init_draw_label_dsc(lv_obj_t * obj, uint8_t part, lv_draw_label_dsc_t * draw_dsc)
|
||||
@@ -2933,18 +2953,21 @@ void lv_obj_init_draw_label_dsc(lv_obj_t * obj, uint8_t part, lv_draw_label_dsc_
|
||||
draw_dsc->opa = lv_obj_get_style_text_opa(obj, part);
|
||||
if(draw_dsc->opa <= LV_OPA_MIN) return;
|
||||
|
||||
#if LV_USE_OPA_SCALE
|
||||
lv_opa_t opa_scale = lv_obj_get_style_opa_scale(obj, part);
|
||||
if(opa_scale < LV_OPA_MAX) {
|
||||
draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8;
|
||||
}
|
||||
if(draw_dsc->opa <= LV_OPA_MIN) return;
|
||||
#endif
|
||||
|
||||
draw_dsc->color = lv_obj_get_style_text_color(obj, part);
|
||||
draw_dsc->letter_space = lv_obj_get_style_text_letter_space(obj, part);
|
||||
draw_dsc->line_space = lv_obj_get_style_text_line_space(obj, part);
|
||||
draw_dsc->decor = lv_obj_get_style_text_decor(obj, part);
|
||||
#if LV_USE_BLEND_MODES
|
||||
draw_dsc->blend_mode = lv_obj_get_style_text_blend_mode(obj, part);
|
||||
draw_dsc->underline = lv_obj_get_style_text_underline(obj, part);
|
||||
draw_dsc->strikethrough = lv_obj_get_style_text_strikethrough(obj, part);
|
||||
#endif
|
||||
|
||||
draw_dsc->font = lv_obj_get_style_text_font(obj, part);
|
||||
|
||||
@@ -2958,11 +2981,14 @@ void lv_obj_init_draw_img_dsc(lv_obj_t * obj, uint8_t part, lv_draw_img_dsc_t *
|
||||
{
|
||||
draw_dsc->opa = lv_obj_get_style_image_opa(obj, part);
|
||||
if(draw_dsc->opa <= LV_OPA_MIN) return;
|
||||
|
||||
#if LV_USE_OPA_SCALE
|
||||
lv_opa_t opa_scale = lv_obj_get_style_opa_scale(obj, part);
|
||||
if(opa_scale < LV_OPA_MAX) {
|
||||
draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8;
|
||||
}
|
||||
if(draw_dsc->opa <= LV_OPA_MIN) return;
|
||||
#endif
|
||||
|
||||
draw_dsc->angle = 0;
|
||||
draw_dsc->zoom = LV_IMG_ZOOM_NONE;
|
||||
@@ -2972,24 +2998,28 @@ void lv_obj_init_draw_img_dsc(lv_obj_t * obj, uint8_t part, lv_draw_img_dsc_t *
|
||||
draw_dsc->recolor_opa = lv_obj_get_style_image_recolor_opa(obj, part);
|
||||
draw_dsc->recolor = lv_obj_get_style_image_recolor(obj, part);
|
||||
|
||||
#if LV_USE_BLEND_MODES
|
||||
draw_dsc->blend_mode = lv_obj_get_style_image_blend_mode(obj, part);
|
||||
#endif
|
||||
}
|
||||
|
||||
void lv_obj_init_draw_line_dsc(lv_obj_t * obj, uint8_t part, lv_draw_line_dsc_t * draw_dsc)
|
||||
{
|
||||
draw_dsc->opa = lv_obj_get_style_line_opa(obj, part);
|
||||
if(draw_dsc->opa <= LV_OPA_MIN) return;
|
||||
|
||||
#if LV_USE_OPA_SCALE
|
||||
lv_opa_t opa_scale = lv_obj_get_style_opa_scale(obj, part);
|
||||
if(opa_scale < LV_OPA_MAX) {
|
||||
draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8;
|
||||
}
|
||||
if(draw_dsc->opa <= LV_OPA_MIN) return;
|
||||
#endif
|
||||
|
||||
draw_dsc->width = lv_obj_get_style_line_width(obj, part);
|
||||
if(draw_dsc->width == 0) return;
|
||||
|
||||
draw_dsc->color = lv_obj_get_style_line_color(obj, part);
|
||||
draw_dsc->blend_mode = lv_obj_get_style_line_blend_mode(obj, part);
|
||||
|
||||
draw_dsc->dash_width = lv_obj_get_style_line_dash_width(obj, part);
|
||||
if(draw_dsc->dash_width) {
|
||||
@@ -2998,6 +3028,10 @@ void lv_obj_init_draw_line_dsc(lv_obj_t * obj, uint8_t part, lv_draw_line_dsc_t
|
||||
|
||||
draw_dsc->round_start = lv_obj_get_style_line_rounded(obj, part);
|
||||
draw_dsc->round_end = draw_dsc->round_start;
|
||||
|
||||
#if LV_USE_BLEND_MODES
|
||||
draw_dsc->blend_mode = lv_obj_get_style_line_blend_mode(obj, part);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1102,8 +1102,7 @@ _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t * , _ptr);
|
||||
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char * , _ptr);
|
||||
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int);
|
||||
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int);
|
||||
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_UNDERLINE, text_underline, bool, _int);
|
||||
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_STRIKETHROUGH, text_strikethrough, bool, _int);
|
||||
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int);
|
||||
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int);
|
||||
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color);
|
||||
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_SEL_COLOR, text_sel_color, lv_color_t, _color);
|
||||
|
||||
+21
-10
@@ -30,6 +30,15 @@ LV_EXPORT_CONST_INT(LV_RADIUS_CIRCLE);
|
||||
#define LV_DEBUG_STYLE_SENTINEL_VALUE 0x2288AAEE
|
||||
#define LV_DEBUG_STYLE_LIST_SENTINEL_VALUE 0x9977CCBB
|
||||
|
||||
#define LV_STYLE_PROP_INIT(name, group, id, attr) name = (((group << 4) + id) | ((attr) << 8))
|
||||
|
||||
#define LV_STYLE_ID_MASK 0x00FF
|
||||
|
||||
#define LV_STYLE_ATTR_NONE 0
|
||||
#define LV_STYLE_ATTR_INHERIT (1 << 7)
|
||||
|
||||
#define _LV_STYLE_CLOSEING_PROP 0xFF
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
@@ -43,6 +52,7 @@ enum {
|
||||
LV_BORDER_SIDE_RIGHT = 0x08,
|
||||
LV_BORDER_SIDE_FULL = 0x0F,
|
||||
LV_BORDER_SIDE_INTERNAL = 0x10, /**< FOR matrix-like objects (e.g. Button matrix)*/
|
||||
_LV_BORDER_SIDE_LAST
|
||||
};
|
||||
typedef uint8_t lv_border_side_t;
|
||||
|
||||
@@ -50,18 +60,20 @@ enum {
|
||||
LV_GRAD_DIR_NONE,
|
||||
LV_GRAD_DIR_VER,
|
||||
LV_GRAD_DIR_HOR,
|
||||
_LV_GRAD_DIR_LAST
|
||||
};
|
||||
|
||||
typedef uint8_t lv_grad_dir_t;
|
||||
|
||||
#define LV_STYLE_PROP_INIT(name, group, id, attr) name = (((group << 4) + id) | ((attr) << 8))
|
||||
/*Text decorations (Use 'OR'ed values)*/
|
||||
enum {
|
||||
LV_TEXT_DECOR_NONE = 0x00,
|
||||
LV_TEXT_DECOR_UNDERLINE = 0x01,
|
||||
LV_TEXT_DECOR_STRIKETHROUGH = 0x02,
|
||||
_LV_TEXT_DECOR_LAST
|
||||
};
|
||||
|
||||
#define LV_STYLE_ID_MASK 0x00FF
|
||||
|
||||
#define LV_STYLE_ATTR_NONE 0
|
||||
#define LV_STYLE_ATTR_INHERIT (1 << 7)
|
||||
|
||||
#define _LV_STYLE_CLOSEING_PROP 0xFF
|
||||
typedef uint8_t lv_text_decor_t;
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
@@ -139,9 +151,8 @@ enum {
|
||||
|
||||
LV_STYLE_PROP_INIT(LV_STYLE_TEXT_LETTER_SPACE, 0x8, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_INHERIT),
|
||||
LV_STYLE_PROP_INIT(LV_STYLE_TEXT_LINE_SPACE, 0x8, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_INHERIT),
|
||||
LV_STYLE_PROP_INIT(LV_STYLE_TEXT_UNDERLINE, 0x8, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_INHERIT),
|
||||
LV_STYLE_PROP_INIT(LV_STYLE_TEXT_STRIKETHROUGH, 0x8, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_INHERIT),
|
||||
LV_STYLE_PROP_INIT(LV_STYLE_TEXT_BLEND_MODE, 0x8, LV_STYLE_ID_VALUE + 4, LV_STYLE_ATTR_INHERIT),
|
||||
LV_STYLE_PROP_INIT(LV_STYLE_TEXT_DECOR, 0x8, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_INHERIT),
|
||||
LV_STYLE_PROP_INIT(LV_STYLE_TEXT_BLEND_MODE, 0x8, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_INHERIT),
|
||||
LV_STYLE_PROP_INIT(LV_STYLE_TEXT_COLOR, 0x8, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_INHERIT),
|
||||
LV_STYLE_PROP_INIT(LV_STYLE_TEXT_SEL_COLOR, 0x8, LV_STYLE_ID_COLOR + 1, LV_STYLE_ATTR_INHERIT),
|
||||
LV_STYLE_PROP_INIT(LV_STYLE_TEXT_OPA, 0x8, LV_STYLE_ID_OPA + 0, LV_STYLE_ATTR_INHERIT),
|
||||
|
||||
@@ -181,7 +181,7 @@ void lv_draw_label(const lv_area_t * coords, const lv_area_t * mask, lv_draw_lab
|
||||
}
|
||||
|
||||
lv_draw_line_dsc_t line_dsc;
|
||||
if(dsc->underline || dsc->strikethrough) {
|
||||
if((dsc->decor & LV_TEXT_DECOR_UNDERLINE) || (dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH)) {
|
||||
lv_draw_line_dsc_init(&line_dsc);
|
||||
line_dsc.color = dsc->color;
|
||||
line_dsc.width = (dsc->font->line_height + 5) / 10; /*+5 for rounding*/
|
||||
@@ -294,7 +294,7 @@ void lv_draw_label(const lv_area_t * coords, const lv_area_t * mask, lv_draw_lab
|
||||
}
|
||||
}
|
||||
|
||||
if(dsc->strikethrough) {
|
||||
if(dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH) {
|
||||
lv_point_t p1;
|
||||
lv_point_t p2;
|
||||
p1.x = pos_x_start;
|
||||
@@ -304,7 +304,7 @@ void lv_draw_label(const lv_area_t * coords, const lv_area_t * mask, lv_draw_lab
|
||||
lv_draw_line(&p1, &p2, mask, &line_dsc);
|
||||
}
|
||||
|
||||
if(dsc->underline) {
|
||||
if(dsc->decor & LV_TEXT_DECOR_UNDERLINE) {
|
||||
lv_point_t p1;
|
||||
lv_point_t p2;
|
||||
p1.x = pos_x_start;
|
||||
|
||||
@@ -39,9 +39,10 @@ typedef struct {
|
||||
lv_coord_t ofs_y;
|
||||
lv_bidi_dir_t bidi_dir;
|
||||
lv_txt_flag_t flag;
|
||||
lv_text_decor_t decor;
|
||||
#if LV_USE_BLEND_MODES
|
||||
lv_blend_mode_t blend_mode;
|
||||
uint8_t underline :1;
|
||||
uint8_t strikethrough :1;
|
||||
#endif
|
||||
}lv_draw_label_dsc_t;
|
||||
|
||||
/** Store some info to speed up drawing of very large texts
|
||||
|
||||
@@ -32,22 +32,28 @@ typedef struct {
|
||||
lv_grad_dir_t bg_grad_dir;
|
||||
lv_style_int_t bg_main_color_stop;
|
||||
lv_style_int_t bg_grad_color_stop;
|
||||
lv_blend_mode_t bg_blend_mode;
|
||||
lv_opa_t bg_opa;
|
||||
#if LV_USE_BLEND_MODES
|
||||
lv_blend_mode_t bg_blend_mode;
|
||||
#endif
|
||||
|
||||
/*Border*/
|
||||
lv_color_t border_color;
|
||||
lv_style_int_t border_width;
|
||||
lv_blend_mode_t border_blend_mode;
|
||||
lv_style_int_t border_side;
|
||||
lv_opa_t border_opa;
|
||||
#if LV_USE_BLEND_MODES
|
||||
lv_blend_mode_t border_blend_mode;
|
||||
#endif
|
||||
|
||||
/*Outline*/
|
||||
lv_color_t outline_color;
|
||||
lv_style_int_t outline_width;
|
||||
lv_style_int_t outline_pad;
|
||||
lv_blend_mode_t outline_blend_mode;
|
||||
lv_opa_t outline_opa;
|
||||
#if LV_USE_BLEND_MODES
|
||||
lv_blend_mode_t outline_blend_mode;
|
||||
#endif
|
||||
|
||||
/*Shadow*/
|
||||
lv_color_t shadow_color;
|
||||
@@ -55,17 +61,21 @@ typedef struct {
|
||||
lv_style_int_t shadow_ofs_x;
|
||||
lv_style_int_t shadow_ofs_y;
|
||||
lv_style_int_t shadow_spread;
|
||||
lv_blend_mode_t shadow_blend_mode;
|
||||
lv_opa_t shadow_opa;
|
||||
#if LV_USE_BLEND_MODES
|
||||
lv_blend_mode_t shadow_blend_mode;
|
||||
#endif
|
||||
|
||||
/*Pattern*/
|
||||
const void * pattern_image;
|
||||
const lv_font_t * pattern_font;
|
||||
bool pattern_repeat;
|
||||
lv_color_t pattern_recolor;
|
||||
lv_opa_t pattern_opa;
|
||||
lv_opa_t pattern_recolor_opa;
|
||||
lv_color_t pattern_recolor;
|
||||
uint8_t pattern_repeat :1;
|
||||
#if LV_USE_BLEND_MODES
|
||||
lv_blend_mode_t pattern_blend_mode;
|
||||
#endif
|
||||
|
||||
/*Value*/
|
||||
const char * value_str;
|
||||
@@ -77,7 +87,9 @@ typedef struct {
|
||||
lv_style_int_t value_letter_space;
|
||||
lv_style_int_t value_line_space;
|
||||
lv_align_t value_align;
|
||||
#if LV_USE_BLEND_MODES
|
||||
lv_blend_mode_t value_blend_mode;
|
||||
#endif
|
||||
}lv_draw_rect_dsc_t;
|
||||
|
||||
/**********************
|
||||
|
||||
Reference in New Issue
Block a user