Вопрос

В приложении Direct3D (управляемом) я должен воссоздавать буфер вершин каждый раз, когда я теряю свое устройство?

Приложение, которое я разрабатываю, является Windows CAD-приложением. Не игра Я думал, что смогу создать буфер вершин, когда моя 3D-модель изменится. Но я должен повторить это, когда я потеряю свое устройство, или я могу повторно использовать буфер вершин со старого устройства?

Это было полезно?

Решение

Если вам необходимо воссоздать буфер вершин, зависит от того, в каком пуле вы их создали.

Буферы Vertes, которые находятся в пуле D3DPOOL_MANAGED, будут автоматически воссозданы DirectX. Буферы в системной памяти не теряются, поэтому вам не нужно их заново создавать.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top