GTK+ 全面進化

Moblin 帶來的震憾莫過於 3D 樣貌的 UI,其底層 Clutter Toolkits 提供方便易用的 API,確實讓開發者能輕易撰寫炫麗的界面。不過,Clutter 的角色一直被視為一套新的 3D Engine,只是讓人重新打造操作介面而已。這未免小覷了 Clutter 的威力,其真正的好戲,在結合了 GTK+ 之後才正要開始。

這是一段結合 GTK+ Notebook Widget 的展示,隨著觸發而產生的換頁特效:




借由 Offscreen 的實作,可將各種 GTK+ Widget 畫在 Clutter Actor 之上,以此做各種動畫效果,其架構如下所示:

我們可以視為 GTK+ Widget 被轉換成一個個 Clutter Actor,當然這些 Widget 仍然還保留著原本各種 GTK+ 的性質,包括 Signal 等機制,只不過在顯示上,Widget 並非直接被畫在螢幕上,而是畫在 Clutter 的 Buffer 上,讓最後的繪圖動作都交由 OpenGL 做處理。此外,Clutter-GTK 實作了一個假的 GtkWindow 以騙過 GTK+ Toolkits,達成結合兩者的目的。

雖然現在許多 UI 設計都是一窩蜂照抄 iPhone,但不可否認,舊有的使用者習慣還是存在,畢竟遵循舊有習慣的軟體數量太多,還是不太可能一時間淘汰掉。但是, Clutter 給了一個新的機會,讓被人稱為極落伍的 GTK+ UI 有再進化的空間,至於能做到什麼程度,就看各開發者的創意了。

留言

  1. 謝謝你的文章,展示+配圖真是太OK了,讓我對GTK+充滿了信心。

    請問,我可以將video轉錄給大陸的朋友看嗎?因為YouTube被GFW封鎖了。

    另外,想知道是否有demo的源碼呢?我想學習學習,謝謝。

    回覆刪除
  2. 您好,我現在手頭上一時也沒有 source code,不過這方面已有不少開發者在研究,也許您可以去查查。

    回覆刪除

張貼留言

這個網誌中的熱門文章

有趣的邏輯問題:是誰在說謊

Web 技術中的 Session 是什麼?

淺談 USB 通訊架構之定義(一)

淺談 USB 通訊架構之定義(二)

Reverse SSH Tunnel 反向打洞實錄