1 簡介
GNOME提供了一個豐富,成熟的桌面環境讓你使用你的應用程序.在這個環境的圖形前端是一個健壯的結構,允許開發者花費更少的時間來創建應用程序,通過使用它提供的工具可以讓你的應用程序保持在計算機技術的前沿.
本文所述技術細節包括:GTK+,GNOME和窗口管理器的關系,CORBA和ORBit,和GNOME成像結構.
2.GTK+
GTK+是一個成熟,高效的構件集合.它在保持了擴展性和效率的前提下提供了現代的視覺和感覺效果.GTK+為應用程序開發者提供了一個強大的系統對象,它具有動態查詢的能力,還可以在運行時修改對象和構件.GTK+是一個可以擴展的工具箱,例如,GNOME有內嵌的,高層構件來縮短應用程序的開發周期.
有很多理由使用GTK+諸如:許可證,捆綁的語言,國際化,拖放支持.
2.1許可證
GPL
2.2語言捆綁
因為GTK+開發的開放性,許多人發布了捆綁GTK+的語言.除了C還有許多語言可以用來創建GTK+應用程序:C++,Perl,Python,Pascal,Objective C,Guile,和Ada.
2.3國際化
GTK+支持國際化文本顯示,輸入使用XIM擴展工具.因此,你的應用程序立即可以使用非羅馬字符集例如亞洲語言.
2.4拖放
GTK+拖放功能支持Xdnd和Motif拖放協議,它們允許其它支持這兩個協議的其它構件使用拖放功能.使用其它支持拖放協議的構件(例如Motif, Qt)寫的程序可以和GTK+應用程序共享拖放功能.
3.GNOME,窗口管理器和X
新的使用者很難理解GNOME和窗口管理器,GNOME和X的關系.
X窗口系統是將圖形元素寫到屏幕上的軟件.它是整個系統的基礎,提供顯示圖形的庫和技術.
窗口管理器定義窗口在屏幕上的位置和窗口邊界外觀與行為.
GNOME是一個運行在X窗口系統和一個窗口管理器上的桌面環境.GNOME被設計成獨立於任何窗口管理器.用戶可以選擇窗口管理器.GNOME提供了一些機制(hints)讓窗口管理器和它無縫地工作在一起.如果一個窗口管理器包含了這些機制就和GNOME兼容.當前,只有很少的窗口管理器和GNOME全部或者部分兼容.
4.GNOME中的CORBA
GNOME提供了CORBA作為應用程序的通信機制.CORBA(Common Object Request Broker Archiecture通用對象請求代理結構)是由OMG開發的.CORBA允許程序互相通信而無論它在本地還是網絡或者它們是如何實現的(使用何種語言/操作系統).例如,一個運行在Linux上使用C語言寫的程序可以使用CORBA向一個使用Python寫成的運行於Windows系統上的程序發出申請.
GNOME應用程序之間的通信是通過對象請求代理(ORB)實現的.簡言之,ORB是允許兩個程序進行通訊的中間件.
4.1 ORBit
ORBit是一個由GNOME工程組開發的ORB.早期,由於受到許可證的限制,幾乎沒有可以用在GNOME中的ORB.一群黑客寫了一個小的,輕量級的ORB叫做ORBit.
5.GNOME成像結構
GNOME成像結構為開發者提供了創建交互圖形顯示,高質量打印,印刷質量字體的工具.在GNOME成像結構中有四個組件:Canvas,Libart,GNOME打印,GNOME字體.
5.1 Cavas
GNOME Cavas是一個創建結構化圖形的高層顯示引擎.一個Cavas顯示諸如線,矩形,弧形,文本的集合.Cavas是個可擴展的,高層,面向對象的繪畫構件.應用程序可以使用cavas的基本繪畫原語來創建交互的顯示,或者定義他們自己的類型來提供復雜的顯示..
GNOME Cavas通過倆種模式來顯示圖象. 1.使用Xlib,快速但是質量低; 2.使用Libart,高質量,但是需要更多的系統資源.
5.2. Llibart
Libart是一個高質量的執行引擎.它使用了很多的技術來提高性能,例如,microtile數組.一個microtile數組是一個類網格的數據結構,它讓canvas有效地代表需要重劃區域.
Libart使用GdkRGB為所有的圖象創建24位的執行空間,而不管最後的顯示是多少位的.如果圖象使用少於24位的深度來顯示,Libart在顯示之前仍然使用24位RGB空間來計算,然後,根據X的顯示深度對圖象進行轉換.這樣提高了執行的效率,而且使用24位的深度進行計算可以保證圖象的畫質.