bre*_*0de 5 directx graphics directx-11
我正在开发 directX 11 应用程序。我在创建 DX11 设备后使用 IDXGIFactory2::CreateSwapChainForHwnd 创建交换链。DX11 代码位于一个对象中,该对象被销毁然后重新创建以将另一个视频流渲染到相同的 HWND(窗口句柄)。
首次运行应用程序 IDXGIFactory2::CreateSwapChainForHwnd 成功,没有问题。然后应用程序使用 DX11 代码销毁该对象,从而销毁 DX11 设备和交换链等。它会使用相同的 HWND 再次重新初始化 DX11 代码,这次 IDXGIFactory2::CreateSwapChainForHwnd 因 E_ACCESSDENIED 失败。
我读过 MSDN 文档,说更改交换链时存在不同破坏的问题。这里:
我尝试实施建议的解决方法来强制销毁对象:
D3D11Context->ClearState();
D3D11Context->Flush();
Run Code Online (Sandbox Code Playgroud)
但 IDXGIFactory2::CreateSwapChainForHwnd 仍然返回 E_ACCESSDENIED。
有谁知道为什么会发生这种情况?谢谢!