0

これは私の質問です... DXGI (DX10/11) でアプリケーションが全画面表示になったことを確認する方法があります。フルスクリーンにするということは、システムがモード変更を完了したということです。アプリケーションがデッドロックを防ぎ、タイミングを調整するために必要だからです。(私はマルチスレッドエンジンを持っており、Presentはメッセージポンプスレッド上になく、モード変更でデッドロックをランダムに引き起こします))実際には、メッセージポンプスレッドでメッセージを処理し続けるために1秒待機させ、それは機能しますが、もっと何かが欲しいです「ねえ、モードの変更が完了しました。現在、フルスクリーンモードになっています」と言うDETERMINISTIC。:D

何か案が?

4

1 に答える 1

1

レンダリングスレッドとメッセージポンプスレッドを同じスレッドとして実行できない理由はありますか?

ドキュメントによると、変更が完了したことを示すものは何もありません。

ただし、不思議なことに、DXGIは、内部のSendMessage呼び出し(マルチスレッド環境でメッセージポンプを介して発生する)から応答を返すことに依存しています。したがって、メッセージポンプを遅らせることで問題がどのように解決されるかわかりません。DXGIに、作業を続行する前にさらに1秒待機させるだけです。デッドロックは通常、レンダリングスレッドが何かを実行するのを待つことをメッセージポンプがブロックする原因となる何かを実行していることを意味します。

于 2009-12-09T13:54:45.157 に答える