DirectFB应用程序编程概述

DirectFB

1. DirectFB概述

在嵌入式GUI中需要实现多种图形功能,包括图形绘制以及图形拷贝等。其中的许多功能需要进行大量的数据传递(如图形拷贝)或者需要进行大量的数值计算(如画样条曲线)。如果这些功能都由软件来实现的话,会占用大量的CPU时间且需要传递大量的数据,从而影响了图形性能。许多显示芯片都带有图形处理器,能够从硬件上实现一部分图形功能。支持硬件加速的图形库就可以通过图形处理器来实现这些功能,从而减轻了CPU的负担,并减少了数据在总线上的传输时间,提高了图形性能。

正是基于以上的情况,出现了DirectFB图形库。

DirectFB图形库是专门为满足嵌入式设备要求而开发的小巧、强大、灵活和易于使用的图形库,并且试图成为一个构建于Linux Framebuffer Device之上的新图形标准。它在Framebuffer的基础上提供了图形加速、输入设备处理提取、透明窗口和多重显示层的功能,能够对嵌入式GUI有较好的支持。与那些通用的嵌入式GUI系统相比,它具有非常简洁、高效的体系结构和硬件图形加速功能。

2. DirectFB体系结构

 (1DirectFB访问硬件显卡

      DirectFB依靠内核中的Framebuffer设备驱动(/dev/fb)所提供的现有接

      口来访问图形硬件。这就意味着DirectFB必须要有一个能够正常工作的

      Framebuffer设备驱动才能正常运行。有些芯片组需要在Linux内核中有

      特定的Framebuffer驱动。对于那些没有被支持的芯片组,VESA 

      Framebuffer也能正常工作(但会有些限制)。不管图形加速功能有没有用

      到,DirectFB都将用Framebuffer设备驱动来完成以下任务:

      A. 设置视频模式(分辨率、色深、时序)

      B. Framebuffer到显卡的内存映射

      C. 改变Framebuffer视口(针对双缓冲)

      如果某种显卡被DirectFB支持且在Linux内核中也有这种图形处理器的

      Framebuffer驱动。DirectFB则利用Framebuffer设备做如下额外的工作:

      A. 映射显存IO端口

      B. 关闭Framebuffer驱动中自带的加速功能

      针对具体的图形操作(如图片拷贝),DirectFB加速驱动访问显存映射

      图形处理器IO端口向图形处理器提交命令。也就是说真正的硬件加速

      完全是在用户空间实现。这样DirectFB就可以对它支持的图形处理器提

      供最大限度的硬件图形加速。

(2)DirectFB访问输入设备

     DirectFB使用Linux内核提供的标准设备接口访问输入设备,而不是直接

     访问输入硬件。

(3)DirectFB支持的系统

     DirectFB支持的系统有:fbdevosxMac OS)、sdlvncx11,这可以在

     DirectFB代码目录中的systems中找到。在具体开发基于DirectFB的应用

     程序时,DirectFB支持的系统可以通过其配置文件directfbrc来配置。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值