22

上記のライブラリの関係について少し混乱しています。次のように考えています。

  1. Cairo は 2D グラフィック ライブラリであり、GTK+ はそれを使用してウィジェットをレンダリングします。カリオは低レベルです。
  2. Cogl は OpenGL に基づく 3D グラフィック ライブラリ (または fork? 私にはわかりません) であり、Clutter は Cogl に基づく 3D GUI ツールキットです。

これが正しければ、Clutter はいつか GTK+ に置き換わるのでしょうか?

と...

この質問をするのに適した場所や、最初に読むべき本があると思われる場合は、教えてください! 趣味でプログラミングを独学しています。

4

1 に答える 1

46

はい、Cairoは高品質の2D描画APIであり、GTK+はCairoを使用してそれ自体を描画します。

Coglは、内部でGLまたはGLESを使用してグラフィックスパイプラインにアクセスできるGPUプログラミングライブラリです(ただし、理論的には、サポートされているプラ​​ットフォームでDirectXを簡単に使用できます)。

ClutterはレンダリングにCoglを使用しますが、2D要素にCairoを使用することもできます。

ClutterはGTK+に取って代わることはありません:GTK +は、システム統合、複雑なウィジェット、およびClutterが提供することに関心のないその他のユーティリティAPIを提供する非常に複雑なライブラリです。

将来は、白黒の代替品よりも少し灰色になるでしょう。

カイロはCoglを使用して描画できます。CoglはGPUパイプラインをプログラムしますが、Cairoは送信するジオメトリを生成するため、高品質の2D結果を得ることができます。CairoはすでにGLを直接使用できますが、Coglはすでにより優れた状態追跡機能を備えています。

Clutterは、GTK +ウィンドウシステムAPIであるGDKを使用して、ウィンドウシステムサーフェスと通信し、入力イベントを取得できます。

将来的には、GTK +が内部的にClutterをウィジェットのベースとして使用する可能性は十分にありますが、それはまだ進行中の作業です。

つまり、図は次のようになります。


  GPU <- [ [ Cogl + Cairo ] <- [ GDK + Clutter ] <- GTK+ ] <- application
于 2012-01-25T17:19:47.590 に答える