I. DirectFB可以用来做什么
DirectFB是图形API存在于Frame Buffer层之上与高级图形管理层如GTK+等之下的。它可以以很小的系统资源占用来提供图形硬件加速功能,提供类如多路a通道渲染模型等高级图像操作。它不修改Linux内核,除了标准C库没有其他库的依赖。应用在了基于Linux系统的DTV显示系统的研发和其他有关Linux显示界面的项目上。支持市面上绝大多数显示卡,支持键盘、鼠标、遥控器、游戏手柄、触摸屏等输入设备。支持JPEG、PNG、GIF、mpeg1/2、AVI、MOV、Flash、Video4Linux、DirectFB bitmap font和TrueType等音视频文件和字体。
关于DirectFB的介绍可以参考:
http://elinux.org/DirectFB
http://www.directfb.org/index.php
http://www.linuxgraphics.cn/directfb/overview.html
http://www.linuxgraphics.cn/directfb/about.html
http://www.directfb.org/docs/ELC2008/elc2008_directfb_gfx.pdf
上层API支持DirectFB的有:
XDirectFB、DirectFBGL、GTK+、DFBTerm、DFBSee、DFBPoint、MythTV、Qt on DirectFB、SDL(SimpleDirectmedia Layer)。
本文主要参考:
http://elinux.org/images/d/d4/Elc2008_directfb_gfx.pdf
II. DirectFB在系统中的位置
从结构来讲,对于一般的MMP,DTV和STB来说,上面两幅图是比较经典的结构。
DirectFB都处于QT,GTK+这样的高级GUI框架的下面,系统驱动的上面。
从功能方面来讲,下面两幅图比较形象的说明了DirectFB的主要作用:图形,文字的处理(DirectFB把TS经过Decoder处理之后的码
流,再加上图形和文字,一起传给视频的芯片)
III. DirectFB怎么使用
选择一个合适的DirectFB版本,下载并安装
DirectFB的代码可以从这里下载:http://www.directfb.org/index.php?path=Main%2FDownloads
建立DirectFB的配置文件directfbrc
DirectFB的配置可以参考,里面有对directfbrc的详细介绍
http://www.directfb.org/wiki/index.php/Configuring_DirectFB
中文的可以参考这里:
http://hi.baidu.com/weiliqun/blog/item/6f4ba4ebe601eee2cf1b3e57.html
运行DirectFB的例子程序,如果运行成功,则可以开始编写基于DirectFB的应用程序了。(有的平台需要写图形驱动)
但是 DirectFB自身并不提供图形控件,如果要实现菜单等效果,必须高级图形库(GTK+,QT)调用DirectFB来实现。
下面是一张DirectFB的例子的运行图片:
可以参考:
http://elinux.org/Porting_DirectFB
IV. DirectFB的结构