DirectX 11 CreateSwapChainForHwnd因E_ACCESSDENIED而失败

时间:2013-12-13 00:16:11

标签: graphics directx directx-11

我正在开发一个directX 11应用程序。我在创建DX11设备后使用IDXGIFactory2 :: CreateSwapChainForHwnd来创建交换链。 DX11代码位于一个被破坏的对象中,然后重新创建以将另一个视频流渲染到同一个HWND(窗口句柄)。

在第一次运行应用程序IDXGIFactory2 :: CreateSwapChainForHwnd成功没问题。然后应用程序用破坏DX11设备和交换链等的DX11代码销毁对象。它再次使用相同的HWND重新启动DX11代码,这次IDXGIFactory2 :: CreateSwapChainForHwnd FAILS带有E_ACCESSDENIED。

我已阅读MSDN文档,其中说明在更改交换链时存在不同的破坏问题。在这里:

http://msdn.microsoft.com/en-us/library/windows/desktop/ff476425(v=vs.85).aspx#Defer_Issues_with_Flip

我尝试实施建议的解决方法来强制销毁对象:

D3D11Context->ClearState();
D3D11Context->Flush();

但是IDXGIFactory2 :: CreateSwapChainForHwnd仍然返回E_ACCESSDENIED。

有没有人知道为什么会发生这种情况?谢谢!

0 个答案:

没有答案