4

GDKライブラリの機能は正確には何ですか?Cairoはどのように適合しますか?それらは競合するテクノロジーですか、それとも補完的なテクノロジーですか?それらの1つは何らかの形で他に依存していますか?

4

2 に答える 2

7

TL;DR:

最近のバージョンでは、GDK は GTK+ のプラットフォーム抽象化レイヤーです。また、Cairo のプラットフォーム統合 (たとえば、Cairo を使用して作成された画像を表示するため) も提供しますが、それ以外は独立しています。

より長いバージョン:

GDK は、X Window System のクライアント ライブラリであるXlibのラッパーとして始まりました。描画操作を含む、GTK+ が必要とする X Windows API のすべての部分をサポートしていました。

GTK+ が他のウィンドウ システム (Windows など) に移植されたとき、GDK はプラットフォームの抽象化レイヤーに進化しました。その後、Xlib から「継承」された描画 API に問題があることが判明しました。これにより、移植が困難になり、制限がありました (たとえば、透明度のサポートがほとんどないなど)。したがって、GDK の描画機能は廃止され、GTK+ 3 で削除されました ( GTK+ 2.x から GTK+ 3 への移行: 描画に cairo を使用する を参照)。

そのため、GDK は描画バックエンドを含むプラットフォーム抽象化レイヤーとして始まりました。最近のバージョンでは、Cairo は GTK+ によって使用される描画バックエンドであり、GDK は Cairo とともに存在し、ウィンドウの作成や入力処理などのプラットフォームの側面を処理します。

GDK には Cairo を使用する機能がいくつかありますが、これらは Cairo との相互運用を可能にするためのものです。たとえばgdk_cairo_create ()、Cairo を使用してそのウィンドウに描画できるウィンドウ用の Cairo サーフェスを作成できます。

于 2015-02-11T12:42:53.880 に答える
0

Cairo は gdk が使用する描画バックエンドです。

于 2012-05-16T19:32:43.897 に答える