首页 > 解决方案 > D3DImage 在 WPF 应用程序上丢失设备

问题描述

我正在开发一个显示 directX 场景的 WPF 应用程序。生成 directX 场景的代码不是我的,我无权访问它。(它不是我可以参考你们的公共代码)

一切正常,直到我不得不格式化我的电脑并安装 Windows 10。(在此之前我有 Windows 7)现在我看不到 DirectX 场景并且 WPF 上的 RenderCapability.Tier 返回 0。

该代码适用于其他计算机(Windows 7 和 Windows 10),所以我猜它与我的计算机有关,但硬件方面没有任何改变。我尝试重新安装 DirectX,并尝试重新安装显示驱动程序(尝试了几种不同的驱动程序)但没有任何效果我仍然得到 RenderCapability.Tier = 0。

显示 DirectX 场景的代码大部分取自此链接: https ://www.codeproject.com/Articles/28526/Introduction-to-D3DImage

我在互联网上找不到任何真正解决我问题的帮助。任何帮助,将不胜感激。谢谢!

标签: c#directx

解决方案


运行 dxdiag.exe,显示选项卡,确保它打印“D3D 加速:已启用”和“未发现问题”。

链接的示例也有一个错误,在某些系统上,您必须使用查询等待渲染完成,然后再将纹理传递给 WPF。否则 WPF 可能会显示不完整的渲染,或者根本没有。如果你用 DX9 渲染,看到这个,你需要 D3DQUERYTYPE_EVENT 查询,完成渲染后发出 D3DISSUE_END,然后休眠直到 GetData 返回 S_OK。


推荐阅读