【问题标题】:UWP and DirectXUWP 和 DirectX
【发布时间】:2023-03-12 00:33:01
【问题描述】:

我有一个任务:

'第二个组件必须用 C++ 编写,并且必须是任务的第一部分将使用的 UWP 程序集/组件。它必须是使用透明背景绘制到 SwapChain 的 DirectX 组件。内容必须是必须绑定到当前鼠标位置的 2D 动画。内容必须可以通过一组公共方法进行控制。

DirectX 组件必须放置在您的 C# GUI 之上,这样它才能充当叠加层。 使其成为事件透明覆盖,它不能捕获任何 GUI 事件,否则会干扰 C# 应用程序。 使用 C# 主机将鼠标事件和内容更改发送到 DX 层。'

但我不知道如何结合 UWP 和 DirectX。 我已经有正常运行的 UWP C# 应用程序部分,下一步是什么?

如果有任何回应和想法,我将不胜感激。

【问题讨论】:

  • 看那里:unknowncheats.me/forum/c-and-c-/… - 有一个简单的例子来说明如何写入directx 设备的任何区域。关于捕获鼠标事件 - 你需要在你的 WinMain 函数中监听 WM_MOUSE*** 类型的事件。

标签: c# c++ directx win-universal-app


【解决方案1】:

您需要在 XAML 文件中包含 SwapChainPanelSwapChainBackgroundPanel 控件。此表面将用于绘制您的 DirectX 内容。您在 Visual C++ 模板 中有一个名为 DirectX 11 和 XAML 应用程序的默认 uwp 示例。它可以帮助您了解管道,但此解决方案中只有 C++ 代码。

【讨论】:

  • 他们描述了 XAML+C# 代码隐藏,带有可以使用 DirectX 呈现的 SwapChainPanel 或 SwapChainBackgroundPanel 控件。 DirectX 没有内置的 C# 支持,但您可以使用像 SharpDX 这样的第 3 方程序集。内置的 Visual C++ 模板“DirectX 11 和 XAML 应用程序(通用 Windows)”为 C++ 代码隐藏执行此操作,但没有用于与 DirectX 结合的 C# 代码隐藏的内置模板。
  • 您可能想看看 Win2D,它是 Direct2D 的 C# 包装器,尤其是 Win2D Samples 存储库。
【解决方案2】:

单人游戏!

这是一个基于 XNA4 的游戏框架,适用于 UWP 以及无数其他平台。您可以挑选样本来了解您需要什么。

http://www.monogame.net/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-26
    • 2017-06-13
    • 2017-02-02
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 2010-12-27
    • 2010-10-19
    相关资源
    最近更新 更多