Game1.GraphicsDevice和graphics.GraphicsDevice之间的区别

时间:2012-11-25 14:59:54

标签: c# graphics xna

在XNA 4.0中,我的游戏类的GraphicsDevice属性和“graphics”变量的GraphicsDevice属性有什么区别?顺便说一下,“graphics”的类型是GraphicsDeviceManager。

如果重要的话,我正在使用Visual Studio 2010.

2 个答案:

答案 0 :(得分:2)

无。亲自尝试一下:

Console.WriteLine(ReferenceEquals(graphics.GraphicsDevice, this.GraphicsDevice));

把它放在像LoadContent里面那样的地方。你会发现它输出true。它们都指向同一个对象。

为了便于阅读,通常应使用Game.GraphicsDevice


基本行为是GraphicsDeviceManagerIGraphicsDeviceService(提供GraphicsDevice成员)。当您创建GraphicsDeviceManager时,它会在其构造函数中将自身添加到Game.Services(请参阅如何将对Game的引用传递到其构造函数中。)

Game在其GraphicsDevice列表中的任何IGraphicsDeviceService设置其Services成员。这样,您可以将GraphicsDeviceManager替换为您自己的实现IGraphicsDeviceService的类 - 如果您碰巧疯了;)

GraphicsDeviceManager也是IGraphicsDeviceManagerGame以类似的方式(通过Game.Services)来管理创建图形设备。

答案 1 :(得分:0)

GraphicsDeviceManager管理GraphicsDevice,你不应该直接使用GraphicsDevice。如果需要,可以更改它,而不是只使用GraphicsDeviceManager.GraphicsDevice属性。