2012-01-25 12 views
15

私はここに、上記のライブラリの関係について少し混乱していますが、私が何を考えている:ライブラリ間の関係:クラッタ、Cogl、クラッタ、GTK +など

  1. Carioは、2DグラフィックライブラリですGTK +はそれを使ってウィジェットをレンダリングします。 Carioは低レベルです。
  2. CoglはOpenGL(またはフォーク?私は知らない)に基づく3Dグラフィックライブラリで、ClutterはCoglに基​​づく3D GUIツールキットです。

これが正しければ、いつかはGTK +を交換乱雑になりますか?

そして...

この質問または私が最初に読むべきいくつかの本を依頼するより良い場所があると思うなら、私に教えてください!私は興味のある自己学習プログラミングです。

答えて

39

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

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

クラッターはレンダリングにCoglを使用しますが、2DエレメントにはCairoを使用することもできます。

クラッタはGTK +を置き換えることはありません:GTK +は、システム統合、複雑なウィジェット、およびクラッタを提供するには関心を持っていないことを他のユーティリティAPIを提供し、非常に複雑なライブラリです。

未来は白黒の交換より少し灰色になるでしょう。

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

クラッタは、ウィンドウシステムの表面に話をし、入力イベントを取得するには、GDK、GTK +のウィンドウシステムのAPIを使用することができます。それはまだ進行中の作業だけれども - 将来的に

は、それはGTK +は、そのウィジェットのためのベースとして内部混乱を使用することは完全に可能です。要するに

、図は次のようになります。私は、ライブラリ間の関係が相互に依存していると思います


    GPU <- [ [ Cogl + Cairo ] <- [ GDK + Clutter ] <- GTK+ ] <- application 
+4

ウィジェットベースのアプリメタファに変換します。混乱の中で、あなたは特定の描画作業のためにカイロを掘るかもしれません。 –

-3

。つまり、図書館はそれ自体で立つことはできません。それは実行するために他人に依存する必要があります。あなたは、ウィンドウ、メニュー、ツールバーなどを作成し、「などの描画領域」され、適合しない任意のアプリのコンテンツを描画するために混乱を使用するGTKを使用する可能性があるアプリの開発者であれば、自宅少しそれを持参する

関連する問題