1 轻量级图形处理库DirectFB
DirectFB提供了丰富的图形操作方法,而且所有操作在芯片支持的前提下均可进行硬件加速。例如:矩形和三角形绘制和填充、BLIT、Porter/Duff规则混色等。Di—reetFB内部集成了一个简易的窗口系统,支持透明窗体。显示层和输入设备等资源可以通过加锁的方式访问。DirectFB对任何通用表面(surface)都提供了抽象,这使得窗口和全屏之间的切换只需要简单的设置合作级别即可。
1.1 DirectFB整体框图介绍
DirectFB通过操作系统中Frame Buffer驱动程序提供的内核接口来访问图形硬件设备,这意味着DirectFB需要Frame Buffer驱动才可以工作。无论是否使用硬件加速,DirectFB都需要驱动完成设置分辨率、色深等视频模式,映射Frame Buffer等操作。对于特定的图形操作,DirectFB通过访问图形硬件的内存映射端口,提交命令给显卡加速引擎来实现。其整体框架如图1所示。
1.2 DirectFB接口框架
DirectFB提供了一套C接口给用户调用DirectFB的各项功能。在DirectFB中,接口实质上是一个结构体,结构体中包含了功能函数指针,不同接口的函数指针指向不同的核心函数。比如IDireetFBSurface接口代表屏幕中可操作的区块,其中封装了BLIT、画框、画线和FLIP等核心操作。
其中IDirectFB是整个库的顶层接口,可以通过DirectFBCreate函数来创建,其他接口可以通过这个接口创建。所有存在的接口也可以通过它来枚举访问。图2展示了DireetFB的接口框架。
表1对主要接口模块的功能作了简单说明。具体的操作可以查看DirectFB官方网站的相关帮助文档。
2 DirectFB应用开发
下面通过一个例子说明使用DirectFB接口的开发方法: