嵌入式圖形庫資源

來源:互聯網
上載者:User
http://www.eefocus.com/blog/horwad/08-02/143122_12d1b.htmlhttp://blog.chinaunix.net/u3/93290/showart_1858653.html[轉載]Open source Embedded Linux Graphics System Software | 2008-02-03轉自刀鋒部落格
作者: bladerunner

Open source Embedded Linux Graphics System Software
----------------------------------------------------------------------------------------
Dillo瀏覽器,小於300K,開源,C and GTK+ Lib,遵循GPL
www.dillo.org
smamary:
映像支援PNG、Jpeg、Gif
HTML/XHTML,no frames
現在還不支援Jsp,JVM
全屏、非模組化使用者介面
高相容性,比如手持功能中的 iPAQ、GMATE’s Yopy、Pison、CerfPod
非基於GECKO的定製化rendering引擎
in more detail
http://www.linuxdevices.com/articles/AT7153264029.html
應用舉例
http://www.linuxdevices.com/articles/AT2869412121.html
----------------------------------------------------------------------------------------
DirectFB
http://directfb.org/
一個小型庫,提供開發人員基於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 在rxvt、ion、blackbox、fltk下支援True-Type字型
OpenSSH
JFFS2
整合Python2.0 、PyGtk 、PyGDKlmlib
相容DedianARM
ipkg
----------------------------------------------------------------------------------------
FBUI
http://home.comcast.net/~plinius/fbui.html
驅動整合進核心
核心32KB、庫檔案17KB
面板式視窗管理器 fbwm 靜態串連 46KB
傳統視窗管理器 fbwm 靜態串連 39KB
終端模擬器 fbterm 靜態串連 46KB
類比時鐘 fbclock 靜態串連 34KB
JPEG/TIFFviewer fbview 靜態串連 42KB
----------------------------------------------------------------------------------------
GGI
http://www.ggi-project.org/
General Graphics Interface
多平台編譯支援
快速、抽象、動態組件、高度最佳化
子項目包括裝置驅動子系統,可擴充使用者空間API庫構架、輸入裝置管理
----------------------------------------------------------------------------------------
GPE
GPE Palmtop Environment
http://gpe.handhelds.org/
GPE掌上型電腦環境
X window system, gtk+ widgets
可以互動SQL、XML
GPL、LGPL
----------------------------------------------------------------------------------------
GtkFB
http://developer.gnome.org/doc/API/2.2/gtk...ramebuffer.html
來源於GIMP項目
Gtk+ 2.0已可以直接對framebuffer進行著色,而非傳統的使用Xwindow system,即使用FrameBuffer訪問顯卡,無需搭配一個Xserver

相關庫:
基礎資料型別 (Elementary Data Type)-Glib
支援不同字型文文書處理庫-Pango
圖片檔案格式-libpng、libjpeg、libtiff
FrameBuffer port-FreeType庫
整合後即為gdk-pixbuf、gdk、gtk三個庫
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
採用動態串連DL的RSS大小(使用的所有物理大小)為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 transparency、DGA、多螢幕、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
http://projects.o-hand.com/matchbox/
Simple flexible XML themes
Tniy-X server
使用在GPE、Tuxscreen phone項目中
採用的硬體有Sharp Zaurus, Psion 5mx...
註:Tuxscreen phone
a limited edition StrongARM Linux project platform
http://www.tuxscreen.net/
----------------------------------------------------------------------------------------
Microwindow
Greg Haerr建立,前身為Nano
特點:提供Win32/WinCE API,便於平台間移植。
其最底層的為一些鍵盤、觸控屏等的I/O驅動,中介層為一些基本的繪圖函數及色彩模型,上層為視窗的API,即Win32/Wince的GDI、Nano-X API。
不需要Xserver
256KB~512KB

slides:
http://www.linuxdevices.com/files/elecjun00/haerr/
----------------------------------------------------------------------------------------
MiniGUI
www.minigui.com
魏永明建立
最初以SVGALib and PThread為基礎,現在包括了圖形抽象層,輸入抽象層,多國語系-ISO8859、GB2312、BIG5、EUCKR、UJIS,多種字型TrueType、Adobe Type1。
分為多線程版MiniGUI、和 單線程MiniGUI Lite版
----------------------------------------------------------------------------------------
NxZilla
http://nxzilla.sourceforge.net/
包括的項目:
goanna--定製的Mozilla 嵌入版本
rdesktop--win下的RDP用戶端
NxZilla--一套允許Mozilla使用Nano-X server的庫
xilla--使nanozilla不再依靠諸如gtk等第三方工具組件和Xlib函數缺陷的移植項目(nanozilla是NxZilla的前身,嵌入式瀏覽器)
mailcrypto--Mozilla的一個外掛程式,使使用者可以使用GnuPG(GNU Privacy Guard)提供的加密功能
oji--一個mozilla的開放Java介面-OJI,使kaffe在Html頁面中可執行applets。
xpdfplugin--不說也明白的外掛程式
rdesktop-nanox--RWin的一個版本,使用Nano-X繪圖,支援KB/M輸入
rdesktop-xlib--RWin的一個版本,使用Xlib繪圖,KB/M輸入
----------------------------------------------------------------------------------------
OpenGL ES
OpenGL嵌入式子項目
詳細介紹
http://www.khronos.org/opengles/#framework
網站
http://www.khronos.org/cgi-bin/ubb/ultimatebb.cgi?category=3
介於硬體和軟體之間的輕量級低層級API
組成:
全3D管線的3D核心子集;
反鋸齒文本幾何圖形的2D核心子集;
光柵影像處理的核心映像子集;
對所有硬體本地API增加功能的組庫
----------------------------------------------------------------------------------------
OpenGUI
http://www.tutok.sk/fastgl/
提供簡單的2D製圖和事件驅動視窗API
支援bmp
其構建在用x86彙編所寫的快速的圖形核心之上的進階別C/C++圖形視窗庫,支援MMX
支援Borland BGI風格和QT風格的視窗
LGPL
大部分庫支援FrameBuffer
OO多平台API (DJGPP、WATCOM、Linux、QNX)
全應用程式開發構架
圖形庫的組成:
三個層
彙編核心層
基本圖形的繪製層API
C++,視窗、按鈕、菜單,位元影像繪製的GUI實現層
----------------------------------------------------------------------------------------
PicoGUI
http://picogui.org/
特點:
widgets和繪圖引擎內建於server
C/S構架
模組化--視頻、輸入、網路子系統可以在編譯時間被置換
目標是為PalmOS整合Xwindows的簡易和速度
去掉ELF二進位映像檔案後,大小為100KB。
----------------------------------------------------------------------------------------
QT/E
http://www.trolltech.com/download/index.html
嵌入版的API基本和Qt/Windows、 Qt/X11相同,但不需要使用X11。
特點:跨平台,物件導向
PAD解決方案:Qt plamtop environment
800KB~3MB
----------------------------------------------------------------------------------------
SDL
http://www.libsdl.org/index.php
http://www.libsdl.org/intro.cn/toc.html
Simple DirectMedia Layer
free multimedia API,cross platform
快速存取圖形framebuffer、音訊裝置
《文明》即採用其移植
支援Linux、Win32、BeOS、MacOS、Solaris、IRIX、FreeBSD
底層用C實現,使用者層用C++實現;並捆綁了多種語言:Perl、Python、ML、Eiffel
----------------------------------------------------------------------------------------
TinyX
http://xfree86.org
Tiny X server即Xfree86的簡化版,Keith Packard建立
1MB~3MB
----------------------------------------------------------------------------------------
ViewML
Viewable Markup Language
http://www.microwindows.org/ViewMLDesign.html
嵌入式linux開源瀏覽器
需要760KB-2.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/
http://www.wmlscript.de/Referenz/Libraries/WmlBrowser.html
無線網際網路瀏覽器
核心部分是binary WML decoder
特點:
基於FrameBuffer上實現,可運行於許多協議棧上,諸如:WAP、http、https
使用不同的User Agent profile ,如phone、pda、appliances
實現WAP 的所有可選功能
IPv4、IPv6、藍芽、紅外傳輸
WMLScript、WML content
plugable content arch
WTLS and Certificates

----------------------------------------------------------------------------------------
Commercial Embedded Linux Graphics System
----------------------------------------------------------------------------------------
Metro-X
http://www.lynuxworks.com/partners/show_product.php?ID=83

NetFront Browser
http://www.access-netfront.com/
Access Systems Amerian. Inc.
主要開發地為USA和Japan
支援的裝置生產商很多,如NTTDoCoMo、Sega、Nintendo等
Japan廠商。主要用於TV、PDA、STB、CarNavigationSystem、SmartPhone、Web/screenPhone、VerticalIntranet terminal、Video game console、dedicated word processor、Internet kiosk
特點:
大小:代碼小於270KB,執行RAM 2MB
支援Html、Frames、javs script、cookies、web printing、多語言相容
可裁減的外掛程式有:Mail、SSL、JVM...

支援的處理器有:ARM core、StrongARM core、Hitachi SH、PowerPC、MIPS core、Mitsubishi M32R/D

SDK有兩個配置版本:
使用GTK+的Xwindow版本、使用SDL的非Xwindow版本
組件包括:
NetFront brower kernel、一個簡單的UI模組、PIM組件、
Internet Mail模組、一個簡單的對等介面層庫、
圖形層(GTK/SDL),可選的有AVE-SSL,SSL 模組
----------------------------------------------------------------------------------------
ANT Fresco Browser
http://www.antlimited.com/products/fresco.htm
主要針對互動式TV、消費電子、嵌入裝置,源碼發放
支援HTML、javs script擴充、Flash、SSL、預測文本輸入、Agfa和Bitstream高品質反鋸齒字型移植容易
----------------------------------------------------------------------------------------
PIXIL
http://embedded.centurysoftware.com/pixil/pixil_pda11.php

進階互連網裝置、無線通訊、網路、web瀏覽、電源管理、GUI

基於嵌入式Linux開放標準的完全整合構架,可以開發商耗時耗錢的組件整合,並確保特定應用便於使用、相容和維護
PIXIL OE
PIXIL open Enviroment
Century開發商已針對特定嵌入式裝置進行了最佳化。MicroWindows系統內建於PIXIL解決方案核心中的smart flat panels
以源碼的方式自動建立framebuffer,X11,交叉編譯環境。
支援的硬體:StrongARM、MIPS、PPC、SH、x86包含的組件有:
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遵循GPL和PIXIL商業協議
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 --
完全的源碼、makefile、build環境
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--包括OE、PIM suite 、e-mail client、web browser、多媒體app,內建了Microwindows

PIXIL PAD--包括Linux kernel、screentop、app manager、net browser、多媒體app...

PIXIL thin client--
Citrix ICA and Microsoft RDP client
Internet browser: HTML, CSS, javs script, 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
http://www.windriver.com/cgi-bin/partnersh...Prod.cgi?id=882
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 Espresso lightweight GUI toolkit
http://www.linuxdevices.com/products/PD9895797586.html
----------------------------------------------------------------------------------------
NetClue: Clue WBC browser
http://www.netcluesoft.com/desktop/desktop.php3?sub=products
純Java,非常緊湊,模組化設計,平台無關
支援Unicode國際字元
smooth scrolling
流線型顯示
web列印
定製化的UI
WAP、HTML、XML、HTTP、CSS、DOM、cookies、JSP、java applets
----------------------------------------------------------------------------------------
LinuxPEG Portable Embedded GUI
Vendor: Swell Software
http://www.swellsoftware.com/Linux.html
LinuxPEG是popular PEG library的派生,針對嵌入式系統。
為現在POSIX 多線程嵌入式Linux可以應用在LCD、Video顯示商。
特點:
著作權自由,無版稅,提供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支援Windows、Mac、Unix、Linux,原始碼只需要重編譯即可運行。
6~8MB 包括OS在內的ROM

-------------------------------------------
註:基本圖形系統構成
初級的繪圖函數庫Glib,往上組合成基本視窗組件widgets;然後由此寫出WM;

Widget視窗構架部分
GTK、FLTK、QT、wxWindows

GTK
http://www.gtk.org/

FLTK
Fast Light Tool Kit
http://www.fltk.org/
http://www3.telus.net/public/robark/

wxWindows
http://www.wxwidgets.org/embedded.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.