我想让 Directx 11 在 WPF 中工作。从回答 this question显然这是可能的。第二个答案指向一些实现“共享表面队列”的微软代码。
我正在浏览共享表面队列代码,但我不知道它实现了什么目的(除了需要使不同版本的 Directx 很好地共享一个表面)。创建共享表面队列以共享 directx 表面的目的是什么? (特别是 WPF 与 directx 11 的组合)。
注意:与我引用的问题不同,我没有使用 slimDX
最佳答案
原因与不同 Direct3D 接口(interface)之间以及 WPF 组合和多线程之间的同步问题有关。这里有一些有用的链接...
Direct3D9Ex 和 DXGI 共享表面队列
http://archive.msdn.microsoft.com/D3D9ExDXGISharedSurf
Windows 图形 API 之间的表面共享
http://msdn.microsoft.com/en-us/library/ee913554%28VS.85%29.aspx
WPF D3D 互操作 C++ 和 C# 示例。 MS Kinect SDK 对 SDK 示例使用共享表面队列方法
http://msdn.microsoft.com/en-us/library/jj591490.aspx
开发slimdx时遇到的不同步问题的一些讨论
http://www.gamedev.net/topic/606138-slimdx-issues-with-keyedmutex-and-wpf/
关于wpf - 为什么不同的directx版本需要共享表面队列才能协同工作,更具体地是为了互操作WPF和directx 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6630550/