经过近一年的不断探索和积极努力,飞漫软件终于在七月隆重推出了 MiniGUI 增值版的最新版本 MiniGUI-VAR for Linux V2.0.3 和 MiniGUI-VAR for Linux/uClinux, VxWorks, ThreadX,Nucleus,uC/OS-II V1.6.9。
MiniGUI-VAR for Linux V2.0.3 是 MiniGUI for Linux V2.0.2的升级版本。该产品是基于 Linux 系统下的多进程图形用户界面支持系统,支持 MiniGUI-Processes 和 MiniGUI-Threads 两种运行模式。与以前版本相比,这次推出的最新版本在界面的显示效果、字体渲染、位图装载、控件风格以及副屏支持等方面都有了显著的提高,使其功能更强,性能更好!有关新产品特性的增强与优化的详细内容请到公司网站()免费下载。
MiniGUI-VAR for VxWorks,ThreadX,Nucleus,uC/OS-II V1.6.9 是 MiniGUI-VAR V1.6.8 的升级版本。该版本是基于传统嵌入式操作的图形用户界面支持系统,除不支持多进程这一特性以外,与 V2.0.3 的其他功能特性完全一致。另外,飞漫软件还同时推出了 MiniGUI SDK for Win32 V1.6.9 版本。
MinGUI 增值版 MiniGUI-VAR for Linux/uClinux V1.6.9 是 MiniGUI-VAR for Linux/uClinux V1.6.8 的升级版本,该版本支持 MiniGUI-Lite 运行模式,而不支持 MiniGUI-Processes 模式。与 V2.0.3 另一个不同的是,MiniGUI-VAR for Linux/uClinux V1.6.9 不提供副屏支持。
为了回报广大 MiniGUI 增值版客户的厚爱,飞漫软件将在新版本正式发布之后,对在服务期限内的客户进行相关产品的免费升级。关于更多新版本的技术细节,请到 免费下载。
感谢大家一直以来对飞漫软件的支持与关注,相信这次推出的新产品会给大家带来不少的惊喜!如果您对我们的产品有兴趣,您也可以直接通过电话(010-82873666)或电子邮件(sales@minigui.com)与我们的客户经理联系,我们将以最大的热情期待您的垂询!
顺祝商祺!
北京飞漫软件技术有限公司
嵌入式软件关键技术、解决方案和开发工具供应商
公司网址:
电子邮件:sales@minigui.com
电话:010-82873666/82873999
传真:010-82873666/82873999
* minigui 实现了对256色 icon 图片的支持,即用户可以通过 loadiconfromfile, loadiconfrommem, 和 createiconex 函数实现对 icon 图片的装载和创建。
* minigui 实现了类似于 windows 菜单显示效果的滚动功能支持, pushbutton 外观 风格下不再支持定高方式, minigui 不再使用 stock 位图对象绘制 fashion 外观 风格下的 pushbutton。
* 增强了内嵌方式下对主窗口元素初始化的实现。
* 更新了不同外观风格所使用的位图和内嵌资源。
* 更新了所有不同外观风格的相应配置文件。
* 所有控件的外观也进行了相应的调整。
2、字体渲染增强
为了提高对 truetype 字体的渲染性能,在此版本中增加了对 truetype 字体的缓存机制支持,此功能可以在 minigui 编译配置时通过相应的配置选项 --enable-ttfcache 来开启。同时亦增加了对逻辑字体渲染的翻转、自动缩放和使用时强制关闭 cache 机制的支持。其中与逻辑字体的翻转支持相对应的逻辑字体类型为 font_flip_horz (水平翻转), font_flip_vert (垂直翻转)和 font_flip_horzvert (水平、垂直同时翻转);与逻辑字体的自动缩放支持相对应的逻辑字体类型为 font_other_autoscale;与逻辑字体的使用时强制关闭 cache 机制支持相对应的逻辑字体类型为 font_other_ttfnocache。为了进一步提高对逻辑字体的渲染效果还做了对 qpf 字体自动缩放的支持,内建资源方式下宋体 gb2312 12x12 rbf 字体更新和相应的资源包字体文件更新等工作。
下面是创建一可水平翻转的逻辑字体的部分代码,可供参考:
createlogfont (null, "song", "gb2312",
font_weight_regular, font_flip_horz, font_flip_horz,
font_other_nil, font_underline_none, font_struckout_none,
12, 0);
minigui 在以往发布的版本中将 "set width" 和 "spacing" 两个作为保留逻辑字体类型,而在此版本中这两个逻辑字体类型分别被 "flip" 和 "other" 所取代。因此 createlogfont 的原型由原来的:
plogfont guiapi createlogfont (const char* type, const char* family,
const char* charset, char weight, char slant, char set_width,
char spacing, char underline, char struckout,
int size, int rotation);
调整为:
plogfont guiapi createlogfont (const char* type, const char* family,
const char* charset, char weight, char slant, char flip,
char other, char underline, char struckout,
int size, int rotation);
考虑到向后的兼容性问题,"set width" (font_setwidth_*) 和 "spacing" (font_spacing_*) 这两种类型仍然有效. 然而这些类型均对翻转字体和其它渲染类型无影响。
3、控件的增强和优化
控件的增强和优化主要包含了几方面:通知码增强、功能完善和刷新优化。
在通知码方面主要是调整了对多行编辑框控件的 en_clicked 的支持,由先前的鼠标左键按下时发送通知码调整为鼠标左键弹起时发送通知码;增加了对多行编辑框的em_limittext (设置文本上限) ,em_getlimittext (获取文本上限),和 es_nohidesel (失去焦点时可显示选中的文本内容)的支持;增加了对编辑框的 en_selchanged 和 en_contchanged 的支持;增加了对组合框cbn_clicked的支持等。
在功能完善方面主要是增加了对列表框控件水平滚动条的支持;调整了多行编辑框中的光标显示形状;增加了对属性页控件两种新的风格 pss_scrollable (tabs滚动) 和 pss_bottom (在控件下方显示tabs)的支持等。
在刷新优化方面主要是对网格控件,列表型控件,树型控件,单行和多行编辑框等控件。
4、位图旋转、翻转和缩放支持
为了增强对位图旋转、翻转和缩放的支持新增了如下一系列函数:
* pivotscaledbitmapflip 实现对位图对象以任意点为中心的旋转、缩放和翻转支 持。
* pivotbitmap 实现对位图对象以任意点为中心旋转的支持。
* rotatebitmap, rotatescaledbitmap 实现对位图对象围绕中心点旋转和缩放的支持。
* rotatebitmapvflip, rotatebitmaphflip 实现对位图对象围绕中心点旋转的同时进行翻转的支持。
* rotatescaledbitmapvflip, rotatescaledbitmaphflip 实现对位图对象以中心点旋转缩放的同时进行翻转的支持。
5、副屏支持
当系统中有多个视频设备时,可将一个作为 minigui 的主屏,实现完整的多窗口系统;而其它设备作为副屏,在其上通过 minigui 的图形接口来实现文字渲染、图形显示等功能。此功能多用于手持设备等领域。此部分功能新增的接口有:
* initslavescreen 根据指定的引擎和显示模式打开副屏并返回一个图形设备上下文 句柄。
* terminateslavescreen 用于销毁副屏对象并释放资源。
6、位图装载/缩放优化
此次优化是通过调整位图装载的内部实现方式来完成的。新的实现方式是每加载完一扫描行后即调用一回调函数 cb 来处理,这大大降低了从文件或内存中装载位图时内存资源的占用。相关的函数如下:
* initmybitmapsl 初始化来自数据源的 mybitmap 对象的扫描线装载器。
* loadmybitmapsl 依次按扫描线方式装载来自数据源的 mybitmap 对象。此函数在一 扫描线被装载后会调用传递给 initmybitmapsl 的回调函数 cb 来处理扫描线。
* cleanupmybitmapsl 用于释放资源。
registerbitmapfiletype函数原型由原
bool guiapi registerbitmapfiletype (const char *ext,
int(*load)(mg_rwops *fp, mybitmap *bmp, rgb *pal),
int(*save)(mg_rwops *fp, mybitmap *bmp, rgb *pal),
bool(*check)(mg_rwops *fp))
改为
bool guiapi registerbitmapfiletype (const char *ext,
void* (*init) (mg_rwops* fp, mybitmap *my_bmp, rgb *pal),
int (*load) (mg_rwops* fp, void* init_info, mybitmap *my_bmp,
cb_one_scanline cb, void* context),
void (*cleanup) (void* init_info),
int (*save) (mg_rwops* fp, mybitmap *my_bmp, rgb *pal),
bool (*check) (mg_rwops* fp));
使用新的实现方式还涉及到了对以下函数的重新实现:
* loadmybitmapex, loadmybitmapfromfile 和 loadmybitmapfrommem
* loadbitmapex, loadbitmapfromfile 和 loadbitmapfrommem
同时依照此种实现方式还添加了下面几个新的绘制和缩放位图函数:
* paintimageex, paintimagefromfile 和 paintimagefrommem
* stretchpaintimageex, stretchpaintimagefromfile 和 stretchpaintimagefrommem
在此种实现方式下,您可以自定义位图的扫描线回调函数的处理方式,从而可以实现只装载位图对象的其中一部分等功能。
7、增加对 ose 操作系统的支持
minigui 在以往支持 linux/uclinux, uc/os-ii, threadx, nucleus, ecos, vxworks, win32 等嵌入式操作系统的基础上,新增了对 ose 操作系统的支持。minigui 增值版的新版本已经被验证可以在ose5.x操作系统上正常的运行。此次测试环境为:ose5.x windows 模拟器和 mx21 开发板。