我一直在寻找这个问题的答案。有谁知道怎么做?
我有一些想法,你能告诉我它们是否有效,哪个是最好的(如果有合适的解决方案)。
谢谢!
答案 0 :(得分:0)
如果你只是想加载一个级别,那么你真的不需要单独的线程。例如,您可以在加载资源时重新绘制场景。我建议避免多线程,除非你没有多线程。
如果您仍想要多线程,请将D3DCREATE_MULTITHREADED
传递给IDirect3D9::CreateDevice。请注意,DirectX SDK明确警告使用此标志可能会降低性能。
创建单个设备是首选解决方案,即我建议使用#1。
可以在多个设备之间share resources,但此功能仅适用于Windows Vista。因为人们今天仍然使用WinXP,如果你使用类似的东西,你的用户会讨厌你。