8

ウィンドウに固定フレームレート(たとえば30 fps)のアニメーションを表示するプログラムがあります。

現在私はSDLを使用していますが、残念ながらデスクトップ統合(ドラッグアンドドロップなど)が不足しているため、代わりにGTKを使用したいと考えています。

だから私がやりたいこと(ウィンドウがダブルバッファリングされていると仮定して):

1 obtain off-screen buffer
2 render my stuff to buffer
3 tell the toolkit to swap buffers
4 update window
5 repeat

ウィンドウを作成および管理し、入力イベントを受信するために、非常に基本的なGDK/GTK呼び出し以外の機能を使用したくありません。

FAQで、彼らはGdkRGBの使用を提案しています。ただし、GdkRGBの公式ドキュメントでgdk_draw_rgb_image()は、非推奨の関数を使用しています。実際、ほとんどのGdkRGB関数は非推奨です。

別の方法として、OpenGLの使用を提案しています。それに関する問題は、GTKの一部ではないGtkGLAreaのような珍しいライブラリが必要なことです(デフォルトでインストールされていないライブラリに依存したくありません)。また、私のシステムでは、ドライバーのOpenGLサポートは...制限されています。

私はCairo(いくつかの非推奨の関数の代替として提供されています)を調べましたが、それは私の比較的単純な問題のためにさらに多くの定型コードを追加します(そして私は追加のオーバーヘッドを疑う)。

4

1 に答える 1

4

個人的には、GdkRGB が妥当な選択だと思います。シンプルになるように設計されており、その範囲はあなたが説明したものとほぼ同じです。非推奨のコードを使用するのはチャンスです。何かをすぐに機能させたい場合は良い選択ですが、コードを成長させて将来にわたって維持したい場合は、代替案を検討する必要があります。

それらの中で、カイロはおそらくあなたの最善の策です. もう少しボイラープレートがあります - http://cairographics.org/samples/を見てください。かなり小さくて理解しやすい例がいくつかあります。Cairo の潜在的な利点の 1 つは、ハードウェア アクセラレーションの可能性が高いことです。

[免責事項: 私は GdkRGB のオリジナルの作成者です。現在廃止されているのを見るのは悲しいことですが、その目的を十分に果たしたと思います]

于 2011-01-08T20:01:49.553 に答える