wpf - 为什么不同的directx版本需要共享表面队列才能协同工作,更具体地是为了互操作WPF和directx 11

标签 wpf directx directx-11

我想让 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/

相关文章:

c# - WPF 用户控件中的多个内容展示器

c# - 遍历不断修改的列表

wpf - 如何在 FlowDocument 中将表格放在一起?

c++ - 如何使用包装在 ComPtr 中的 Direct3D 11 指针来获取 11.1 接口(interface)?

c++ - DrawIndexedInstanced() 影响其他几何体

c++ - DirectX11 HLSL 着色器未运行

c# - SharpDx 窗口调整大小

c# - 将 Firebird Net 提供商集成到应用程序中

c++ - 采样 D3D11 深度缓冲区时出现问题

c++ - 如何在游戏中创建多个页面 View ?