顶点和丢失的设备

时间:2008-10-26 13:04:22

标签: direct3d

在Direct3D应用程序(托管)中,每次丢失设备时都应该重新创建顶点缓冲区吗?

我正在开发的应用程序是一个Windows CAD应用程序。不是游戏。我想我可以在3D模型更改时生成顶点缓冲区。但是,当我丢失设备时,我应该重做它还是可以重用旧设备中的顶点缓冲区?

1 个答案:

答案 0 :(得分:2)

如果必须重新创建顶点缓冲区,则取决于您创建它们的池。

驻留在D3DPOOL_MANAGED池中的Vertes缓冲区将由directx自动重新创建。系统内存中的缓冲区不会丢失,因此您不必重新创建它们。

只有完全驻留在视频内存中的缓冲区才需要重新创建,因为每次松开设备时视频内存的内容都会丢失。

我建议您只使用托管池来处理所有静态对象。这会增加内存需求,但您不必关心讨厌的细节,例如耗尽视频内存,丢失缓冲区等。