グラフィックインターフェイスのサイズを変更するための最良の方法を見つけようとしています。作成したシェイプのバッファを削除せずにデバイスを再初期化しようとしましたが、結果的にメモリが大幅にリークしました。
私はこの主題に関して何も有用なものを見つけませんでした。
[バッファ、デバイス、アダプタ]をすべて削除して、グラフィックインターフェイスを最初から再起動する必要がありますか?それともそれを行う効率的な方法はありますか?
これはDX10/11インターフェース用です。
編集: 表示するコードはたくさんありますが、私は単純に:
cleanup(); // Pointers related to the device
initDevice(hWnd); // Create new device with updated size
draw(stuff); // I never deleted my constant/index/vertex buffers
具体的には、これらを削除しませんでした。
ID3D11Buffer* constantBuffer;
ID3D11Buffer* vertexBuffer;
ID3D11Buffer* indexBuffer;
ID3D11VertexShader* vertexShader;
ID3D11PixelShader* pixelShader;
ID3D11InputLayout* vertexLayout;
ユーザーがサイズを変更するたびにグラフィックを再作成しないことで、パフォーマンスを節約したいと思っていました。