DirectFb总结.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DirectFb总结

DirectFB总结 第一、DirectFB 简介 1、DirectFB是一个轻量级的提供硬件图形加速,输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在LinuxFramebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法支持的图形算法来完成硬件加速的层。DirectFB是为嵌入式系统而设计。它是以最小的资源开销来实现最高的硬件加速性能DirectFB所处结构层次如图: DirectFB依赖于Frame Buffer层。在使用DirectFb之前,必须先对FB进行初始化。通常Generic GFX Driver模块主要是检查是否有能被DirectFb加速的硬件,如果有,就由GFX drivers 模块对硬件进行加速。如果没有,则直接软件操作。 下图为DirectFB的组成模块: 从这五个文件可以看出,DirectFb主要由这五部分组成: Gfxdrivers:上面有所介绍,主要是对硬件进行加速。 Inputdrivers:主要是对输入设备的驱动,如(鼠标,键盘等输入设备)。 Interfaces:主要包括图片解码接口,视频解码接口,字库接口等。 Systems:系统接口,如(处理时钟,多线程处理等)。 Wm:用于窗口管理等。 第二、DirectFB 中一些主要数据类型之间的关系 层(Layers) 表示一块儿独立的图像缓冲区。大多数的嵌入式设备都有多个层。他们由硬件使用合适的alpha值来blending,然后显示。 表面 (Surface) 用来保存像素数据的保留内存区域。DirectFB的Drawing和blitting操作最终都是作用于表面(surfaces)上.表面的内存可以从显存(video memory)(MMZ)得到,也可以从系统内存(system meomroy)得到,这由给定的限制决定。 主层 (Primary Surface) 表示特定层的frame buffer的特殊表面。如果主表面是单缓冲的,任何作用到这个主层的操作,都会直接在屏幕上见到。 他们之间的关系主要是一些一对一或是一对多的关系: 1 IDirectFB (顶层) -- N 屏幕(Screens) 1 屏幕(Screen) -- N 层(Layers) 1 层(Layer) -- 1 主表面(Primary Surface) 1 层(Layer) -- N 窗口(Windows) 1 窗口(Window) -- 1 窗口表面(Window Surface) 1 表面(Surface) -- N 子表面(Subsurfaces) 通常的状况是一个屏幕有一个显示层,但是DFB支持他们每个有多个实例 层(Layers)和屏幕( Screens) 每一个屏幕可以有一个或是多个层,通常,一个屏幕只有一个层,但是某些支持overlays的系统,由于硬件支持一层显示在另一层上面,可以有多层。 屏幕(Screens)和(Windows) 屏幕不能直接创建窗口(Window),但是你能请求得到一个屏幕(Screen)的主层(Primary Layer)的ID,然后请求IDirectFB接口(interface)给你那个层(Layer)的接口,然后通过这个接口来创建窗口。 表面(Surfaces)和(Windows) 每一个窗口有一个和它关联的表面,画在表面上的内容并不会马上显示在屏幕上,因为窗口管理器会负责将窗口的所有表面组合到主表面上---基于所要刷新的区域和堆栈顺序。当有变化的时候,表面的Flip()函数会通知窗口管理器。 表面(Surfaces)和(Layers) 一个层同样有一个和他关联的表面;这个表面是这个层的屏幕内存的直接表现,在独占(exclusive)模式下,你只能访问这个表面,否则,你只能创建一个窗口,然后用窗口管理器来绘制这个表面。 第三、DirectFB 虚拟机环境搭建 1.首先下载一下两个包并解压。 tar -zxvf DirectFB-xxxx.tar.gz tar -zxvf DirectFB-examples-xxxx.tar.gz ? 2.安装DirectFB cd /home/DirectFB-xxxx ./configure make make install ? 3.安装DirectFB-example a).vi /boot/grub/grub.conf在kernel后面加上vga=0x0317把frambuffer启动,如: #****************start*************# title Fedora Core (2.6.9-1.667) root (hd0,0) kernel /vmlinuz-2.6.9-1.667 ro root=LABEL=/ rhgb quiet

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档