2016-05-20 8 views
0

私は、ウィンドウのサイズを変更できるDirect3D 11アプリケーションを作成しました。私は2Dコンテンツを描画しています。ウィンドウに何をするかに関係なく、同じサイズにしたいと思います。ウィンドウを右下隅から縮小すると、右または下のいずれかが隠されますが、左上のものは何も残しません。サイズ変更時に引き伸ばされないように、Direct3D 11バックバッファのサイズを変更する必要はありますか?

IDXGISwapChain::ResizeBuffersのドキュメントに記載されているように、私はWM_SIZEに応答してバックバッファのサイズを変更していますが、修正する前にウィンドウの内容が少しずつ伸びたり縮んだりしています。これにより、ウィンドウのサイズが上下に変動するように見えるようになり、ウィンドウを新しいサイズにドラッグします。

答えて

1

スワップチェーンを作成するときにDXGI_SWAP_CHAIN_DESC1Scalingフィールドが0で初期化されたことがわかりました。これはDXGI_SCALING_STRETCHであることが判明しました。 DXGI_SCALING_NONEに切り替えて問題を解決しました(バックバッファのサイズ変更の頻度を減らしました)。

+0

"resizebuffersが6回1秒間に呼び出される"という問題を避けるために、 '' ENTERSIZEMOVE''/'' WM_EXITSIZEMOVE''を使って見てください。使用例については、[GitHub](https://github.com/walbourn/directx-vs-templates/blob/master/d3d11game_win32/Main.cpp)を参照してください。 –

関連する問題