有效调整DirectX窗口大小

Ran*_*own 2 c++ directx resize

我试图找到调整图形界面大小的最佳方法.我尝试重新初始化设备而不删除我制作的形状的缓冲区,但我最终得到了大量的内存泄漏.

我在这个问题上找不到任何有用的东西.

我是否需要删除所有[缓冲区,设备,适配器]并从头开始重新启动图形界面?或者有一种有效的方法吗?

这适用于DX 10/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
Run Code Online (Sandbox Code Playgroud)

具体来说,我没有删除这些:

    ID3D11Buffer* constantBuffer;
    ID3D11Buffer* vertexBuffer;
    ID3D11Buffer* indexBuffer;
    ID3D11VertexShader* vertexShader;
    ID3D11PixelShader* pixelShader;
    ID3D11InputLayout* vertexLayout;
Run Code Online (Sandbox Code Playgroud)

我希望每次用户调整大小时都不重新创建图形来保存性能.

jco*_*der 7

有一篇msdn文章解释了你需要做什么.你读过那个吗?