• 24小时服务热线:400-088-1128

当前位置 南顺网络>> 知识拓展

GuiLite 2.7 发布:提速 Qt、MFC、Winforms、Web

自从上次发布了第一个3D程序,导演就跟我说了:“这就是个网页程序,跟GuiLite又没有啥关系,这也不是啥绝活呀”。所以,我们又作了另一个3D程序:

对GuiLite比较熟悉的同学,可能会发现,立方体的四个面上贴的是:GuiLite的两个单片机实例(HelloWave和HelloParticle);具体实现部分大家看代码就好,这里不多赘述(老规律,代码在100行左右)
耳边,似乎又听到导演的声音:“这也不是啥绝活呀~难道你还要用GuiLite代替宇宙第一前端编程语言 - JavaScript不成?”

答案当然是否定的!GuiLite不仅不能代替JavaScript,也不能代替Qt,MFC、Winforms;不说能力如何,光生态圈也不答应。开发者的时间非常宝贵,推倒以前的代码,换个框架再写一遍,这是伤筋动骨之痛。但GuiLite可以嵌入在Qt,MFC,Winforms,Web里面,成为它的一部分,去解决以下问题:

1. 资源占用问题:大型GUI框架,往往对资源要求很高,可以用GuiLite重构资源消耗量较大的重模块
2. 刷新效率问题:对于有实时性要求的复杂控件,或刷新量比较大的控件,可以用GuiLite重构一下,在没有硬件加速的情况下,GuiLite的绘制效率非常可观;另外对于普通2D的点线绘制,硬件加速的效果并不明显

相信熟悉界面编程的同学,都知道上面两个问题,算是老大难问题了;凭什么GuiLite能解决呢?我们的回答是:小,往往意味着快;小,往往也意味着更抗饿;不妨再看看上面的3D程序,如果完全用JavaScript编写,立方体转一圈,可能要几分钟;但在GuiLite的帮助下,是不是流畅许多呢?

为了能让GuiLite更有效的与其他GUI框架合作,我们在这个版本还做了以下工作:

1. 代码优化至4703行:用更小的体积,换取更快的速度;更小的资源消耗
2. 再次升级可移植性:通过运行1h-1cpp.sh脚本,迅速合并出GuiLite的统一头文件(GuiLite.h)及实现文件(GuiLite.cpp);有了这两个文件,开发者可以随心所欲的把GuiLite嵌入/移植到任意平台

最后,向header only的提出者致敬;向积极验证代码的同学致敬:是每天上百次的编译/运行,才换来了代码的快速稳定!

相关链接

文章转载自 OSCHINA 社区 [http://www.oschina.net]