DirectFb总结

DirectFb总结

ID:37911602

大小:207.50 KB

页数:13页

时间:2019-06-02

DirectFb总结_第1页
DirectFb总结_第2页
DirectFb总结_第3页
DirectFb总结_第4页
DirectFb总结_第5页
资源描述:

《DirectFb总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、DirectFB总结第一、DirectFB简介1、DirectFB是一个轻量级的提供硬件图形加速,输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在LinuxFramebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法支持的图形算法来完成硬件加速的层。DirectFB是为嵌入式系统而设计。它是以最小的资源开销来实现最高的硬件加速性能。2、DirectFB所处结构层次如图:DirectFB依赖于FrameBuffer层。在使用DirectFb之前,必须先对FB进行初始化。通常GenericGFXDriver模块主要是检查是否有能被Direc

2、tFb加速的硬件,如果有,就由GFXdrivers模块对硬件进行加速。如果没有,则直接软件操作。下图为DirectFB的组成模块:从这五个文件可以看出,DirectFb主要由这五部分组成:Gfxdrivers:上面有所介绍,主要是对硬件进行加速。Inputdrivers:主要是对输入设备的驱动,如(鼠标,键盘等输入设备)。Interfaces:主要包括图片解码接口,视频解码接口,字库接口等。Systems:系统接口,如(处理时钟,多线程处理等)。Wm:用于窗口管理等。第二、DirectFB中一些主要数据类型之间的关系层(Layers)表示一块儿独立的图像缓冲区。

3、大多数的嵌入式设备都有多个层。他们由硬件使用合适的alpha值来blending,然后显示。表面(Surface)用来保存像素数据的保留内存区域。DirectFB的Drawing和blitting操作最终都是作用于表面(surfaces)上.表面的内存可以从显存(videomemory)(MMZ)得到,也可以从系统内存(systemmeomroy)得到,这由给定的限制决定。主层(PrimarySurface)表示特定层的framebuffer的特殊表面。如果主表面是单缓冲的,任何作用到这个主层的操作,都会直接在屏幕上见到。他们之间的关系主要是一些一对一或是一对多

4、的关系:1IDirectFB(顶层)<-->N屏幕(Screens)1屏幕(Screen)<-->N层(Layers)1层(Layer)<-->1主表面(PrimarySurface)1层(Layer)<-->N窗口(Windows)1窗口(Window)<-->1窗口表面(WindowSurface)1表面(Surface)<-->N子表面(Subsurfaces)通常的状况是一个屏幕有一个显示层,但是DFB支持他们每个有多个实例层(Layers)和屏幕(Screens)每一个屏幕可以有一个或是多个层,通常,一个屏幕只有一个层,但是某些支持overlays的系

5、统,由于硬件支持一层显示在另一层上面,可以有多层。屏幕(Screens)和(Windows)屏幕不能直接创建窗口(Window),但是你能请求得到一个屏幕(Screen)的主层(PrimaryLayer)的ID,然后请求IDirectFB接口(interface)给你那个层(Layer)的接口,然后通过这个接口来创建窗口。表面(Surfaces)和(Windows)每一个窗口有一个和它关联的表面,画在表面上的内容并不会马上显示在屏幕上,因为窗口管理器会负责将窗口的所有表面组合到主表面上---基于所要刷新的区域和堆栈顺序。当有变化的时候,表面的Flip()函数会通

6、知窗口管理器。表面(Surfaces)和(Layers)一个层同样有一个和他关联的表面;这个表面是这个层的屏幕内存的直接表现,在独占(exclusive)模式下,你只能访问这个表面,否则,你只能创建一个窗口,然后用窗口管理器来绘制这个表面。第三、DirectFB虚拟机环境搭建1.首先下载一下两个包并解压。tar-zxvfDirectFB-xxxx.tar.gztar-zxvfDirectFB-examples-xxxx.tar.gz 2.安装DirectFBcd/home/DirectFB-xxxx./configuremakemakeinstall 3.安装D

7、irectFB-examplea).vi/boot/grub/grub.conf在kernel后面加上vga=0x0317把frambuffer启动,如:#****************start*************#titleFedoraCore(2.6.9-1.667)root(hd0,0)kernel/vmlinuz-2.6.9-1.667roroot=LABEL=/rhgbquietvga=0x0317initrd/initrd-2.6.9-1.667.img#****************stop**************##更新数据库:b

8、).updatedb c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。