Изменение размеров окна DirectX эффективно

Я пытаюсь найти лучший способ изменить размер графического интерфейса. Я попытался просто повторно инициализировать устройство, не удаляя мои буферы форм, которые я сделал, но я закончил с большой утечкой памяти.

Я не нашел ничего полезного на эту тему.

Нужно ли удалять все [буферы, устройства, адаптеры] & перезапустить графический интерфейс с нуля?
Или есть эффективный способ сделать это?

Это для интерфейса 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;

Я надеялся сохранить производительность, не воссоздавая графику каждый раз, когда пользователь изменяет размеры.

2

Решение

Есть MSDN статья который объясняет, что вам нужно сделать. Вы читали это?

7

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector