Вершины и потерянные устройства - PullRequest
1 голос
/ 26 октября 2008

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

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

1 Ответ

2 голосов
/ 26 октября 2008

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

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

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

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

...