前段时间研究了一下MiniGUI的源代码,也算是有了一点心得,写出来给大家一起分享。

 

 

MiniGUI是分商业版和开源版的,商业版是不提供源代码的,而且不是随随便便就可以拿到的,飞漫也是要需要赚钱来糊口的。:)...所以,我们这次分析的源代码也是开源的1.6.10的版本。不过,开源版本肯定没有他们的商业版这么强悍了,功能上做了很多精简。主要的总结下来有如下的地方:

 

1):开源版本只支持linux系统,其他操作系统的支持不行(不过还是有办法自己修改支持的,这件事情我就已经做过啦,后面详细的说一下)

2):开源版本的字库支持很不完整,只有vbfbinqpf的字体。其中,vbfbin格式的字体是MiniGUI自己定义的,而qpf字体是Qt里面的定义的。对于我们在PC上常用的ttf格式的矢量字体,MiniGUI本身是支持的,但是开源版本也把支持ttf的模块文件给去掉。后面的代码中我会给出相应的解决办法。

3):开源版本只支持程序运行在multi-thread模式,而不支持stand-alone模式和multi-process模式。关于这几种模式,我简单的做个说明,stand-alone模式是最简单的,就是在不支持多任务的环境中运行的,有点像单片机中的环境。Multi-thread模式是我们用的最多的单进程多线程的模式,简单的说这种模式下所有的任务运行在同一个地址空间中,这个是在嵌入式的中用得最多的,比如ucos等操作系统就是运行在这种模式中。Multi-Process模式是多进程模式,也就说在不同地址空间的进程都可以能使用到图形界面,这个时候图形引擎工作在c/s模式,一般PC环境下都是工作在这种模式下的。

在进入源代码分析之前,我还有有几个限制要提前说一下

1):本次代码分析只针对Multi-thread模式

2):本次分析不考虑鼠标

3):只分析src里面的代码,对extvcongui里面的代码不作分析。Extvcongui里面的代码并不复杂,只是将mingui做了扩展而已,每个改变MiniGUI的核心机制。

 

 

OK,下面我们一起进入MiniGUI的代码分析。

 

 

 

作者:光脚脚 qq:1042077267(欢迎大家跟我联系一起讨论)

转载请注明出处。

Logo

更多推荐