运行时配置选项影响MiniGUI的一些运行行为,比如要使用的图形引擎或者输入引擎;要装载的设备字体;要装载的位图、光标资源等等。我们已经了解到,MiniGUI的运行时配置一般是通过配置文件MiniGUI.cfg指定的,但在使用内建资源方式配置并编译MiniGUI后,运行时配置选项将直接编译到函数库中,配置文件MiniGUI.cfg文件将不起作用。
在MiniGUI应用程序启动时,MiniGUI优先查找当前目录下的MiniGUI.cfg文件、用户主目录下的.MiniGUI.cfg文件,其次是/usr/local/etc/MiniGUI.cfg,最后是/etc/MiniGUI.cfg文件。
查找顺序如下:
配置文件采用了非常简洁的格式,所以修改起来也很容易。其格式如下:
[section-name1] key-name1=key-value1 key-name2=key-value2 [section-name2] key-name3=key-value3 key-name4=key-value4
配置文件中由注释(#)、段(section)、键(key)和键值(Key Value)四部分组成,注释是以“#”为第一个字符开始的行,段是由[section-name]形式给出,包含若干键和键值对组合,用 key=key_value 的形式指定键和键值。下面按段介绍配置文件内容。
该段指定了MiniGUI 运行时使用的输入输出引擎以及鼠标设备和协议类型。指定的输入输出引擎必须是编译配置MiniGUI库时多个引擎中的一个。
该段定义如下键:
# GAL engine and default options
gal_engine=shadow
# IAL engine
ial_engine=cisco_touchpad
mdev=/dev/input/event1
mtype=IMPS2
该段是在[system]段gal_engine的键值指定为fbcon时使用,表示运行fbcon时使用的显示模式。若该段未定义或键值为空,则使用[system]段定义的键值。该段只包含一个defaultmode键,具体含义和[system]段相同:defaultmode:指定图形引擎的显示模式,格式为:宽x高-显示位数(bpp)
BPP:Bit Per Pixel ,bpp是像素的意思。像素是指由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。
16bpp显示模式和32bpp显示模式
8bpp、16bpp、24bpp和32bpp,一般俩将色彩深度越大,所能表项的色彩越丰富,而24bpp就被称为真彩色,能真实的表现图像的色彩(32bpp实际也只是24bpp,它是为了让每个像素都占据独立的32位双字,以对齐像素边界,加速处理速度)。缺省的色彩深度为对应于256色的8bpp,显然这不足以表现图像的色彩,在硬件能力满足的条件下应该使用更高的色彩深度(要受显存大小和分辨率大小的限制)
[fbcon] defaultmode=1024x768-16bpp
该段是在[system]段 gal_engine 的键值指定为 qvfb 时使用,表示运行 qvfb 时使用了XWindow 的哪个 display 及显示模式。
该段定义如下键,具体含义如下:
MiniGUI.cfg 文件 qvfb 段内容如下:
[qvfb] defaultmode=640x480-16bpp display=0
该段是在 [system] 段 gal_engine 的键值指定为 pc_qvfb 时使用,表示 pc_xvfb 的程序路径、显示模式以及窗口标题栏文字。Pc_xvfb 是在 PC 机上使用的一种图形引擎模式。该段定义如下键,具体含义如下:
MiniGUI.cfg文件pc_xvfb段内容如下:
[pc_xvfb] defaultmode=1024x768-16bpp window_caption=XVFB-for-MiniGUI-3.0-(Qt-Version) exec_file=/usr/local/bin/qvfb2
该段是在 [system] 段 gal_engine 的键值指定为 rtos_qvfb 时使用,表示 rtos_xvfb 的显示模式。rtos_xvfb 是在嵌入式系统上使用的一种图形引擎模式。
该段定义如下键,具体含义如下:
MiniGUI.cfg 文件 rtos_xvfb 段内容如下:
[rtos_xvfb] defaultmode=800x600-16bpp
该段是在 [system] 段 gal_engine 的键值指定为 shadow 时使用,表示 shadow 的真实引擎、默认模式以及屏幕旋转模式。
该段定义如下键,具体含义如下:
MiniGUI.cfg 文件 shadow 段内容如下:
[shadow] real_engine=pc_xvfb defaultmode=800x600-16bpp rotate_screen=normal
该段是在 [system] 段 gal_engine 的键值指定为 mlshadow 时使用,表示 mlshadow 的真实引擎、默认模式、屏幕背景颜色以及刷屏时是否使用双缓冲。
该段定义如下键,具体含义如下:
MiniGUI.cfg文件mlshadow段内容如下:
[mlshadow] real_engine=qvfb defaultmode=800x600-16bpp def_bgcolor=0x00FF00 double_buffer=enable
单缓冲和双缓冲的区别
为了提高LCD的显示效果,如果值是使用单缓冲,即一帧数据作为缓冲器的话,就会出现写数据的时候有闪屏现象,为了解决这个问题,我们为LCD缓冲区设置了两个帧的大小,如果此时LCD控制器帧缓冲区的地址指向的是第一针的数据的话,我们可以写第二帧数据,写完以后把第二帧的首地址赋给LCD控制器。
该字段定义了MiniGUI的系统字体和字体个数。并定义了系统默认使用的字体,用于MiniGUI的标题、菜单、控件的显示。
系统字体是MiniGUI装载了由rawbitmapfonts、varbitmapfonts、qpf、upf、truetypefonts等段定义的设备字体之后,根据上述字体名称调用CreateLogFontByName函数建立的逻辑字体。
逻辑字体名称的格式如下: