可以将DirectX 10 (我使用的是SlimDX)与WPF的D3DImage一起使用吗?我能找到的唯一示例和文档仅显示使用DX9曲面。
发布于 2010-05-07 12:52:17
可以,您可以在WPF中使用D3DImage来使用DirectX 10、11和DirectWrite,方法是将呈现目标图面创建为共享的,然后基于该共享纹理句柄创建要在WPF中使用的DX9纹理。
这意味着基本上可以像使用DX9一样使用10、11和DirectWrite,而不会产生额外的开销,也不会出现空域问题。
在这里可以找到一个集成了DX9、DX10、DX11和DirectWrite的示例WPF项目:
http://blogs.windowsclient.net/rob_relyea/archive/2010/04/30/gizmodo-posts-wpf-direct2d-sample-wow.aspx
除了Windows7中的各种其他非托管库之外,微软代码包还包含一个针对Windows7组件的薄托管包装器,包括DX9、DX10、DX11和DirectWrite。
SurfaceQueueInteropHelper是一个WPF控件,它管理在WPF中自动创建DX9、10和11上下文,并管理D3DImage更新和渲染系统的各种其他方面,包括设备丢失事件。
发布于 2009-08-14 23:01:00
据我所知还没有开箱即用。WPF是基于DirectX的,但由于WPF在Windows XP上也受支持,所以它基于DirectX 9。
我知道可以将DirectX 10与WPF一起使用,但是这样你的应用程序就不能在XP上运行了。
有一个名为Bling的WPF库,它支持Windows10(在DirectX和Windows7上),你可能会感兴趣。你可以在here上找到它。我不知道它有多成熟。
此外,我遇到了this blog (主要用法语),他谈到了在DirectX 10中使用WPF。
最后,对如何在DirectX over at CodeProject中使用D3DImage进行了很好的介绍
我知道这并没有完全回答你的问题,但我想不管怎样,我还是和你分享一下。祝你好运。
发布于 2011-02-03 05:32:20
如果您愿意使用SlimDX进行DirectX调用,可以尝试SlimDXControl (slimdxcontrol.codeplex.com) --它是我编写的一个wrote控件,显式地只支持D3D10,而不支持'9‘。
-mpg
https://stackoverflow.com/questions/1252780
复制相似问题