Lines Matching refs:dsc
63 void lv_draw_letter_dsc_init(lv_draw_letter_dsc_t * dsc) in lv_draw_letter_dsc_init() argument
65 lv_memzero(dsc, sizeof(lv_draw_letter_dsc_t)); in lv_draw_letter_dsc_init()
66 dsc->opa = LV_OPA_COVER; in lv_draw_letter_dsc_init()
67 dsc->color = lv_color_black(); in lv_draw_letter_dsc_init()
68 dsc->font = LV_FONT_DEFAULT; in lv_draw_letter_dsc_init()
69 dsc->rotation = 0; in lv_draw_letter_dsc_init()
70 dsc->scale_x = LV_SCALE_NONE; in lv_draw_letter_dsc_init()
71 dsc->scale_y = LV_SCALE_NONE; in lv_draw_letter_dsc_init()
72 dsc->base.dsc_size = sizeof(lv_draw_letter_dsc_t); in lv_draw_letter_dsc_init()
75 void lv_draw_label_dsc_init(lv_draw_label_dsc_t * dsc) in lv_draw_label_dsc_init() argument
77 lv_memzero(dsc, sizeof(lv_draw_label_dsc_t)); in lv_draw_label_dsc_init()
78 dsc->opa = LV_OPA_COVER; in lv_draw_label_dsc_init()
79 dsc->color = lv_color_black(); in lv_draw_label_dsc_init()
80 dsc->text_length = LV_TEXT_LEN_MAX; in lv_draw_label_dsc_init()
81 dsc->font = LV_FONT_DEFAULT; in lv_draw_label_dsc_init()
82 dsc->sel_start = LV_DRAW_LABEL_NO_TXT_SEL; in lv_draw_label_dsc_init()
83 dsc->sel_end = LV_DRAW_LABEL_NO_TXT_SEL; in lv_draw_label_dsc_init()
84 dsc->sel_color = lv_color_black(); in lv_draw_label_dsc_init()
85 dsc->sel_bg_color = lv_palette_main(LV_PALETTE_BLUE); in lv_draw_label_dsc_init()
86 dsc->bidi_dir = LV_BASE_DIR_LTR; in lv_draw_label_dsc_init()
87 dsc->base.dsc_size = sizeof(lv_draw_label_dsc_t); in lv_draw_label_dsc_init()
95 void lv_draw_glyph_dsc_init(lv_draw_glyph_dsc_t * dsc) in lv_draw_glyph_dsc_init() argument
97 lv_memzero(dsc, sizeof(lv_draw_glyph_dsc_t)); in lv_draw_glyph_dsc_init()
100 void LV_ATTRIBUTE_FAST_MEM lv_draw_label(lv_layer_t * layer, const lv_draw_label_dsc_t * dsc, in lv_draw_label() argument
103 if(dsc->opa <= LV_OPA_MIN) return; in lv_draw_label()
104 if(dsc->text == NULL || dsc->text[0] == '\0') return; in lv_draw_label()
105 if(dsc->font == NULL) { in lv_draw_label()
113 t->draw_dsc = lv_malloc(sizeof(*dsc)); in lv_draw_label()
115 lv_memcpy(t->draw_dsc, dsc, sizeof(*dsc)); in lv_draw_label()
119 if(dsc->text_local) { in lv_draw_label()
121 new_dsc->text = lv_strdup(dsc->text); in lv_draw_label()
128 void LV_ATTRIBUTE_FAST_MEM lv_draw_character(lv_layer_t * layer, lv_draw_label_dsc_t * dsc, in lv_draw_character() argument
131 if(dsc->opa <= LV_OPA_MIN) return; in lv_draw_character()
132 if(dsc->font == NULL) { in lv_draw_character()
142 lv_font_get_glyph_dsc(dsc->font, &g, unicode_letter, 0); in lv_draw_character()
148 a.y2 = a.y1 + lv_font_get_line_height(g.resolved_font ? g.resolved_font : dsc->font); in lv_draw_character()
161 dsc->text = letter_buf_char; in lv_draw_character()
162 dsc->text_local = 1; in lv_draw_character()
164 lv_draw_label(layer, dsc, &a); in lv_draw_character()
168 void LV_ATTRIBUTE_FAST_MEM lv_draw_letter(lv_layer_t * layer, lv_draw_letter_dsc_t * dsc, const lv_… in lv_draw_letter() argument
170 if(dsc->opa <= LV_OPA_MIN) return; in lv_draw_letter()
171 if(dsc->font == NULL) { in lv_draw_letter()
176 const lv_font_t * font = dsc->font; in lv_draw_letter()
180 lv_font_get_glyph_dsc(font, &g, dsc->unicode, 0); in lv_draw_letter()
182 font = g.resolved_font ? g.resolved_font : dsc->font; in lv_draw_letter()
190 dsc->pivot.x = g.adv_w / 2 ; in lv_draw_letter()
191 dsc->pivot.y = font->line_height - font->base_line; in lv_draw_letter()
195 t->draw_dsc = lv_malloc(sizeof(*dsc)); in lv_draw_letter()
197 lv_memcpy(t->draw_dsc, dsc, sizeof(*dsc)); in lv_draw_letter()
204 void lv_draw_label_iterate_characters(lv_draw_unit_t * draw_unit, const lv_draw_label_dsc_t * dsc, in lv_draw_label_iterate_characters() argument
208 const lv_font_t * font = dsc->font; in lv_draw_label_iterate_characters()
215 lv_text_align_t align = dsc->align; in lv_draw_label_iterate_characters()
216 lv_base_dir_t base_dir = dsc->bidi_dir; in lv_draw_label_iterate_characters()
218 lv_bidi_calculate_align(&align, &base_dir, dsc->text); in lv_draw_label_iterate_characters()
220 if((dsc->flag & LV_TEXT_FLAG_EXPAND) == 0) { in lv_draw_label_iterate_characters()
227 lv_text_get_size(&p, dsc->text, dsc->font, dsc->letter_space, dsc->line_space, LV_COORD_MAX, in lv_draw_label_iterate_characters()
228 dsc->flag); in lv_draw_label_iterate_characters()
233 int32_t line_height = line_height_font + dsc->line_space; in lv_draw_label_iterate_characters()
242 x_ofs = dsc->ofs_x; in lv_draw_label_iterate_characters()
243 y_ofs = dsc->ofs_y; in lv_draw_label_iterate_characters()
250 if(dsc->hint && y_ofs == 0 && coords->y1 < 0) { in lv_draw_label_iterate_characters()
252 if(LV_ABS(dsc->hint->coord_y - coords->y1) > LV_LABEL_HINT_UPDATE_TH - 2 * line_height) { in lv_draw_label_iterate_characters()
253 dsc->hint->line_start = -1; in lv_draw_label_iterate_characters()
255 last_line_start = dsc->hint->line_start; in lv_draw_label_iterate_characters()
259 if(dsc->hint && last_line_start >= 0) { in lv_draw_label_iterate_characters()
261 pos.y += dsc->hint->y; in lv_draw_label_iterate_characters()
264 uint32_t remaining_len = dsc->text_length; in lv_draw_label_iterate_characters()
266 …t32_t line_end = line_start + lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, d… in lv_draw_label_iterate_characters()
267 w, NULL, dsc->flag); in lv_draw_label_iterate_characters()
273 …line_end += lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, dsc->letter_space, … in lv_draw_label_iterate_characters()
277 if(dsc->hint && pos.y >= -LV_LABEL_HINT_UPDATE_TH && dsc->hint->line_start < 0) { in lv_draw_label_iterate_characters()
278 dsc->hint->line_start = line_start; in lv_draw_label_iterate_characters()
279 dsc->hint->y = pos.y - coords->y1; in lv_draw_label_iterate_characters()
280 dsc->hint->coord_y = coords->y1; in lv_draw_label_iterate_characters()
283 if(dsc->text[line_start] == '\0') return; in lv_draw_label_iterate_characters()
288 …line_width = lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc… in lv_draw_label_iterate_characters()
289 dsc->flag); in lv_draw_label_iterate_characters()
296 …line_width = lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc… in lv_draw_label_iterate_characters()
297 dsc->flag); in lv_draw_label_iterate_characters()
301 uint32_t sel_start = dsc->sel_start; in lv_draw_label_iterate_characters()
302 uint32_t sel_end = dsc->sel_end; in lv_draw_label_iterate_characters()
312 draw_letter_dsc.opa = dsc->opa; in lv_draw_label_iterate_characters()
314 draw_letter_dsc.color = dsc->color; in lv_draw_label_iterate_characters()
315 draw_letter_dsc.rotation = dsc->rotation; in lv_draw_label_iterate_characters()
319 fill_dsc.opa = dsc->opa; in lv_draw_label_iterate_characters()
330 while(remaining_len && dsc->text[line_start] != '\0') { in lv_draw_label_iterate_characters()
340 …lv_bidi_process_paragraph(dsc->text + line_start, bidi_txt, line_end - line_start, base_dir, NULL,… in lv_draw_label_iterate_characters()
342 const char * bidi_txt = dsc->text + line_start; in lv_draw_label_iterate_characters()
351 logical_char_pos = lv_text_encoded_get_char_id(dsc->text, line_start); in lv_draw_label_iterate_characters()
355 … logical_char_pos = lv_text_encoded_get_char_id(dsc->text, line_start + next_char_offset); in lv_draw_label_iterate_characters()
364 if((dsc->flag & LV_TEXT_FLAG_RECOLOR) != 0) { in lv_draw_label_iterate_characters()
417 recolor.red = dsc->color.red; in lv_draw_label_iterate_characters()
418 recolor.blue = dsc->color.blue; in lv_draw_label_iterate_characters()
419 recolor.green = dsc->color.green; in lv_draw_label_iterate_characters()
433 …if(((dsc->flag & LV_TEXT_FLAG_RECOLOR) != 0) && (recolor_cmd_state == RECOLOR_CMD_STATE_TEXT_INPUT… in lv_draw_label_iterate_characters()
446 if(dsc->decor & LV_TEXT_DECOR_UNDERLINE) { in lv_draw_label_iterate_characters()
453 fill_dsc.color = dsc->color; in lv_draw_label_iterate_characters()
456 if(dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH) { in lv_draw_label_iterate_characters()
463 fill_dsc.color = dsc->color; in lv_draw_label_iterate_characters()
471 draw_letter_dsc.color = dsc->sel_color; in lv_draw_label_iterate_characters()
472 fill_dsc.color = dsc->sel_bg_color; in lv_draw_label_iterate_characters()
479 draw_letter_dsc.color = dsc->color; in lv_draw_label_iterate_characters()
485 pos.x += letter_w + dsc->letter_space; in lv_draw_label_iterate_characters()
497 …line_end += lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, dsc->letter_space, … in lv_draw_label_iterate_characters()
504 …lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc->letter_spac… in lv_draw_label_iterate_characters()
511 …lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc->letter_spac… in lv_draw_label_iterate_characters()
542 void lv_draw_unit_draw_letter(lv_draw_unit_t * draw_unit, lv_draw_glyph_dsc_t * dsc, const lv_poin… in lv_draw_unit_draw_letter() argument
568 lv_area_move(&letter_coords, -dsc->pivot.x, -dsc->pivot.y); in lv_draw_unit_draw_letter()
572 dsc->bg_coords && in lv_draw_unit_draw_letter()
573 lv_area_is_out(dsc->bg_coords, draw_unit->clip_area, 0)) { in lv_draw_unit_draw_letter()
582 draw_buf = lv_draw_buf_reshape(dsc->_draw_buf, 0, g.box_w, g.box_h, LV_STRIDE_AUTO); in lv_draw_unit_draw_letter()
584 if(dsc->_draw_buf) lv_draw_buf_destroy(dsc->_draw_buf); in lv_draw_unit_draw_letter()
591 dsc->_draw_buf = draw_buf; in lv_draw_unit_draw_letter()
595 dsc->format = g.format; in lv_draw_unit_draw_letter()
598 dsc->format = LV_FONT_GLYPH_FORMAT_NONE; in lv_draw_unit_draw_letter()
601 dsc->letter_coords = &letter_coords; in lv_draw_unit_draw_letter()
602 dsc->g = &g; in lv_draw_unit_draw_letter()
603 cb(draw_unit, dsc, NULL, NULL); in lv_draw_unit_draw_letter()