Lines Matching +full:- +full:w
41 …static void decompress(const uint8_t * in, uint8_t * out, lv_coord_t w, lv_coord_t h, uint8_t bpp,…
42 static inline void decompress_line(uint8_t * out, lv_coord_t w);
83 lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *)font->dsc; in lv_font_get_bitmap_fmt_txt()
87 const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; in lv_font_get_bitmap_fmt_txt()
89 if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) { in lv_font_get_bitmap_fmt_txt()
90 return &fdsc->glyph_bitmap[gdsc->bitmap_index]; in lv_font_get_bitmap_fmt_txt()
98 uint32_t gsize = gdsc->box_w * gdsc->box_h; in lv_font_get_bitmap_fmt_txt()
103 switch(fdsc->bpp) { in lv_font_get_bitmap_fmt_txt()
126 bool prefilter = fdsc->bitmap_format == LV_FONT_FMT_TXT_COMPRESSED ? true : false; in lv_font_get_bitmap_fmt_txt()
127 …decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], LV_GC_ROOT(_lv_font_decompr_buf), gdsc->box_w,… in lv_font_get_bitmap_fmt_txt()
128 (uint8_t)fdsc->bpp, prefilter); in lv_font_get_bitmap_fmt_txt()
156 lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *)font->dsc; in lv_font_get_glyph_dsc_fmt_txt()
161 if(fdsc->kern_dsc) { in lv_font_get_glyph_dsc_fmt_txt()
169 const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; in lv_font_get_glyph_dsc_fmt_txt()
171 int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4); in lv_font_get_glyph_dsc_fmt_txt()
173 uint32_t adv_w = gdsc->adv_w; in lv_font_get_glyph_dsc_fmt_txt()
179 dsc_out->adv_w = adv_w; in lv_font_get_glyph_dsc_fmt_txt()
180 dsc_out->box_h = gdsc->box_h; in lv_font_get_glyph_dsc_fmt_txt()
181 dsc_out->box_w = gdsc->box_w; in lv_font_get_glyph_dsc_fmt_txt()
182 dsc_out->ofs_x = gdsc->ofs_x; in lv_font_get_glyph_dsc_fmt_txt()
183 dsc_out->ofs_y = gdsc->ofs_y; in lv_font_get_glyph_dsc_fmt_txt()
184 dsc_out->bpp = (uint8_t)fdsc->bpp; in lv_font_get_glyph_dsc_fmt_txt()
185 dsc_out->is_placeholder = false; in lv_font_get_glyph_dsc_fmt_txt()
187 if(is_tab) dsc_out->box_w = dsc_out->box_w * 2; in lv_font_get_glyph_dsc_fmt_txt()
213 lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *)font->dsc; in get_glyph_dsc_id()
216 if(fdsc->cache && letter == fdsc->cache->last_letter) return fdsc->cache->last_glyph_id; in get_glyph_dsc_id()
219 for(i = 0; i < fdsc->cmap_num; i++) { in get_glyph_dsc_id()
222 uint32_t rcp = letter - fdsc->cmaps[i].range_start; in get_glyph_dsc_id()
223 if(rcp > fdsc->cmaps[i].range_length) continue; in get_glyph_dsc_id()
225 if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY) { in get_glyph_dsc_id()
226 glyph_id = fdsc->cmaps[i].glyph_id_start + rcp; in get_glyph_dsc_id()
228 else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL) { in get_glyph_dsc_id()
229 const uint8_t * gid_ofs_8 = fdsc->cmaps[i].glyph_id_ofs_list; in get_glyph_dsc_id()
230 glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_8[rcp]; in get_glyph_dsc_id()
232 else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_TINY) { in get_glyph_dsc_id()
234 … uint16_t * p = _lv_utils_bsearch(&key, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length, in get_glyph_dsc_id()
235 … sizeof(fdsc->cmaps[i].unicode_list[0]), unicode_list_compare); in get_glyph_dsc_id()
238 lv_uintptr_t ofs = p - fdsc->cmaps[i].unicode_list; in get_glyph_dsc_id()
239 glyph_id = fdsc->cmaps[i].glyph_id_start + ofs; in get_glyph_dsc_id()
242 else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_FULL) { in get_glyph_dsc_id()
244 … uint16_t * p = _lv_utils_bsearch(&key, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length, in get_glyph_dsc_id()
245 … sizeof(fdsc->cmaps[i].unicode_list[0]), unicode_list_compare); in get_glyph_dsc_id()
248 lv_uintptr_t ofs = p - fdsc->cmaps[i].unicode_list; in get_glyph_dsc_id()
249 const uint16_t * gid_ofs_16 = fdsc->cmaps[i].glyph_id_ofs_list; in get_glyph_dsc_id()
250 glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs]; in get_glyph_dsc_id()
255 if(fdsc->cache) { in get_glyph_dsc_id()
256 fdsc->cache->last_letter = letter; in get_glyph_dsc_id()
257 fdsc->cache->last_glyph_id = glyph_id; in get_glyph_dsc_id()
262 if(fdsc->cache) { in get_glyph_dsc_id()
263 fdsc->cache->last_letter = letter; in get_glyph_dsc_id()
264 fdsc->cache->last_glyph_id = 0; in get_glyph_dsc_id()
272 lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *)font->dsc; in get_kern_value()
276 if(fdsc->kern_classes == 0) { in get_kern_value()
278 const lv_font_fmt_txt_kern_pair_t * kdsc = fdsc->kern_dsc; in get_kern_value()
279 if(kdsc->glyph_ids_size == 0) { in get_kern_value()
282 const uint16_t * g_ids = kdsc->glyph_ids; in get_kern_value()
284 … uint16_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 2, kern_pair_8_compare); in get_kern_value()
288 lv_uintptr_t ofs = kid_p - g_ids; in get_kern_value()
289 value = kdsc->values[ofs]; in get_kern_value()
292 else if(kdsc->glyph_ids_size == 1) { in get_kern_value()
295 const uint32_t * g_ids = kdsc->glyph_ids; in get_kern_value()
297 … uint32_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 4, kern_pair_16_compare); in get_kern_value()
301 lv_uintptr_t ofs = kid_p - g_ids; in get_kern_value()
302 value = kdsc->values[ofs]; in get_kern_value()
312 const lv_font_fmt_txt_kern_classes_t * kdsc = fdsc->kern_dsc; in get_kern_value()
313 uint8_t left_class = kdsc->left_class_mapping[gid_left]; in get_kern_value()
314 uint8_t right_class = kdsc->right_class_mapping[gid_right]; in get_kern_value()
319 … value = kdsc->class_pair_values[(left_class - 1) * kdsc->right_class_cnt + (right_class - 1)]; in get_kern_value()
332 if(ref8_p[0] != element8_p[0]) return (int32_t)ref8_p[0] - element8_p[0]; in kern_pair_8_compare()
333 else return (int32_t) ref8_p[1] - element8_p[1]; in kern_pair_8_compare()
343 if(ref16_p[0] != element16_p[0]) return (int32_t)ref16_p[0] - element16_p[0]; in kern_pair_16_compare()
344 else return (int32_t) ref16_p[1] - element16_p[1]; in kern_pair_16_compare()
356 static void decompress(const uint8_t * in, uint8_t * out, lv_coord_t w, lv_coord_t h, uint8_t bpp, … in decompress() argument
364 uint8_t * line_buf1 = lv_mem_buf_get(w); in decompress()
369 line_buf2 = lv_mem_buf_get(w); in decompress()
372 decompress_line(line_buf1, w); in decompress()
377 for(x = 0; x < w; x++) { in decompress()
384 decompress_line(line_buf2, w); in decompress()
386 for(x = 0; x < w; x++) { in decompress()
393 decompress_line(line_buf1, w); in decompress()
395 for(x = 0; x < w; x++) { in decompress()
409 * @param w width of the line in pixel count
411 static inline void decompress_line(uint8_t * out, lv_coord_t w) in decompress_line() argument
414 for(i = 0; i < w; i++) { in decompress_line()
446 bit_mask = (uint16_t)((uint16_t) 1 << len) - 1; in get_bits()
454 return (in16 >> (16 - bit_pos - len)) & bit_mask; in get_bits()
457 return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask; in get_bits()
503 bit_pos = 8 - bit_pos - len; in bits_write()
505 uint8_t bit_mask = (uint16_t)((uint16_t) 1 << len) - 1; in bits_write()
565 rle_cnt--; in rle_next()
593 return ((int32_t)(*(uint16_t *)ref)) - ((int32_t)(*(uint16_t *)element)); in unicode_list_compare()