是否可以在WPF的D3DImage中使用DirectX 10(我正在使用SlimDX)?我能找到的唯一示例和文档仅显示使用DX9曲面。
答案 0 :(得分:8)
是的,你可以使用WPF中的D3DImage使用DirectX 10,11和DirectWrite,方法是将渲染目标表面创建为共享,然后根据要在WPF中使用的共享纹理句柄创建DX9纹理。
这意味着基本上你可以使用10,11和DirectWrite,就像使用DX9一样,没有额外的开销,也没有空域问题。
可以在此博客文章中找到带有DX9,DX10,DX11和DirectWrite集成的示例WPF项目:
除了Windows 7中的各种其他非托管库外,Microsoft Code Pack还包含适用于Windows 7组件的精简托管包装程序,包括DX9,DX10,DX11和DirectWrite。
SurfaceQueueInteropHelper是一个WPF控件,可以自动管理WPF中的DX9,10和11上下文,并管理D3DImage更新和渲染系统的各个方面,包括设备丢失事件。
答案 1 :(得分:2)
据我所知,没有开箱即用。 WPF基于DirectX,但由于Windows XP也支持WPF,因此它基于DirectX 9。
我知道可以将DirectX 10与WPF一起使用,但之后您的应用程序将无法在XP上运行。
有一个名为Bling的WPF库,它支持DirectX 10(在Vista和Windows 7上),这可能是您感兴趣的。你可以找到它here。我不知道它有多成熟。
另外,我遇到了this blog(主要是法语),他谈到将DirectX 10与WPF一起使用。
最后,将D3DImage与DirectX over at CodeProject
一起使用是一个很好的介绍我知道这并没有完全回答你的问题,但我想我还是会和你分享。祝你好运。
答案 2 :(得分:1)
如果您愿意使用SlimDX进行DirectX调用,可以尝试使用SlimDXControl(slimdxcontrol.codeplex.com) - 它是我编写的WPF内容控件,它明确只支持D3D10而不是'9。
-mpg