首页 > 解决方案 > DirectX 9 在重置调用中保留状态

问题描述

我需要在 IDirect3DDevice9::Reset 调用中保留我的 IDirect3DStateBlock9。我怎样才能做到这一点?我知道它需要被释放,但是有没有办法将数据存储在状态中,以便我可以将它应用到设备上?

标签: c++directx-9

解决方案


Direct3D 9 状态块是不透明的。您不能对它们进行序列化,并且如果设备是使用 创建的D3DCREATE_PUREDEVICE,则不能使用任何Get方法来尝试恢复各个状态设置。

一旦Reset发生,您基本上必须再次设置您需要的所有状态。


推荐阅读