私は、宇宙船のホールを横切る人を動かすアプリケーションを持っています。私は、アプリケーションがリンクするOpenGL DLLも作成しました。このOpenGL DLLの目的は、特定の呼び出しをインターセプトし、これらの呼び出しがインターセプトされたときに何かを行うことです。オブジェクトをテクスチャリングするときにOpenGLアプリケーションがフェードします
私が傍受を心配している主要な呼び出しはwglSwapBufferです(私はthatsという名前です)。この呼び出しでは、3Dオブジェクト(半球または半円筒)をレンダリングし、各頂点のテクスチャ座標を指定します。次に、フレームバッファの出力をキャプチャし、glCopyTexImage2Dなどを使用して球の内容をテクスチャに使用します。
私はすべてのことをやった後、私のDLLは、実際のDLLと実際のスワップバッファーメソッドと呼ばれる呼び出されます。
私はアプリケーションと同じフォルダにdllを置くと、グラフィックスの上にテクスチャが描かれたドームがあると思います。私が期待していなかったのは、画面が恒常的に消えるということです。私はそれが意味することは、すべてのものが想定どおりに見え、その後2番目の間隔で、画面が完全に黒くなるまで消えてしまい、それが正常に戻ってくるということです。これは約1秒の平均頻度で繰り返されます。時には速く、時には遅くなる場合もありますが、プロセッサが動作していることに依存しているようです。
アイデア?
私はスクリーンをクリアし、サイズを変更し、オブジェクトとテクスチャをにレンダリングします。私は画面やサイズを変更したり、テクスチャをいけない場合は、アニメーションは正常に見えますが、スワップバッファメソッドでそれをテクスチャ化せずに3Dオブジェクトを描画すると、アニメーションはまだ通常のように見えますが、画面の中央定期的に退色するオブジェクトが表示されます。 – Adham
DLLで変更したGL状態を復元するようにしていますか? – genpfault
状態別に、有効になっているものを無効にすることを意味しますか? – Adham