状态应至少包括以下内容:
- 通过 SetStreamResource() 设置的所有设置
- 指数
我有一个类,它的 Draw() 函数将调用 SetStreamResource、设置索引并最终调用 DrawIndexedPrimitive()。我想在 Draw() 返回之前恢复设备状态。
我正在寻找与 GDI 的 SaveDC()/RestoreDC() 类似的东西。
状态块是 API 提供的用于保存和恢复设备状态块的机制。我在我的书The Direct3D Graphics Pipeline中的第 3 章中介绍了状态块的详细信息。您可以从上面的链接下载该章节的 PDF。
看起来这些会做到这一点:
Microsoft::DirectX::Direct3D::Device::BeginStateBlock
Microsoft::DirectX::Direct3D::Device::EndStateBlock