2

グラフィックインターフェイスのサイズを変更するための最良の方法を見つけようとしています。作成したシェイプのバッファを削除せずにデバイスを再初期化しようとしましたが、結果的にメモリが大幅にリークしました。

私はこの主題に関して何も有用なものを見つけませんでした。

[バッファ、デバイス、アダプタ]をすべて削除して、グラフィックインターフェイスを最初から再起動する必要がありますか?それともそれを行う効率的な方法はありますか?

これは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;

ユーザーがサイズを変更するたびにグラフィックを再作成しないことで、パフォーマンスを節約したいと思っていました。

4

1 に答える 1

8

何をする必要があるかを説明するdocs.microsoft.comの記事があります。読んだことがありますか?

于 2012-10-10T07:38:08.887 に答える