gtkfb以2.0版本為首,GTK+將支持Linux幀緩衝,而不只能用X Windows系統。
簡介,總觀,架構,優點,缺點,
簡介
以2.0版本為首,GTK+將支持Linux幀緩衝,而不只能用X Windows系統。這對於有限資源的嵌入式系統和設備來說是一個好訊息,因為它在利用GTK+的能量和現存程式基礎的同時,消除了一個X伺服器的高度開支。
總觀
Gtk+ 2.0已可以直接對framebuffer進行著色,而非傳統的使用Xwindow system,即使用FrameBuffer訪問顯示卡,無需搭配一個Xserver
架構
和GTK+一樣,依靠以下一些相關庫:
Glib——基本數據類型和功能
Pango——支持不同字型文字處理庫
libpng, libjpeg, libtiff——三種可選的圖片檔案格式
FreeType——FrameBuffer接口用的庫。曾用TrueType和Type1字型
Glib——基本數據類型和功能
Pango——支持不同字型文字處理庫
libpng, libjpeg, libtiff——三種可選的圖片檔案格式
FreeType——FrameBuffer接口用的庫。曾用TrueType和Type1字型
整合後為如下三個庫:
gdk-pixbuf :下載,保存,處理圖片影像的庫
gdk:視窗繪圖系統的抽象層
gtk:高級用戶界面
幾乎所有FB功能代碼都包含在gdk中,稱為通用gtk代碼;有一些FB功能代碼包含在gtk中用來管理視窗。
gdk-pixbuf :下載,保存,處理圖片影像的庫
gdk:視窗繪圖系統的抽象層
gtk:高級用戶界面
幾乎所有FB功能代碼都包含在gdk中,稱為通用gtk代碼;有一些FB功能代碼包含在gtk中用來管理視窗。
gdk庫有三個基本任務:
繪圖、處理交替視窗、產生事件。gdk核心很像Xwindow系統,事實上其使用了一個經修改的X庫-libmi。交替視窗處理是指在一個視窗樹中,確定在哪個視窗上進行操作。事件產生是通知gdk用戶輸入、視窗重繪。它是X產生的一個子集,因為gtk不需要所有X發出事件及其信息。
繪圖、處理交替視窗、產生事件。gdk核心很像Xwindow系統,事實上其使用了一個經修改的X庫-libmi。交替視窗處理是指在一個視窗樹中,確定在哪個視窗上進行操作。事件產生是通知gdk用戶輸入、視窗重繪。它是X產生的一個子集,因為gtk不需要所有X發出事件及其信息。
當程式連線了GtkFB,其最先調用gtk_init()運行。同時,GtkFB打開FB設備(選擇想要的解析度和位深),鍵盤,滑鼠,觸控屏。然後到指定目錄去讀取字型,繼續初始化window和事件系統。
GtkFB內建了普通Linux鍵盤及多種常用滑鼠的驅動,包括觸控屏。當然添加其他驅動也是很容易的。GtkFB不使用硬體加速,但支持特殊顯示卡的硬體加速,支持每像素8,16或32比特的幀緩衝。
優點
最大優點是可以用強大的GTK+庫,代碼在桌面和嵌入式設備中可以很容易的移植,共享。
可以修改庫中的原代碼以適用自己需求。根據LGPL,需要發布對庫的改變,而不用發布對自己源程式改變的代碼
免費
缺點
不支持多進程,不適合設計大型系統。
如果GTK+程式中使用 direct X 調用,由於其不備GtkFB支持,所以需要修改。
如果GTK+程式中使用 direct X 調用,由於其不備GtkFB支持,所以需要修改。
由於對硬體加速代碼很難寫,所以其在大型系統上運行很慢。
不支持對功能還有:network transparency、DGA、多螢幕、Xv擴展、Xrender擴展