Изобразявам с помощта на SlimDX на контрола във формуляр. Тъй като размерът на този контрол може да се променя много често и има много сложни мрежи, традиционният метод за конструиране на свободно нулиране може да е твърде бавен за моя вкус. Някакъв начин да го засиля?
има ли някакъв начин за нулиране на устройството (slimdx, dx9), без да се изхвърлят всички обекти, свързани с устройството?
Отговори (1)
създайте допълнителен SwapChain, свързан с текущия ви прозорец, като използвате метода IDirect3DDevice9::CreateAdditionalSwapChain,
след това вземете задния буфер на новия SwapChain и използвайте метода IDirect3DDevice9::SetRenderTarget, за да зададете задния буфер на новия SwapChain като цел за изобразяване,
когато завършите чертежите си, извикайте настоящия метод на новия SwapChain вместо IDirect3DDevice9::present,
когато прозорецът ви бъде преоразмерен, просто освободете допълнителния SwapChain и го създайте отново с нови размери на задния буфер и направете отново настройката за рендиране, сега не е нужно да правите нулиране на устройството, което е много бавно.
ако имате още въпроси, изпратете ми имейл: [email protected]
Аз съм китаец, така че английският ми не е толкова добър, извинете ме.