GDK

GDK
原作者GIMPの作者
開発者GNOMEプロジェクト
安定版リリース
4.11.5 [ 1 ] ウィキデータで編集する
リポジトリ
書かれたC
オペレーティング·システムLinuxmacOSMicrosoft Windows
プラットフォームX11WaylandQuartzGDI
タイプソフトウェアライブラリ
ライセンスGNU 劣等一般公衆利用許諾書(LGPL)
Webサイト開発者.gnome .org /gdk3 /stable /

GDKGIMP Drawing Kit)は、基盤となるウィンドウシステムおよびグラフィックシステムが提供する低レベル関数のラッパーとして機能するライブラリです。GDKはディスプレイサーバーGTKライブラリの間に介在し、描画プリミティブ、ラスターグラフィック(ビットマップ)、カーソルフォントといった基本的なレンダリング処理に加え、ウィンドウイベントやドラッグアンドドロップ機能も処理します。

GTK Scene Graph Kit (GSK)と同様に、GDK は GTK の一部であり、GNU Lesser General Public License (LGPL) に基づいてライセンスされます。

ソフトウェアアーキテクチャ

GDKは、 X11Wayland、Broadway(HTTP)、QuartzGDIのバックエンドを備えており、レンダリングにはCairoを使用しています。新しいシーングラフ(キャンバス)は現在開発中であり、その登場はGTK 4.0の到来を告げるものとなるでしょう。

GTKはGDKと呼ばれる抽象化レイヤー上に実装されており、入力データの収集、ドラッグ&ドロップ、ピクセル形式の変換といった低レベルの処理からGTKを解放します。GDKは、GTKをウィンドウシステムの詳細から分離する中間レイヤーです。

GDKはGTKの移植性において重要な役割を果たします。低レベルのクロスプラットフォーム機能はGLibによって既に提供されているため、GTKを他のプラットフォームで動作させるには、GDKを基盤となるオペレーティングシステムのグラフィックスレイヤーに移植するだけで済みます。したがって、 Windows APIQuartzへのGDK移植によって、GTKアプリケーションはそれぞれWindowsmacOSで動作可能になります。

GTK+ 2.8以降、GDKはCairoをサポートしており、GDKの描画機能の代わりにGTK+ 3で使用することが推奨されています。[ 2 ]

GDK は、 GTK をウィンドウ システムの詳細から分離する中間層です。GDK はXlibの薄いラッパーです。X Window System には、 Xlibと呼ばれる低レベルのライブラリが付属しています。GDK のほぼすべての関数は、対応する Xlib 関数の非常に薄いラッパーですが、プログラミングを簡素化し、 Waylandや Microsoft Windows などの他のウィンドウ システムへの GDK の移植を容易にするために、Xlib の複雑さ (および機能) の一部は隠されています。提供される Xlib の機能は主にアプリケーションを対象としたもので、たとえば、ウィンドウ マネージャーのみが使用する多くの機能はGDK では公開されていません。

GDK は、グラフィックス パイプラインをより適切に制御するためにOpenGL (またはOpenGL ES )をサポートしています。

Gdkフレームクロック

GdkFrameClockはGTK 3.8で追加された[ 3 ]

GTKアプリケーションはメインループ駆動型のまま(Glibイベントループ参照)、つまりアプリケーションはほとんどの時間このメインループ内でアイドル状態でイベントを待機し、イベントが発生すると適切なサブルーチンを呼び出しますが、GdkFrameClockは追加のメカニズムを追加し、アプリケーションにウィンドウを更新して再描画するタイミングを指示します。[ 4 ]更新レートはモニターのリフレッシュレートと同期できます。

GTK シーングラフキット

これまで、GDK にはいくつかの異なるCanvasesが含まれ、リンクされていました。

開発者たちは、非推奨のAPIコンポーネントの削除や、 Clutterグラフィックライブラリに似た統合シーングラフ(キャンバス)システムの追加など、ライブラリの新しい方向性も検討していました。GTKをOpenGLVulkanと効果的に統合します。[ 5 ] [ 6 ]

GTK+ Scene Graph Kit (GSK) は、2017年3月に GTK+ 3.90 の一部としてリリースされました。これは、GTK 用のシーングラフおよびレンダリング API です。GSK は GDK (GTK の一部) と統合されていませんが、独自のディレクトリに保存されています。

ウィンドウシステム

GDKには、 X11およびWaylandプロトコル、QuartzおよびGDI、さらにはハイパーテキスト転送プロトコル(HTTP) エンジン Broadway など、いくつかのウィンドウ システムのバックエンドが含まれています。

2015年3月のGNOME 3.16のリリースにより、GDKはMirディスプレイサーバープロトコルの実験的なバックエンドを手に入れました。[ 9 ] MirディスプレイサーバープロトコルはCanonicalのLinuxディストリビューションUbuntu用の製品であり、Waylandディスプレイサーバープロトコルと競合することを意図しています。現在のところ、Ubuntuにのみ実装されています。

現在、KMSのバックエンドは存在しません。

環境変数GDK_BACKEND を使用すると、アプリケーションを起動し、そのインスタンスで特定のウィンドウ システムを使用するように強制できます。 GDK_BACKEND=wayland gnome-calculatorGDK_BACKEND=wayland CLUTTER_BACKEND=wayland cheese

gdk-pixbuf

gdk-pixbuf は、画像の読み込みとピクセルバッファ操作のためのツールキットです。このライブラリは、画像の読み込みと保存、Pixbuf の高速なスケーリングと合成、シンプルなアニメーション(アニメーション GIF など)の読み込み、そして libart 画像バッファを GdkDrawable インスタンスにレンダリングする機能を提供します。

gdk-pixbuf にはかなり大きな API があります。

gdk-pixbuf ライブラリの基本構造は GdkPixbuf です。これは、ArtPixBuf がサポートする多くの概念を反映した、プライベートで不透明なデータ構造です。実際、GdkPixbuf のプライベートデータフィールドのほとんどは、ArtPixBuf の対応するフィールドと同じ名前とデータ型を持っています。この類似性は、gdk-pixbuf がlibartのラッパーだった初期の頃に遡ります。その後、 libart への依存関係は排除され、gdk-pixbuf は GTK+ 2.0 のコードベースに統合されました。そのため、gdk-pixbuf がスタンドアロンライブラリとして利用できるのはGNOME 1リリースまでです。

2010年9月23日のGTK+ 2.22のリリースに伴い、gdk-pixbufはGTK+ 2.0以降GTK+の一部として提供されていましたが、再びスタンドアロンライブラリとなりました。これはGTK+ 3への移行に備えて行われたものです。

最初のスタンドアロンリリースは2010 年 9 月 21 日の2.22であり、その開発は 2010 年 6 月 23 日の2.21.3から開始されました。

歴史

GDKはもともとX Window System上でGIMPラスターグラフィックエディタ用に開発されました。[ 10 ]

参照

  • 乱雑

参考文献