SharpDX工具包Swapchainpanel集成



我目前正在与SharpDX合作,以定位为Win 8.1的项目,并且在页面上需要多个3D视口以及其他XAML元素。到目前为止,我已经能够通过Nuget安装SharpDx工具包,并能够运行标准工具包项目。但是,该项目使用SwapchainbackgroundPanel控件作为渲染3D内容的方法,如下所示。

mainpage.xaml

<SwapChainBackgroundPanel
    x:Class="MyGame1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MyGame1"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignWidth="1280"
    d:DesignHeight="800">
</SwapChainBackgroundPanel>

mainpage.xaml.cs

  public sealed partial class MainPage
  {
    private readonly MyGame1 game;
    public MainPage()
    {
      this.InitializeComponent();
      game = new MyGame1();
      this.Loaded += (sender, args) => game.Run(this);
    }
  }

根据我阅读的文档,SwapchainbackgroundPanel已被弃用以支持新引入的Swapchainpanel,但是当我试图用Swapchainpanel替换SwapchainbackgroundPanel时,我收到了一个错误。

有人知道在不久的将来是否有一个计划来更新SharpDX工具包,以与Swapchainpanel一起使用,就像当前使用SwapchainbackgroundPanel一样?

谢谢!

directx 11.2构建已经完全支持与 SwapChainPanel的集成。

我添加了一个演示此功能的示例。

首先,请确保您的项目参考DirectX 11.2组件 - 这涉及项目编辑,如下所述。

之后,根据需要编辑您的页面XAML,例如这样(简短省略了某些代码):

<Page ...>
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <SwapChainPanel x:Name="panel" x:FieldModifier="private" />
    </Grid>
</Page>

然后您需要照常运行游戏:

using SharpDX.Toolkit;
public sealed partial class MainPage
{
    private readonly Game _game;
    public MainPage()
    {
        InitializeComponent();
        _game = new MiniCubeGame();
        _game.Run(panel);
    }
}

如果这更适合您的体系结构,则可以将_game.Run(...)调用转移到Loaded事件处理程序。

最新更新