UWP and DirectX

7
我有一个任务:
第二个组件必须使用C ++编写,并且必须是UWP程序集/组件,将用于任务的第一部分。它必须是一个DirectX组件,可以在透明背景的SwapChain上绘制。内容必须是绑定到当前鼠标位置的2D动画。该内容必须可通过一组公共方法进行控制。
DirectX组件必须放置在C#GUI的顶部,以充当覆盖层。
使其成为事件透明覆盖层,它不得捕获任何GUI事件,也不得干扰C#应用程序。
使用C#主机发送鼠标事件和内容更改到DX图层。
但是我不知道如何结合UWP和DirectX。
我已经拥有了运行良好的UWP C#应用程序部分,下一步是什么?
感谢您的回复和想法。

看这里:http://www.unknowncheats.me/forum/c-and-c-/84234-external-directx-overlay-translated.html - 这里有一个简单的示例,展示如何写入到 DirectX 设备的任何区域。关于捕获鼠标事件 - 你需要在 WinMain 函数中监听 WM_MOUSE*** 类型的事件。 - VitaliyK
2个回答

1

MonoGame!

这是一个基于XNA4的游戏框架,可在众多平台上运行,包括UWP。您可以分解示例以了解所需内容。

http://www.monogame.net/


1
你需要在XAML文件中包含一个SwapChainPanelSwapChainBackgroundPanel控件。这个表面将被用来绘制你的DirectX内容。在Visual C++模板中有一个默认的UWP示例,名为DirectX 11和XAML App。它可以帮助你理解基本原理,但这个解决方案只有C++代码。

他们正在描述使用SwapChainPanel或SwapChainBackgroundPanel控件的XAML+C#代码后端,可以使用DirectX进行渲染。C#没有内置的DirectX支持,但是您可以使用第三方程序集,例如[SharpDX](http://sharpdx.org/)。内置的Visual C ++模板“DirectX 11和XAML应用程序(通用Windows)”适用于C ++代码后端,但是没有内置的模板可用于将C#代码后端与DirectX结合使用。 - Chuck Walbourn
你可能想看看 Win2D,它是 Direct2D 的 C# 封装库,特别是 Win2D Samples 存储库。 - Chuck Walbourn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接