Вопрос
В приложении Direct3D (управляемом) я должен воссоздавать буфер вершин каждый раз, когда я теряю свое устройство?
Приложение, которое я разрабатываю, является Windows CAD-приложением. Не игра Я думал, что смогу создать буфер вершин, когда моя 3D-модель изменится. Но я должен повторить это, когда я потеряю свое устройство, или я могу повторно использовать буфер вершин со старого устройства?
Решение
Если вам необходимо воссоздать буфер вершин, зависит от того, в каком пуле вы их создали.
Буферы Vertes, которые находятся в пуле D3DPOOL_MANAGED, будут автоматически воссозданы DirectX. Буферы в системной памяти не теряются, поэтому вам не нужно их заново создавать. Р>
Необходимо воссоздавать только те буферы, которые полностью находятся в видеопамяти, поскольку содержимое видеопамяти теряется при каждой потере устройства.
Я предлагаю вам просто использовать управляемый пул для всех ваших статических объектов. Это немного увеличивает требования к памяти, но вам не нужно заботиться о досадных деталях, таких как нехватка видеопамяти, восстановление буфера и т. Д.