我正在使用 DirectX 在非托管代码中渲染图像,并在 WPF 中使用 D3DImage 来托管表面。当系统进入睡眠状态时,会引发 frontBufferLost 事件。处理事件并销毁并重新创建所有资源。
在非托管代码中使用 Direct3D9 时,一切正常。引发事件后,将重新创建设备并执行渲染而不会出现任何错误。
但是当我在引擎中使用 DirectX10 时,由于我还需要 Direct3D9 设备来实现 Surface 队列,所以我尝试删除并重新创建 10 和 9 设备。在这个阶段,在 GetDeviceCaps 调用期间,我总是得到 0x8876086a,我认为这是设备不可用。
有人可以帮我解决这个问题吗?