GTK 3.99.0 的發布標誌著 GTK 4 計畫功能的完成

發表 框架的最終實驗版本 GTK 3.99.0,它實現了 GTK 4 計劃的所有功能。 GTK 4 分支正在作為新開發流程的一部分進行開發,該流程試圖為應用程式開發人員提供穩定且受支援的 API,可以使用多年而無需擔心每六個月重寫一次應用程序,因為下一個GTK 分支中的API 會發生變化。 GTK 4 計劃於今年底前發布。

其中最 重要的 變化 в GTK 4 你可以注意:

  • 基於約束佈局元素的方法(約束佈局),其中子元素的位置和大小是根據到邊框的距離和其他元素的大小來決定的。
  • 基於 Vulkan 圖形 API 的渲染器,為 GTK 小工具中使用的許多資源密集型 CSS 元素實作著色器。
  • 積分 葛蘭素史克公司 (GTK 場景套件)能夠透過 OpenGL 和 Vulkan 渲染圖形場景。
  • 渲染的組織已被修改 - 現在使用基於渲染節點的模型,而不是輸出到緩衝區,其中輸出以高級操作樹的形式排列,由 GPU 使用 OpenGL 進行有效處理和伏爾甘。
  • 資金 用於靈活處理輸入焦點變化。
  • 現代化的事件傳遞模型,在路由輸入事件時不再需要子視窗。 實現新模型的需要與更積極地使用動畫效果相關,動畫效果的渲染應該在不改變可見元素佈局的情況下完成,因此也不需要子視窗。
  • GDK API 已經過重新設計,專注於使用 Wayland 協定和相關概念。 X11 和基於 Wayland 的功能已移至 單獨的後端.
  • 對 API 進行了重大清理,包括刪除 GtkMenu、GtkMenuBar 和 GtkToolbar 類,轉而使用 GMenu 和基於彈出式選單的選項。
  • GtkTextView 和其他輸入小工具有一個內建的撤銷堆疊。
  • 為具有自己的顯示表面並且可以在第一層上單獨工作的小部件添加了一個新的 GtkNative 類,而無需綁定到父小部件。
  • 新增了新的小工具,包括 GtkPicture、GtkText、GtkPasswordEntry、GtkListView、GtkGridView、GtkColumnView 和 Emoji 顯示小工具。
  • 對於小部件的開發,引入了新的 GtkLayoutManager 對象,並實現了根據可見區域的大小控制元素佈局的系統。 GtkLayoutManager 取代 GTK 容器(例如 GtkBox 和 GtkGrid)中的子屬性。
  • 事件處理已簡化,現在僅用於輸入。 其餘事件被替換為單獨的訊號,例如,建議使用「GdkSurface::render」訊號來取代輸出事件,並提供「GdkSurface::size-changed」來取代配置事件。
  • 新增了新的抽象層 GdkPaintable,表示可以在任何位置以任何尺寸繪製的對象,而無需對佈局層進行排序。
  • Broadway 後端已重寫,以允許 GTK 庫的輸出在 Web 瀏覽器視窗中呈現。
  • 與執行拖放操作相關的 API 已重新設計,包括建議的單獨的 GdkDrag 和 GdkDrop 物件。

與先前的測試版本相比的改進:

  • 針對殘障人士的 Accessibility API 的舊實作已被刪除,取而代之的是基於規範的新版本 ARIA 和 GtkAccessible 小工具。
  • 新增了對可編輯標籤 (GtkEditableLabel) 的支援。
  • 已經提出了新的清單模型來顯示書籤(GtkBookmarkList)、字串(GtkStringList)和選擇區塊(GtkBitset)。
  • GtkTreeView 小工具具有編輯單元格的能力。
  • GtkGridView 和 GtkListView 中的滾動實作得到了改進,增加了對自動滾動和自動展開的支援。
  • GtkWidget 顯著加快了各種作業的處理速度。
  • 為 GtkFilterListModel 和 GtkSortListModel 新增了對增量滾動和過濾的支援。
  • Inspector 增加了對檢查清單模型的支援以及在物件之間直接導航的能力。
  • 在GDK中,滾動歷史已被保存,GdkDevice API已被清理,並且設備為主從設備的分離已被停止。
  • 為 macOS 新增了新的 GDK 後端。
  • 基於的新GDK渲染後端 ANGLE, 夾層 將 OpenGL ES 呼叫轉換為 OpenGL、Direct3D 9/11、Desktop GL 和 Vulkan。

來源: opennet.ru

添加評論