嵌入式Linux中Qt/Embedded的应用(2)

  对于基本的framebuffer设备,Qt/Embedded用QlinuxFbScreen来处理。针对具体显示硬件(如Mach卡、Voodoo卡)的加速特性,Qt/Embedded从QlinuxFbScreen和图形设备环境模板类QgfxRaster继承出相应子类,并针对相应硬件重载相关虚函数。

  Qt/Embedded在体系上为C/S结构,任何一个Qt/Embedded程序都可以作为系统中唯一的一个GUI Server存在。当应用程序首次以系统GUI Server的方式加载时,将建立QWSServer实体。此时调用QWSServer::openDisplay()函数创建窗体,在QWSServer::openDisplay()中对QWSDisplay::Data中的init()加以调用;根据QgfxDriverFactory实体中的定义(QLinuxFbScreen)设置关键的Qscreen指针qt_screen并调用connect()打开显示设备(dev/fb0)。在QWSServer中所有对于显示设备的调用都由qt_screen发起。至此完成了Qt/Embedded中QWSServer的图形发生引擎的创建。当系统中建立好GUI Server后,其它需要运行的Qt/Embedded程序在加载后采用共享内存及有名管道的进程通信方式,以同步访问模式获得对共享资源framebuffer设备的访问权。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzdgxj.html