lvgl
文章平均质量分 87
嵌入式gui开发
糯米宝宝
这个作者很懒,什么都没留下…
展开
-
LVGL自己看系列之设置需要刷新的obj
void _lv_area_join(lv_area_t * a_res_p, const lv_area_t * a1_p, const lv_area_t * a2_p), a1和a2合并为a area。_lv_area_is_on(const lv_area_t * a1_p, const lv_area_t * a2_p),判断a1是否包含了a2。从调用它开始,这个obj就注定会被重新渲染。原创 2024-08-30 14:56:45 · 193 阅读 · 0 评论 -
渲染timer开始工作
并加入到屏幕obj的脏域数组中(lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area);该函数主要是处理脏域,判断是否是合并过的区域,如果没有合并过,就进行合并,join from 被合并的区域就需要设置一个合并的标志位。有全刷和局部刷新的区分,layer_reshape_draw_buf会调整刷新的区域,根据是全刷还是局部刷新,调整刷新面积。5.判断,仅仅当合并后的区域小于合并之前的面积,才会合并,并将合并后的区域加入inv_areas。原创 2024-08-30 13:52:45 · 327 阅读 · 0 评论 -
lvgl 自己看系列
lv_obj_invalidate()` 函数是 LittlevGL 图形库中的一个函数,用于标记一个对象(object)需要重新绘制。当一个对象的外观或状态发生变化时,需要重新绘制该对象以反映这些变化。lv_obj_invalidate()函数可以将该对象标记为需要重新绘制,从而触发重新绘制操作。具体来说,`lv_obj_invalidate()` 函数会将对象的 `invalidate` 标志位置为 `true`,表示该对象需要重新绘制。原创 2024-08-29 16:48:43 · 520 阅读 · 0 评论 -
LVGL scale功能的介绍
函数是lv_scale类的一个全局函数,用于创建一个新的刻度对象。下面是记录日志信息,这通常用于调试,表明对象创建过程的开始。是一个宏,它使用lv_scale类的元数据来创建一个新的对象。MY_CLASS是指向的指针,这是在文件顶部定义的刻度类的类定义。parent参数指定了新刻度对象的父对象,新对象会成为这个父对象的子对象。调用基础对象的构造函数来完成对象的初始化。这是 LittlevGL 中对象创建的标准过程,确保对象被正确设置。原创 2024-05-10 10:46:07 · 1062 阅读 · 0 评论 -
LVGL 字形位图的映射过程
在 LittlevGL 中,字符到字形ID映射表(cmap)是一个关键的数据结构,它将Unicode字符映射到字体中的字形ID。:最简单的格式,没有Unicode列表,字形ID是连续的,直接通过字符编码减去范围起始码点(range_start)得到字形ID。:包含一个字形ID偏移列表,每个字符编码的字形ID是通过对字符编码减去范围起始码点后的值在偏移列表中查找得到的。数组中的每个元素都包含了对应字形的度量信息,包括字形的宽度、高度、x偏移量、y偏移量,以及最重要的。:首先,需要确定要显示的字符的字形ID。原创 2024-04-29 22:07:39 · 899 阅读 · 1 评论 -
LVGL字体相关的结构体剖析
结构体是 LVGL 图形库中用于存储字体额外数据的结构体。这个结构体包含了字形位图、字形描述符、字符映射表、字距描述符等重要信息。以下是字段名称类型描述指向字形位图数据的指针。glyph_dsc指向字形描述符数组的指针,包含了每个字形的度量信息。cmaps指向字符到字形ID映射表数组的指针。kern_dsc指向字距描述符的指针,可以是字距对或字距类的描述。kern_scaleuint16_t字距值的缩放因子。cmap_numuint16_t字符映射表的数量。bpp。原创 2024-04-29 09:35:09 · 1117 阅读 · 0 评论 -
LVGL 加载二进制字体文件中的重要结构体
/ 文件指针,用于读取字体数据// 当前位的位置(从0开始,到7结束)// 当前字节的值// 字体文件的版本// 字体文件中表格的数量// 字体文件的大小(字节)// 字体的上升高度(基线到顶部的距离)// 字体的下降高度(基线到底部的距离)// 字体的典型上升高度// 字体的典型下降高度// 行之间的典型间隙// 字体的最小y坐标// 字体的最大y坐标// 默认的字形宽度// 字距的缩放因子// 索引到位置的格式// 字形ID的格式// 宽度前进格式。原创 2024-04-23 20:26:07 · 1081 阅读 · 0 评论 -
LVGL 加载二进制字体文件
是 LittlevGL 图形库的一部分,它包含了用于加载二进制字体文件(通常是 LVGL 的字体格式)的函数和数据结构。以下是对文件中定义的函数和数据结构的详细解说,以及如何在一个demo中使用这些函数。原创 2024-04-23 17:38:08 · 963 阅读 · 0 评论 -
LVGL字体文件格式的文本表示和解析
如何从字体文件中获取字形位图、字形描述符,以及如何进行字形的压缩和解压缩。带着问题,我将逐一解释这些函数,并在最后提供一个简单的示例来展示如何在一个demo中使用这些函数。原创 2024-04-22 15:47:52 · 1074 阅读 · 0 评论 -
LVGL字体渲染的相关知识
lvgl字体渲染这方面主要包括获取字形位图、获取字形描述符、获取字形宽度以及设置字距。下面我将逐一解释这些函数,并在最后提供一个简单的示例来展示如何在一个demo中使用这些函数。原创 2024-04-22 14:06:03 · 1430 阅读 · 0 评论 -
lvgl 图像解码功能概述
是 LVGL 图形库的一部分,它提供了图像解码器的功能,用于加载和解码图像以供显示。原创 2024-04-17 20:12:57 · 1265 阅读 · 0 评论 -
LVGL主要绘制事件的总结归纳
在 LVGL 图形库中,这些事件是用于在对象的绘制过程中的不同阶段触发回调函数的。它们允许开发者在对象的绘制生命周期中的特定时刻执行自定义的绘制代码或者进行其他相关的处理。原创 2024-04-13 15:17:01 · 1064 阅读 · 0 评论 -
LVGL 图形库中负责屏幕刷新和对象重绘的核心模块
这个文件 `lv_refr.c` 是 LVGL 图形库中负责屏幕刷新和对象重绘的核心模块。以下是文件中定义的所有函数的详细解说,以及如何在一个示例中使用这些函数。原创 2024-04-13 15:07:20 · 2515 阅读 · 0 评论 -
Lvgl snapshot学习心得
创建一个新的绘制缓冲区,用于存储对象的快照图像。函数是 LVGL 图形库中用于创建一个新的绘制缓冲区,以便存储对象的快照图像。这个函数是快照功能的基础,它为对象的图像数据提供了一个存储空间。/*** 创建一个新的绘制缓冲区,用于存储对象的快照图像。* @param obj 指向要创建快照的 LVGL 对象的指针。* @param cf 指定的颜色格式。* @return 返回指向新创建的绘制缓冲区的指针,如果创建失败则返回 NULL。*/// 更新对象的布局,确保获取的尺寸是最新的。原创 2024-04-12 18:51:24 · 1346 阅读 · 0 评论 -
创建和管理绘制任务相关的函数
初始化绘制模块,如果启用了操作系统支持,则初始化线程同步机制。函数是 LVGL 图形库中用于初始化绘制系统的函数。这个函数的作用是设置绘制系统的基本状态,并准备绘制任务的同步机制。这是在使用 LVGL 进行图形绘制之前必须执行的初始化步骤。#endif函数参数无参数,这个函数用于初始化绘制系统。函数逻辑函数首先检查是否定义了LV_USE_OS,这个宏通常表示 LVGL 被配置为在支持操作系统的环境中运行。如果LV_USE_OS被定义,函数调用来初始化一个线程同步对象。原创 2024-04-12 16:44:27 · 762 阅读 · 0 评论 -
实现 VG Lite(一个轻量级的矢量图形库)绘制单元
初始化 VG Lite 模块。如果启用了 GPU 初始化,则调用 `gpu_init`。注册 VG Lite 绘制单元和相关的处理函数,并初始化 VG Lite 相关的子模块。函数是 LVGL 图形库中用于初始化 VG Lite 模块的函数。VG Lite 是 LVGL 用于渲染矢量图形的子模块,它支持高效地渲染路径、渐变、图像等矢量元素。此函数的主要作用是设置 VG Lite 模块的初始状态,并注册相关的绘制单元和处理函数。if(!原创 2024-04-12 15:49:42 · 1494 阅读 · 7 评论 -
LVGL canvas的详细分析
LVGL的canvas小部件是一个简单而强大的组件,它允许在一个小部件上绘制像素级的内容。这通常用于自定义图形和文本,或者作为更复杂图形元素的基础。Canvas小部件提供了一个缓冲区,可以在其中绘制任何您想要的内容。原创 2024-04-12 13:40:15 · 1071 阅读 · 0 评论 -
LVGL snapshot研究
函数原型:1.该函数会先创建一个buffer,用于存储截图(lv_snapshot_draw_buf_create)2.然后通过obj,获取信息,开始截图(lv_snapshot_take_to_buf)原创 2024-04-08 07:25:16 · 821 阅读 · 0 评论 -
LVGL v9版本图片缩放的实现
在LVGL v9版本中,图片缩放的实现主要依赖于`lv_img_set_zoom`函数,该函数允许开发者对图像对象进行缩放操作。缩放是通过改变图像的显示尺寸来实现的,可以放大或缩小图像以适应不同的显示需求。原创 2024-04-05 15:28:03 · 1537 阅读 · 0 评论 -
LVGL 从什么时候开始知道要进行绘制的?(真正的绘制开始啦)
lv_obj_add_event_cb函数则是后面根据需要注册具体的回调,lv_event_add(&obj->spec_attr->event_list, event_cb, filter, user_data);lv_draw_add_task(lv_layer_t * layer, const lv_area_t * coords)函数就是将要绘制的区域信息和layer的裁剪区域通过new task。(lv_vg_lite_buffer_open_image)用于向指定的对象发送事件。原创 2024-04-03 22:43:28 · 1493 阅读 · 0 评论 -
LVGL说我怎么知道需要渲染哪些内容呢?(渲染的前提)
因为自己本身就是做多媒体这块的,对lvgl本身的介绍就不多说了,从实际函数调用讲一讲吧。原创 2024-04-03 22:44:16 · 726 阅读 · 0 评论 -
LVGL 渲染timer开始以后需要做哪些准备工作???(渲染前的准备)
渲染timer开始工作啦!!!原创 2024-04-03 22:38:44 · 911 阅读 · 0 评论