前缓冲区丢失后的HRESULT 0x8876086a

时间:2011-05-02 13:03:39

标签: wpf directx directx-9 directx-10

我使用DirectX在非托管代码中渲染图像,在WPF中使用D3DImage来托管曲面。当系统进入休眠状态时,会引发frontBufferLost事件。处理事件并销毁和重新创建所有资源。

在非托管代码中使用Direct3D9时,一切正常。引发事件后,将重新创建设备并执行渲染而不会出现任何错误。

但是当我在引擎中使用DirectX10时,由于我还需要Direct3D9设备用于Surface队列,我尝试删除并重新创建10和9设备。在这个阶段,在GetDeviceCaps调用期间,我总是得到0x8876086a,我认为设备不可用。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

通常解决此类问题的最佳方法是进入DirectX属性控制面板,切换到DirectX的调试版本,将调试输出级别一直调高,然后启动应用程序。如果在GetDeviceCaps()调用失败时在Visual Studio中观察输出窗口,您将有望看到问题。

祝你好运!