8

私は小さな小さなアプリケーションに取り組んでおり、DirectX/3D を使用して画面にテクスチャ (すべて 2 次元要素) を描画しています。この API は非常に使いやすく、OOP の原則を使用して組み込むのも簡単ですが、このような小さなものに DirectX を使用するのは非常にやり過ぎだと感じずにはいられません。

しかし、私は良い代替案についてコンセンサスを見つけることができないようです. 助言がありますか?

編集:ネイティブ アルファ ブレンディングと PNG ファイルのサポートが必要です。

たくさんの初投稿の愛を込めて、ジェンゲラー

4

4 に答える 4

5

XP のサポートが必要ない場合は、Direct2Dを使用してください。
それ以外の場合は、GDI+を使用してください。

于 2010-09-01T18:55:48.957 に答える
5

アルファ ブレンディングが必要な場合は、グラフィック ハードウェアを使用する必要があります。これを行う唯一の良い方法は、現在行っている方法と同様の 3D API (DirectX または OpenGL) を使用することです。代替手段 (GDI/+ または DirectDraw など) は、ブレンディングを高速化するために完全なグラフィックス ハードウェアを使用せず、CPU で実行する必要があるため、パフォーマンスが大幅に低下します。

前述のように、Direct2D もオプションです。これは、機能的には Direct3D の上にあるレイヤーであり、より多くの 2D 固有の機能と優れたテキスト サポートをサポートします。

于 2010-09-01T18:59:20.013 に答える
3

Windows には、すぐに使用できる 1 つが含まれています。(GDI32.DLL)。WM_PAINTWindowProc 呼び出しでメッセージにフックし、BeginPaint()描画を開始するために使用することができます。何ができるかについての非常に良いアイデアと基本的なチュートリアルがZetcodeで利用できます。

于 2010-09-01T18:58:06.117 に答える
1

私は過去にGosuを使用していましたが、問題なく動作していました。Ruby でより多く使用されるように設計されていますが、C++ でも悪くありません。Z オーダーとアルファ チャネルをいじったクイック サイド スクローラー ゲームで使用しました。チェックしてみる価値があるかもしれません。

于 2010-09-01T22:28:45.430 に答える