如果设备丢失或重置后IDirect3DStateBlock9仍然存在?

时间:2014-06-12 18:27:54

标签: directx directx-9

如果我使用IDirect3DStateBlock9捕获设备(directx 9)状态,我是否可以使用之前创建的接口在设备重置或丢失后恢复设备状态?

1 个答案:

答案 0 :(得分:0)

不,你不能。打开调试运行时,并使用调试模式运行,您将收到以下错误。

Direct3D9: (ERROR) :All user created stateblocks must be freed before ResetEx can succeed. ResetEx Fails.

另一种方法是您可以手动保存/恢复设备状态而不使用状态块。在渲染之前更改状态时,使用变量保存每个状态,然后在重置设备后恢复状态。