D3DImage使用DX10

时间:2009-08-10 01:17:02

标签: wpf directx slimdx

是否可以在WPF的D3DImage中使用DirectX 10(我正在使用SlimDX)?我能找到的唯一示例和文档仅显示使用DX9曲面。

3 个答案:

答案 0 :(得分:8)

是的,你可以使用WPF中的D3DImage使用DirectX 10,11和DirectWrite,方法是将渲染目标表面创建为共享,然后根据要在WPF中使用的共享纹理句柄创建DX9纹理。

这意味着基本上你可以使用10,11和DirectWrite,就像使用DX9一样,没有额外的开销,也没有空域问题。

可以在此博客文章中找到带有DX9,DX10,DX11和DirectWrite集成的示例WPF项目:

http://blogs.windowsclient.net/rob_relyea/archive/2010/04/30/gizmodo-posts-wpf-direct2d-sample-wow.aspx

除了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