Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1683084
  • 博文数量: 584
  • 博客积分: 13857
  • 博客等级: 上将
  • 技术积分: 11883
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-16 09:34

分类: LINUX

2010-11-15 12:07:44

DirectFB

一个小型库,提供开发者基于FrameBuffer上进行图形加速、输入设备处理提取、支持透明窗口和多重显示层的整合窗口系。
对于不支持的硬件的图形操作,其提供了一个HAL

提供的图形操作
矩形填充/绘图
三角形填充/绘图
绘线
Flat shaded triangles
(Stretched) blitting
alpha
通道混合(a.k.a texture alpha)
Blending with a constant alpha blend factor (a.k.a. alpha modulation)
Nine different blending functions respectively for source and destination, so all
Porter/Duff rules are supported
Colorizing (a.k.a. color modulation)
Source color keying
Destination color keying

DirectFB
有自己的显存资源管理,诸如显示层或输入设备之类的资源被锁定从而独占访问。

Font Provider (currently DirectFB bitmap font, TrueType via FreeType 2)
Image Provider (currently PNG, GIF and JPEG)
Video Provider (currently Video4Linux, AVI (using avifile), MPEG1/2 (using libmpeg3), macromedia flash (using libflash))

the Familiar Project
an open source Linux distro for PDAs
Compaq iPAQ h3600-series

完全基于Tiny-X server
使用Xft APIs rxvtionblackboxfltk下支持True-Type字体
OpenSSH
JFFS2
整合Python2.0 PyGtk PyGDKlmlib
兼容DedianARM
ipkg
----------------------------------------------------------------------------------------
FBUI

驱动整合进内核
核心32KB、库文件17KB
面板式窗口管理器 fbwm 静态连接 46KB
传统窗口管理器 fbwm 静态连接 39KB
终端模拟器  fbterm  静态连接 46KB
模拟时钟     fbclock  静态连接 34KB
JPEG/TIFFviewer  fbview
静态连接  42KB
----------------------------------------------------------------------------------------
GGI

General Graphics Interface
多平台编译支持
快速、抽象、动态组件、高度优化
子项目包括设备驱动子系统,可扩展用户空间API库构架、输入设备管理
----------------------------------------------------------------------------------------
GPE
GPE Palmtop Environment

GPE
掌上电脑环境
X window system
gtk+ widgets
可以交互SQLXML
GPL
LGPL
----------------------------------------------------------------------------------------
GtkFB
http://developer.gnome.org/doc/API/2.2/gtk/gtk-framebuffer.html
来源于GIMP项目
Gtk+ 2.0
已可以直接对framebuffer进行着色,而非传统的使用Xwindow system,即使用FrameBuffer访问显卡,无需搭配一个Xserver

相关库:
基本数据类型-Glib
支持不同字型文字处理库-Pango
图片文件格式-libpnglibjpeglibtiff
FrameBuffer port
FreeType
整合后即为gdk-pixbufgdkgtk三个库
gdk-pixbuf  
处理图片影像的库
gdk
视窗绘图系统的抽象层,framebuffer的处理
gtk  
高级用户界面

几乎所有FB功能代码都包含在gdk中,称为通用gtk代码;有一些FB功能代码包含在gtk中用来管理窗口。

GtkFB shared lib    2MB
FreeType lib   202KB
libjpeg    138KB
libpng   126KB

memory  mapped statistics:
Arial font --  72KB
local info -- 112KB
libc code --  1444KB
binary     --  120KB
heap       -- 836KB
stack      -- 24KB
采用动态连接DLRSS大小(使用的所有物理大小)为3.4MB,静态连接SL的为2.5MB;
DL
虚拟内存总大小为6.6MB,进程间共享2.3MB;
SL
的为5.2MB,共享的为1.7MB;

gdk
库有三个基本任务
绘图、处理交替窗口、产生事件。gdk核心很像Xwindow系统,事实上其使用了一个经修改的X-libmi。交替窗口处理是指在一个窗口树中,确定在哪个窗口上进行操作。事件产生是通知gdk用户输入、窗口重绘。它是X产生的一个子集。因为gtk不需要所有X发出事件及其信息。
当程序连接了GtkFB,其最先调用gtk_init()运行。同时,GtkFB打开FB设备(选择想要的分辨率和位深),键盘,鼠标,触控屏。然后到指定目录去读取字型,继续初始化window和事件系统。
GtkFB
内建了普通键盘及鼠标的驱动,包括触控屏,当然添加其他的也是很容易的。GtkFB不使用硬件加速,但支持。

缺点:
不支持多进程,不适合设计大型系统。
如果GTK+程序中使用 direct X 调用,由于其不备GtkFB支持,所以需要修改。
由于对硬件加速代码很难写,所以其在大型系统上运行很慢。
不支持对功能还有:network transparencyDGA、多屏幕、Xv扩展、Xrender扩展。

通过以下命令可以编译相应部分,当然也可以让binaries变得更小:
glib
./configure --enable-debug=no  --disable-mem-pools=yes

pango
./configure --enable-debug=no --with-included-modules=yes

gtk+
./configure --enable-debug-no  --with-gdktarget
=framebuffer  --disable-shadowfb  --disable-modules--with-included-loaders=xpm,png,jpeg
----------------------------------------------------------------------------------------
MatchBox

Simple flexible XML themes
Tniy-X server
使用在GPETuxscreen phone项目中
采用的硬件有Sharp Zaurus, Psion 5mx...
注:Tuxscreen phone
a limited edition StrongARM Linux project platform

----------------------------------------------------------------------------------------
Microwindow
Greg  Haerr
创建,前身为Nano
特点:提供Win32/WinCE API,便于平台间移植。
其最底层的为一些键盘、触控屏等的I/O驱动,中间层为一些基本的绘图函数及色彩模型,上层为窗口的API,即Win32/WinceGDINano-X API
不需要Xserver
256KB
512KB

slides

http://www.linuxdevices.com/files/elecjun00/haerr/
----------------------------------------------------------------------------------------
MiniGUI

魏永明创建
最初以SVGALib and PThread为基础,现在包括了图形抽象层,输入抽象层,多国语系-ISO8859GB2312BIG5EUCKRUJIS,多种字型TrueTypeAdobe Type1
分为多线程版MiniGUI、和 单线程MiniGUI Lite
----------------------------------------------------------------------------------------
NxZilla

包括的项目:
goanna--
定制的Mozilla 嵌入版本
rdesktop--win
下的RDP客户端
NxZilla--
一套允许Mozilla使用Nano-X server的库
xilla--
使nanozilla不再依靠诸如gtk等第三方工具组件和Xlib函数缺陷的移植项目(nanozillaNxZilla的前身,嵌入式浏览器)
mailcrypto--Mozilla
的一个插件,使用户可以使用GnuPG(GNU Privacy Guard)提供的加密功能
oji--
一个mozilla的开放Java接口-OJI,使kaffeHtml页面中可执行applets
xpdfplugin--
不说也明白的插件
rdesktop-nanox--RWin
的一个版本,使用Nano-X绘图,支持KB/M输入
rdesktop-xlib--RWin
的一个版本,使用Xlib绘图,KB/M输入
----------------------------------------------------------------------------------------
OpenGL ES
OpenGL
嵌入式子项目
详细介绍

站点

介于硬件和软件之间的轻量级低级别API
组成:
3D管线的3D核心子集;
反锯齿文本几何图形的2D核心子集;
光栅图像处理的核心图像子集;
对所有硬件本地API增加功能的组库
----------------------------------------------------------------------------------------
OpenGUI

提供简单的2D制图和事件驱动窗口API
支持bmp
其构建在用x86汇编所写的快速的图形内核之上的高级别C/C++图形窗口库,支持MMX
支持Borland BGI风格和QT风格的窗口
LGPL
大部分库支持FrameBuffer
OO
多平台API DJGPPWATCOMLinuxQNX
全应用程序开发构架
图形库的组成:
三个层
汇编内核层
基本图形的绘制层API
C++
,窗口、按钮、菜单,位图绘制的GUI实现层
----------------------------------------------------------------------------------------
PicoGUI

特点:
widgets
和绘图引擎内建于server
C/S
构架
模块化--视频、输入、网络子系统可以在编译时被置换
目标是为PalmOS整合Xwindows的简易和速度
去掉ELF二进制映像文件后,大小为100KB
----------------------------------------------------------------------------------------
QT/E

嵌入版的API基本和Qt/Windows Qt/X11相同,但不需要使用X11
特点:跨平台,面向对象
PAD
解决方案:Qt plamtop environment
800KB
3MB
----------------------------------------------------------------------------------------
SDL


Simple DirectMedia Layer
free multimedia API
cross platform
快速存取图形framebuffer、音频设备
《文明》即采用其移植
支持LinuxWin32BeOSMacOSSolarisIRIXFreeBSD
底层用C实现,用户层用C++实现;并捆绑了多种语言:PerlPythonMLEiffel
----------------------------------------------------------------------------------------
TinyX

Tiny X server
Xfree86的简化版,Keith Packard创建
1MB
3MB
----------------------------------------------------------------------------------------
ViewML
Viewable Markup Language

嵌入式linux开源浏览器
需要760KB2.1MB RAM
其采用KDE下设计出众、显示性能良好的kfm Html显示引擎。
移植引擎时,采用了thin glue layer ,使用小而快的FLTK应用程序架构。
运行于Microwindows
注:thin glue layer
http://www.linuxdevices.com/articles/AT5848940287.html
----------------------------------------------------------------------------------------
WML Browser
Wireless Markup language
http://wmlbrowser.mozdev.org/

无线因特网浏览器
核心部分是binary WML decoder
特点:
基于FrameBuffer上实现,可运行于许多协议栈上,诸如:WAPhttphttps
使用不同的User Agent profile ,如phonepdaappliances
实现WAP 的所有可选功能
IPv4
IPv6、蓝牙、红外传输
WMLScript
WML content
plugable content arch
WTLS and Certificates


----------------------------------------------------------------------------------------
"Commercial" Embedded Linux Graphics System Software
----------------------------------------------------------------------------------------
Metro-X                 


NetFront Browser

Access Systems Amerian. Inc.
主要开发地为USAJapan
支持的设备生产商很多,如NTTDoCoMoSegaNintendo
Japan
厂商。主要用于TVPDASTBCarNavigationSystemSmartPhoneWeb/screenPhoneVerticalIntranet terminalVideo game consolededicated word processorInternet kiosk
特点:
大小:代码小于270KB,执行RAM 2MB
支持HtmlFramesjavascriptcookiesweb printing、多语言兼容
可裁减的插件有:MailSSLJVM...

支持的处理器有:ARM coreStrongARM coreHitachi SHPowerPCMIPS coreMitsubishi M32R/D

SDK
有两个配置版本:
使用GTK+Xwindow版本、使用SDL的非Xwindow版本
组件包括:
NetFront brower kernel
、一个简单的UI模块、PIM组件、
Internet Mail
模块、一个简单的对等接口层库、
图形层(GTK/SDL),可选的有AVE-SSLSSL 模块
----------------------------------------------------------------------------------------
ANT Fresco Browser

主要针对交互式TV、消费电子、嵌入设备,源码发放
支持HTMLjavascript扩展、FlashSSL、预测文本输入、AgfaBitstream高质量反锯齿字体移植容易
----------------------------------------------------------------------------------------
PIXIL


高级互联网设备、无线通信、网络、web浏览、电源管理、GUI

基于嵌入式Linux开放标准的完全整合构架,可以开发商耗时耗钱的组件整合,并确保特定应用易于使用、兼容和维护
PIXIL OE
PIXIL open Enviroment
Century
开发商已针对特定嵌入式设备进行了优化。MicroWindows系统内置于PIXIL解决方案核心中的smart flat panels
以源码的方式自动创建framebufferX11,交叉编译环境。
支持的硬件:StrongARMMIPSPPCSHx86包含的组件有:
Microwindows
ViewML
FLNX-PDA -- a flat-style custom modified FLNX
NxScreentop--a screentop and window manager, complete with backlight control, a clock, and input method launchers
NxTerm--
终端模拟器
NxClock--
模拟时钟
NxBill--XBill
Microwindows版本
Doom Game
计算器
Screen calibrator
手写识别软件
弹出式键盘

PIXIL
遵循GPLPIXIL商业协议
GPL
下的当然以源码方式发布
商业版可参看公司相关协议

功能:
PIXIL PIM
PIXIL Desktop
PIXIL Internet Connectivity --ViewML  Browser
Email client
PIXIL Applications --MP3 player
Voice recorder Terminal emulator Calculator

PIXIL SDK
Desktop Emulation and Development --
包括一个软件模拟器,用来模拟目标设备运行环境。
PIXIL SDK Components --
完全的源码、makefilebuild环境
all runtime binarity
完整的开发工具链
所需库文件
目标平台桌面开发模拟器
FLNX 2D
3D TV widgets 组件集

支持平台
Applied Data Systems Graphics Client Plus
Compaq iPAQ
Intel Assabet
National Semiconductor SP3GX01 WebPAD Reference Platform
National Semiconductor SP4SC30 Thin Client Development Board
National Semiconductor SP4GX10 Thin Client Development Board

PIXIL
绑定组件集
目标设备的开发工具整合

PIXIL PDA--
包括OEPIM suite e-mail clientweb browser、多媒体app,内建了Microwindows

PIXIL PAD--
包括Linux kernelscreentopapp managernet browser、多媒体app...

PIXIL thin client--
Citrix ICA and Microsoft RDP client
Internet browser: HTML, CSS, javascript, Flash, Real Audio/Video
Linux kernel

技术特点:
32 MB minimum RAM / Flash
Ethernet, 802.11b
Client-side audio support
Local USB support
Samba and NFS Support
Font and RGB server support
Screen resolution up to 1280x1024
Multi protocol, multi client, and multiple server session support
CompactFlash and DiskOnChip
Local window manager with virtual Windows desktop
remote window manager and XDM
Multi language support
----------------------------------------------------------------------------------------
Espial Suite

windriver
Java应用层,JVM运行于设备栈顶层
套件包括
Espial DeviceTop  graphical OSGi client
http://www.linuxdevices.com/products/PD6340767984.html
Espial Escape web browser
http://www.linuxdevices.com/products/PD5203952494.html
Espial Ebox email client
http://www.linuxdevices.com/products/PD7904716349.html
Espial Esdivsso lightweight GUI toolkit
http://www.linuxdevices.com/products/PD9895797586.html
----------------------------------------------------------------------------------------
NetClue: Clue WBC browser

Java,非常紧凑,模块化设计,平台无关
支持Unicode国际字符
smooth scrolling
流线型显示
web
打印
定制化的UI
WAP
HTMLXMLHTTPCSSDOMcookiesJSPjava applets
----------------------------------------------------------------------------------------
LinuxPEG Portable Embedded GUI
Vendor: Swell Software

LinuxPEG
popular PEG library的派生,针对嵌入式系统。
为现在POSIX 多线程嵌入式Linux可以应用在LCDVideo显示商。
特点:
版权自由,无版税,提供free demo
small footprint
完全C++源码
支持流行的目标处理器、视频控制器、I/O设备
易于移植
容易缩减开发时间
业界领先的多语言支持开发

开发工具包括:
WindowBuilder
可视化设计工具
FontCapture
嵌入字体产生器
ImageConvert ROMable
----------------------------------------------------------------------------------------
Qtopia
Qt-based mobile palmtop environment
Vendor: Trolltech
基于Qt/E
主要应用: Sharp  Zaurus  SL-5500  PDA
信息管理、Internet连接、娱乐、synchronization across multiple desktop OS
Qtopia
支持WindowsMacUnixLinux,源代码只需要重编译即可运行。
6
8MB 包括OS在内的ROM

-------------------------------------------
注:基本图形系统构成
初级的绘图函数库Glib,往上组合成基本视窗组件widgets;然后由此写出WM

Widget
窗口构架部分
GTK
FLTKQTwxWindows

GTK          


FLTK
Fast Light Tool Kit        



wxWindows

阅读(2269) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~