在设计过程中参考了lvgl源代码的文件结构,对gui图形库的代码结构划分如下:
1、core文件夹
文件 | 功能 |
---|---|
fv_disp.c | 显示设备的注册、管理 |
fv_indev.c | 输入设备的注册、管理,输入事件的检测 |
fv_event.c | 事件的注册、管理 |
fv_widget.c | 控件的创建、管理 |
fv_refr.c | 界面的刷新 |
2、draw文件夹
点、线、圆、矩形、圆弧、文字、图片的绘制
3、canvas文件夹
对draw相关函数进行封装,当绘制控件时调用canvas相关函数。
4、font文件夹
字体解码、加载、管理等
5、Image文件夹
图片解码、加载、管理等
6、misc文件夹
文件 | 功能 |
---|---|
fv_anim.c | 控件动画 |
fv_color.c | 颜色转换 |
fv_fs.c | 文件系统的注册、供gui使用的文件系统接口函数 |
fv_mem.c | 动态内存的管理 |
fv_slist.c | 单向链表,如定时器、动画使用单向链表结构,方便增加/删除操作 |
fv_timer.c | 定时器 |
fv_utils.c | 一些公共的函数 |
7、widgets文件夹
图片、文本、按钮、进度条、滑动条、滑动选择器、仪表盘、指针式时钟、条形码、二维码等控件。
8、libs文件夹
第三方库,如png/jepg图片的解码库、矢量字体的解码库、条形码的解码库、二维码的解码库。