GTK 4.0進行了改進以執行圖形界面,數據傳輸等

幾天前 宣布發布新版本的GTK 4.0, 版本已經開發了幾個月,成為該項目的新穩定分支。 這個新版本具有非常有趣的功能,其中我們可以重點介紹媒體播放方面的改進。

GTK是一組用於創建圖形界面的軟件庫GTK最初是為GIMP圖像處理軟件而開發的。 當前,它的範圍不再僅限於GIMP,而是在其他項目中使用。 例如,GTK 是GNU網絡對像模型環境的核心 (GNOME),但它也可以用於編寫其他Linux環境的應用程序,以及Microsoft Windows和Apple macOS的應用程序。

“ GTK 4.0是一小組敬業的開發人員辛勤工作的結果。 我們將另外發表一篇文章來統計數據,但快速回顧一下,自3.89.1年2016月版本18,000起,我們添加了20多次提交,並發布了XNUMX多個開發版本。

“對所有參與這項工作的人,尤其是本傑明,艾曼紐爾,蒂姆,卡洛斯,喬納斯和克里斯蒂安,表示祝賀和感謝! «

關於新版本的GTK 4.0

GTK 4.0引入了新的小部件以及對現有元素的更改, 內置的媒體播放支持,GPU加速改進(例如您的工作) 新的Vulkan渲染引擎,並與macOS更好地兼容。 我們還可以注意到數據傳輸方面的改進,著色器的重新設計,GPU加速的滾動,Vulkan工作之外的OpenGL渲染方面的改進,HTMl5 Broadway中工作的恢復,更好的Windows支持等。

讓我們更深入地了解一些點。

GT4中的媒體管理

  • GTK 4將使GTK應用程序可以更輕鬆地顯示動畫。 無論是程序動畫,webm存檔還是直播。
  • GTK 4引入了一個新的名為GdkPaintable的API,該API受CSS Houdini的努力啟發。 它非常靈活(您可以繪製的任何內容都可以是GdkPaintable)。 內容可以調整大小(如svg)或隨時間更改(如webm)。
  • 如果您有更專業的需求,則可以使用gtk_snapshot_to_paintable()將GtkSnapshot中可以捕獲的任何內容轉換為圖形。 如果要創建一個自定義窗口小部件,該窗口小部件想要繪製要繪製的對象,則非常簡單。 只需調用gdk_paintable_snapshot()。
  • 您可以使用GtkVideo小部件進行多媒體控制。

GTK4中的數據傳輸

傳統的數據傳輸方法 用戶在桌面應用程序之間啟動的是剪貼板或拖放。 GTK +支持這些方法,但是直到GTK3為止,該工具包中用於這種類型的數據傳輸的API都是相應X11 API的偽裝而成。 這並不奇怪,因為整個GDK API已在X11中建模。 不幸的是,該實現包含諸如增量傳輸和字符串格式轉換之類的結果。

對於GTK4,團隊決定放棄這種方法,選擇現代化。 這是新方法的概念:

“如果您的應用程序要發送的數據不是字符串,則可能是一個對象,例如GFile,GdkTexture或GdkRGBA。 接收方應用程序可能不使用GTK或GLib,因此不知道這些類型。 即使這樣做,也無法將對像從一個過程移動到另一個過程中。

在其內部,數據傳輸通過讀取字節流從源應用程序和目標應用程序發送文件描述符來進行。 剪貼板和DND的協議使用mime類型(例如text / uri-list,image / png或application / x-color)來標識字節流的格式。

發送對象包括協商雙方兼容的數據格式,將源端的對象序列化為該格式的字節流,傳輸數據以及在目標端反序列化對象。 «

另外, GTK4帶有新的API.

“我們介紹的用於處理這些類型的第一個API是GdkContentFormats對象。 它可以包含格式列表,可以是GTypes或mime。 我們使用GdkContentFormats對象來描述應用程序可以提供數據的格式,以及應用程序可以接收數據的格式”。

來源: https://blog.gtk.org/


成為第一個發表評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。