GTK 3.96 の実験的リリースである GTK 4 が公開されました

10ヶ月後 過去の テストリリース 提示された GTK 3.96、GTK 4 の今後の安定版リリースの新しい実験的リリースです。GTK 4 ブランチは、アプリケーション開発者に、不安なく使用できる安定したサポートされた API を数年間提供することを目的とした新しい開発プロセスの一部として開発されています。次の GTK ブランチで API を変更するため、4 か月ごとにアプリケーションを書き直す必要があります。 GTK XNUMX が完全に安定するまでは、ユーザーに提供されるアプリケーションは引き続きブランチを使用して構築することをお勧めします。 GTK 3.24.

メイン 変更 GTK 3.96 では:

  • API内 グラクソ·スミスクライン (GTK シーン キット) は、OpenGL と Vulkan を介してグラフィック シーンのレンダリングを提供します。エラーに対する作業が行われ、新しいデバッグ ツール gtk4-node-editor のおかげで特定が容易になりました。シリアル化された形式でノードをレンダリングし (検査モードの GTK インスペクターで保存できます)、また、異なるバックエンドを使用するときにレンダリング結果を比較します。

    GTK 3.96 の実験的リリースである GTK 4 が公開されました

  • 3D 変換機能は、回転する立方体などのアニメーション効果を作成できるレベルにまで引き上げられました。

    GTK 3.96 の実験的リリースである GTK 4 が公開されました

  • 完全に 書き直された Web ブラウザ ウィンドウで GTK ライブラリ出力をレンダリングするように設計された Broadway GDK バックエンド。古いブロードウェイの実装は、GTK 4 で提案されているレンダリング方法には適合しませんでした (バッファーへの出力の代わりに、現在はレンダリング ノードに基づくモデルが使用されており、出力は高レベルの操作のツリーの形式で構成されます)。 OpenGL と Vulkan を使用して GPU によって効率的に処理されます)。
    新しい Broadway オプションは、ブラウザーでインターフェイスをレンダリングするための CSS スタイルを使用して、レンダリング ノードを DOM ノードに変換します。新しい画面状態はそれぞれ、以前の状態に対する DOM ツリーの変更として処理されるため、リモート クライアントに送信されるデータのサイズが削減されます。 3D 変換とグラフィック効果は、CSS 変換プロパティを通じて実装されます。

  • GDK は、Wayland プロトコルを念頭に置いて設計された API を引き続き実装し、X11 ベースの API をクリーンアップするか、別の X11 バックエンドに移動します。子サーフェスとグローバル座標の使用を廃止する取り組みが進んでいます。 GDK_SURFACE_SUBSURFACE のサポートは GDK から削除されました。
  • 提案された個別の GdkDrag オブジェクトと GdkDrop オブジェクトを含め、ドラッグ アンド ドロップ操作の実行に関連するコードのリファクタリングが継続されました。
  • イベント処理が簡素化され、入力のみに使用されるようになりました。残りのイベントは個別のシグナルに置き換えられます。たとえば、出力イベントの代わりにシグナル「GdkSurface::render」が提案され、構成イベント - 「GdkSurface::size-changed」の代わりに、マッピング イベント - 「GdkSurface:」の代わりにシグナル「GdkSurface::render」が提案されます。 gdk_event_handler_set() - "GdkSurface::event"; の代わりに、:mapped";
  • Wayland の GDK バックエンドに、GtkSettings 設定にアクセスするためのポータル インターフェイスのサポートが追加されました。入力メソッドを使用するために、text-input-unstable-v3 プロトコル拡張のサポートが提案されています。
  • ウィジェットの開発のために、表示領域のレイアウトに応じて要素のレイアウトを制御するシステムの実装とともに、新しい GtkLayoutManager オブジェクトが導入されています。 GtkLayoutManager は、GtkBox や GtkGrid などの GTK コンテナーの子プロパティを置き換えます。既製のレイアウト マネージャーがいくつか提案されています。 1 つの子要素を持つ単純なコンテナ用の GtkBinLayout、線形に配置された子要素用の GtkBoxLayout、子要素をグリッドに配置するための GtkGridLayout、子要素を任意に配置するための GtkFixedLayout、size_allocate に基づいて従来の要素を変換するための GtkCustomLayoutハンドラー。
  • 子要素のページ表示用にパブリックにアクセスできるオブジェクトが GtkAssistant、GtkStack、および GtkNotebook ウィジェットに追加され、これらのウィジェットの非レイアウト関連の子プロパティが転送されます。既存の子プロパティはすべて通常のプロパティ、レイアウト プロパティに変換されるか、ページ オブジェクトに移動されたため、子プロパティのサポートは GtkContainer から完全に削除されました。
  • コアの GtkEntry 機能は、強化された GtkEditable 編集インターフェイスも含まれる新しい GtkText ウィジェットに移動されました。既存のすべてのデータ入力サブクラスは、新しい GtkText ウィジェットに基づいて GtkEditable 実装として作り直されました。
  • パスワード入力フォーム用の新しい GtkPasswordEntry ウィジェットを追加しました。
  • GtkWidgets には、CSS または GskTransform の gtk_widget_allocate 引数を介して指定された線形変換メソッドを使用して子要素を変換する機能が追加されました。指定された機能はすでに GtkFixed ウィジェットに適用されています。
  • 新しいリスト生成モデルが追加されました: GtkMapListModel、GtkSliceListModel、GtkSortListModel、GtkSelectionModel、および GtkSingleSelection。将来的には、GtkListView にリスト モデルのサポートを追加する予定です。
  • GtkBuilder には、識別子によるリンクを使用する代わりに、オブジェクト プロパティをローカル (インライン) で設定する機能が追加されました。
  • UI ファイルを GTK 4 から GTK 3 に変換するコマンドを gtk4-builder-tool に追加しました。
  • 主要なテーマ、表形式のメニュー、およびコンボ ボックスのサポートは廃止されました。 GtkInvisible ウィジェットは削除されました。

    出所: オープンネット.ru

コメントを追加します