首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否允许MonoGame (XNA) DirectX11中的多个DirectX11

是否允许MonoGame (XNA) DirectX11中的多个DirectX11
EN

Stack Overflow用户
提问于 2015-07-16 07:00:33
回答 1查看 564关注 0票数 0

使用MonoGame (基本上是XNA),我有一些代码允许您在System.Windows.Controls.Image中托管一个DirectX11窗口,其目的是允许您将窗口显示为标准的WPF控件。

我通过查看一些在线代码示例创建了这段代码,这些示例展示了类似的功能(因为我是一个完全的游戏开发新手)。在我使用的一些代码中,有一种我特别感兴趣的方法,如下所示:

代码语言:javascript
复制
private static void InitializeGraphicsDevice(D3D11Host game, int width, int height)
{
    lock (GraphicsDeviceLock)
    {
        _ReferenceCount++;
        if (_ReferenceCount == 1)
        {
            // Create Direct3D 11 device.
            _GraphicsDeviceManager = new WpfGraphicsDeviceManager(game, width, height);
            _GraphicsDeviceManager.CreateDevice();
        }
    }
}

在创建托管对象(即System.Windows.Controls.Image)时调用此代码,显然它的目的是限制创建多个GraphicsDeviceManagers。然而,我已经在这样的情况下结束了,这段代码阻止我根据需要创建多个游戏窗口。

我已经将这段代码从静态更改为实例,删除了计数器,所有似乎都正常工作,但我担心的是,有一些基本的东西我不明白,以后可能会出现。

那么,为什么上面的代码阻止创建多个DeviceManagers呢?在XNA (MonoGame)中创建多个图形设备管理器是合法的吗?我得假设一定是有原因的?

EN

回答 1

Stack Overflow用户

发布于 2015-07-16 07:54:57

我认为这是因为xna背后的基本设计思想。你有一个游戏循环,一个图形输出窗口,等等。

如果我没记错的话,在不同的手柄上创建多个图形设备应该没有问题(在您的例子中,是不同的窗口)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31447366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档