2

私は2つのウィンドウを持つアプリケーションを開発しています:

  • ウィンドウ 1: 直接描画サーフェスをレンダリングします
  • ウィンドウ 2: 純粋なOpenGL 呼び出しを実行したい

同じウィンドウで OpenGL と DirectDraw を混在させたくありません。

Open GL FAQ ( http://www.opengl.org/resources/faq/technical/mswindows.htm ) から、同じウィンドウ内で API 呼び出しを混在させることはできないことがわかります。

ですから、私の質問は、あるアプリケーションで直接描画を行うウィンドウと、別のアプリケーションで OpenGL を行うウィンドウを持つことができますか?

4

3 に答える 3

1

もちろん、ICD ビデオ ドライバのバグを除けば、同じプロセスで両方を実行しても問題はないはずです。

おそらく最も簡単な方法は、OpenGL コードをコメントアウトして、アプリケーションがまだクラッシュするかどうかを確認することです。

または、OpenGL コードで Microsoft の実装 (XP ベースのソフトウェアと Vista ベースの Direct3D) を使用するように強制しますが、これには競合があってはなりません。ddraw の問題がまだある場合、ほとんどの場合、OGL の障害ではありません。

于 2008-11-12T22:29:00.030 に答える
0

最悪の場合: メイン プログラムのスポーンに 1 種類のレンダリング (DirectDraw など) を実行させます。他のタイプ (OpenGL) を実行するプロセスを生成します。パイプを使用して 2 つの間で通信します。これには 2 つのプロセスが必要であり、多少の回避策になるかもしれませんが、少なくとも機能します。

于 2008-11-11T22:36:45.100 に答える
0

うーん...OpenGLのものを1つのスレッドに分離しました。そうですか?または、新しいプロセスを開始すると言っていると思います。

問題は、BLT で DirectDraw コードがクラッシュすることです。それはランダムですが、OpenGL がそれを殺しているのではないかと心配しています。

于 2008-11-11T22:41:11.690 に答える