该GUI为嵌入式系统开发,可以用来做简单的字符显示
GUI系统结构:
L_GUI_api.h
L_GUI_config.h ───配置文件
L_GUI_control.c ─┬─控件处理
L_GUI_control.h ─┤
L_GUI_control2.c ─┘
L_GUI_def.h ───核心头文件,包含这个即可
L_GUI_drv.c ─┬─内存处理文件
L_GUI_drv.h ─┘
L_GUI_drw.c ─┬─底层画布和矩形处理文件
L_GUI_drw.h ─┘
L_GUI_Font.c ───文字库,由Character.exe生成
L_GUI_Picture.c ───图片库,由Picture.exe生成
L_GUI_sta.c ─┬─初始化文件
L_GUI_sta.h ─┘
L_GUI_text.c ─┬─文字处理
L_GUI_text.h ─┘
配置文件说明:
_L_MENU_:定义是否使用菜单项,默认使能
L_OSD_MODE_:OSD内存排布,现支持灰度,RGB565,RGB1555,RGB24四种,默认灰度
L_AUTO_MEMORY:GUI内存分配方式,由系统管理,即通过calloc函数获取,free释放。也可由GUI管理,通过预先分配内存使GUI运行在指定内存区间。默认系统管理。
L_SHOW_MODE_:OSD刷新方式,可以是底层OSD内存地址不变,修改该内存信息完成叠加,也可以直接在视频数据上进行叠加。默认底层OSD地址不变。
该GUI遵循 OSD内存-窗口-控件 的流程,所有的控件均依附于某个窗口,并随着窗口位置的变化而变化,必须先创建窗口,才能创建控件。OSD内存是一个特别的窗口,作为所有窗口的拷贝目的地存在。
几个重要的概念:
- GUI的点,点包含横纵两个坐标,在GUI中拼接成一个32位的数据,创建一个点由宏定义L_GUI_POINT完成。两个点即可组成一个矩形,矩形确定了整个GUI每一个控件坐标,但是矩形一般不出现在API函数中。
- GUI的颜色,GUI颜色根据所定义的OSD模式不同而不同,可能是8位、16位和32位。根据使用的不同,颜色分为画笔颜色(用来绘制线条),画刷颜色(用来填充矩形),清除色(清除画布所有内容),背景色(用来覆盖画布所有内容),字颜色(绘制文字所用的颜色),框颜色(绘制字框所用的颜色),背景色(选中文字时所用的颜色)。
- GUI的画布,画布用来承载每一个控件,控件的建立与靠背伴随着画布的创建与拷贝,画布不仅包含了内存信息,也包含画布颜色、文字颜色、文字字体的信息。