In: C++\Win32 アプリケーション (フルスクリーンではない)\DX9
サイズ変更中にウィンドウのコンテンツをすばやく再描画するにはどうすればよいですか? サイズ変更 == ユーザーがウィンドウの境界をドラッグします。
さまざまなアプローチ:
- 各 WM_SIZE\WM_PAINT でデバイスをリセットします。十分な解像度ですが、高速アップスケールで黒い縞が表示されます。
- WM_EXITSIZEMOVE でデバイスをリセットし、WM_ENTERSIZEMOVE でレンダリングを一時停止します。最高の速度ですが、サイズ変更中に醜い〜黒い縞模様になります。
- この場合、dx9 のスワップチェーンの使用方法がわかりません
- サイズ変更中にバッファのレンダリングとスワップを続けます。WM_EXITSIZEMOVE でリセットします。2010 SDK の公式デモとまったく同じです。速くて許容できるように見えます。しかし、[突然]遅いコンピューターで黒い縞模様が再び現れました。薄くて珍しいが本物。実際、それは非常に奇妙です: 同期レンダリングと
Present(,,,)
すべての WM_SIZE および/または WM_PAINT は、一見するとそれを除外します。そして2番目に。多分私は何か重要なことを理解していませんか?
だから、最後の方法が失敗したとき、私はここで尋ねることにしました. どういうわけかdx9サーフェスをウィンドウの境界にしっかりと接着することは可能ですか? 黒い縞はありません。スケール速度を遅くすることを好みますが、何とか DX と同期させます。