我正在尝试找到调整图形界面大小的最佳方法。我尝试重新初始化设备而不删除我制作的形状的缓冲区,但我最终得到了大量的内存泄漏。
我在这个问题上没有找到任何有用的东西。
我是否需要删除所有内容[缓冲区,设备,适配器]&从头开始重启图形界面? 或者有一种有效的方法吗?
这适用于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
具体来说,我没有删除这些:
ID3D11Buffer* constantBuffer;
ID3D11Buffer* vertexBuffer;
ID3D11Buffer* indexBuffer;
ID3D11VertexShader* vertexShader;
ID3D11PixelShader* pixelShader;
ID3D11InputLayout* vertexLayout;
我希望每次用户调整大小时都不重新创建图形来保存性能。