има ли някакъв начин за нулиране на устройството (slimdx, dx9), без да се изхвърлят всички обекти, свързани с устройството?

Изобразявам с помощта на SlimDX на контрола във формуляр. Тъй като размерът на този контрол може да се променя много често и има много сложни мрежи, традиционният метод за конструиране на свободно нулиране може да е твърде бавен за моя вкус. Някакъв начин да го засиля?


person user522829    schedule 23.04.2013    source източник


Отговори (1)


създайте допълнителен SwapChain, свързан с текущия ви прозорец, като използвате метода IDirect3DDevice9::CreateAdditionalSwapChain,

след това вземете задния буфер на новия SwapChain и използвайте метода IDirect3DDevice9::SetRenderTarget, за да зададете задния буфер на новия SwapChain като цел за изобразяване,

когато завършите чертежите си, извикайте настоящия метод на новия SwapChain вместо IDirect3DDevice9::present,

когато прозорецът ви бъде преоразмерен, просто освободете допълнителния SwapChain и го създайте отново с нови размери на задния буфер и направете отново настройката за рендиране, сега не е нужно да правите нулиране на устройството, което е много бавно.

ако имате още въпроси, изпратете ми имейл: [email protected]

Аз съм китаец, така че английският ми не е толкова добър, извинете ме.

person 行 徐    schedule 05.05.2013