DirectFB 之 简介
来源:互联网 发布:matlab数据标准化 编辑:程序博客网 时间:2024/05/22 03:06
1. DirectFB概述
首先 DirectFB 类似于桌面中的 XFree86 。桌面中的 XFree86 不需要 Frame Buffer 设备,而 DirectFB 需要。
显卡加速在嵌入式 GUI 中需要实现很多图形功能,包括图形绘制以及拷贝等。其中的许多功能需要进行大量的数据传递(如图形拷贝),或者需要进行大量的数值运算(如画样条曲线)。如果这些功能都由纯软件实现的话,会占用大量的 CPU 时间并且需要传递大量的数据,从而影响了图形性能。许多显卡芯片带有图形处理器,能够从硬件上实现一部分图形功能。支持硬件加速的图形库可以通过图形处理器实现这些图形功能,从而减轻了 CPU 的负担并减少了数据在总线上的传输时间,提高了图形性能。
DirectFB 项目是由德国 Convergence 公司推动的 Open source 计划的一部分,它是专门为满足嵌入式设备要求而开发的小巧、强大、灵活和易于使用的图形系统,并且试图成为一个建构于 Linux Framebuffer Device 之上的新图形标准。它在 FrameBuffer 的基础上提供了图形加速、输入设备处理提取、透明窗口和多重显示层的功能,能够对嵌入式系统 GUI 有较好的支持。与那些通用的嵌入式 GUI 系统相比,它具有非常简洁、高效的体系结构和硬件图形加速功能。
2. DirectFB体系结构
(1)DirectFB访问硬件显卡
DirectFB依靠内核中的Framebuffer设备驱动(/dev/fb)所提供的现有接口来访问图形硬件。这就意味着DirectFB必须要有一个能够正常工作的Framebuffer设备驱动才能正常运行。有些芯片组需要在Linux内核中有特定的Framebuffer驱动。对于那些没有被支持的芯片组,VESAFramebuffer也能正常工作(但会有些限制)。不管图形加速功能有没有用到,DirectFB都将用Framebuffer设备驱动来完成以下任务:
A. 设置视频模式(分辨率、色深、时序)
B. 从Framebuffer到显卡的内存映射
C. 改变Framebuffer视口(针对双缓冲)
如果某种显卡被DirectFB支持且在Linux内核中也有这种图形处理器的Framebuffer驱动。DirectFB则利用Framebuffer设备做如下额外的工作:
A. 映射显存IO端口
B. 关闭Framebuffer驱动中自带的加速功能
针对具体的图形操作(如图片拷贝),DirectFB加速驱动访问显存映射的图形处理器I/O端口向图形处理器提交命令。也就是说真正的硬件加速完全是在用户空间实现。这样DirectFB就可以对它支持的图形处理器提供最大限度的硬件图形加速。
(2)DirectFB访问输入设备
DirectFB使用Linux内核提供的标准设备接口访问输入设备,而不是直接访问输入硬件。
(3)DirectFB支持的系统
DirectFB支持的系统有:fbdev、osx(Mac OS)、sdl、vnc、x11,这可以在DirectFB代码目录中的systems中找到。在具体开发基于DirectFB的应用程序时,DirectFB支持的系统可以通过其配置文件directfbrc来配置。
0 0
- DirectFB 之 简介
- DirectFB简介
- DirectFB::->Fusion简介
- 【转】DirectFB::->Fusion简介
- directfb嵌入式图形界简介
- DirectFB简介以及移植[一]
- GUI开发之DirectFB
- directfb之diretfbrc详解
- DirectFB 之 环境配置
- DirectFB 之 分段动画
- DirectFB 之 字体显示
- DirectFB
- DirectFB
- DirectFB
- DirectFB
- DirectFB
- directfb
- DirectFB 之 FillRectangle 绘制矩形
- 谈谈RTP传输中的负载类型和时间戳
- java中字符串连接+=和concat函数以及stringbuffer的append的效率问题
- 向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们
- android SQLite从例子中学习
- 安卓环境配置问题——A folder failed to be renamed or moved
- DirectFB 之 简介
- jquery插件任意位置浮动固定层
- Autoconf/automake step by step
- Android.mk
- 蓝牙的SDP协议总结
- 修改有数据oracle字段类型 从number转为varchar
- windows phone 给系统控件颜色
- 谈谈LTE 4G技术(by quqi99)
- python操作redis简单例子