C# XNA GraphicsDeviceManager.ApplyChanges()在应用程序启动时调用时会导致闪烁
我有一个函数,其中包含以下代码:C# XNA GraphicsDeviceManager.ApplyChanges()在应用程序启动时调用时会导致闪烁,c#,.net,xna,C#,.net,Xna,我有一个函数,其中包含以下代码: GameStateManagementGame.GraphicsDeviceManager.PreferredBackBufferWidth = width; GameStateManagementGame.GraphicsDeviceManager.PreferredBackBufferHeight = height; GameStateManagementGame.GraphicsDeviceManager.IsFullScreen = isFullScre
GameStateManagementGame.GraphicsDeviceManager.PreferredBackBufferWidth = width;
GameStateManagementGame.GraphicsDeviceManager.PreferredBackBufferHeight = height;
GameStateManagementGame.GraphicsDeviceManager.IsFullScreen = isFullScreen;
GameStateManagementGame.GraphicsDeviceManager.ApplyChanges();
当在应用程序启动时调用它时,如果isFullScreen=true,即使宽度和高度与桌面分辨率相同,也会有非常明显的屏幕闪烁一秒或两秒。如果我没有ApplyChanges();调用此选项不会发生(但设置会被应用)。如果我在游戏完全启动后调用该函数,而没有ApplyChanges()调用,则不会应用设置
现在我可以通过在启动时跳过ApplyChanges()调用来解决这个问题,但我想知道为什么会发生这种情况
我找到的关于这个问题的唯一信息是,如果您使用与桌面相同的分辨率,或者提供了过于复杂和不完善的解决方法,则不应发生闪烁
因此,我的问题是,上述行为的原因是什么?最佳解决方法是什么?在
GraphicsDeviceManager
上设置的设置适用于以下情况:
ApplyChanges()
ToggleFullScreen()
Game.Run()
时,通过Game
(它创建图形设备)GraphicsDeviceManager
实例上设置正确的设置。当调用Game.Run()
时,这些设置将是正确的
仅当用户在游戏运行时更改设置时,才使用ApplyChanges()