【问题标题】:HRESULT 0x8876086a after front buffer lost前端缓冲区丢失后的 HRESULT 0x8876086a
【发布时间】:2011-08-31 07:54:28
【问题描述】:

我正在使用 DirectX 在非托管代码中呈现图像,并在 WPF 中使用 D3DImage 来承载表面。当系统进入睡眠状态时,会引发 frontBufferLost 事件。处理事件并销毁并重新创建所有资源。

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

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

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

【问题讨论】:

    标签: wpf directx directx-9 directx-10


    【解决方案1】:

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

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 2019-05-07
      • 1970-01-01
      • 2013-09-19
      • 2012-02-26
      • 1970-01-01
      相关资源
      最近更新 更多