XNA GraphicsDeviceManager.ApplyChanges () вызывает мерцание при вызове при запуске приложения

У меня есть функция со следующим кодом:

GameStateManagementGame.GraphicsDeviceManager.PreferredBackBufferWidth = width;
GameStateManagementGame.GraphicsDeviceManager.PreferredBackBufferHeight = height;
GameStateManagementGame.GraphicsDeviceManager.IsFullScreen = isFullScreen;
GameStateManagementGame.GraphicsDeviceManager.ApplyChanges();

Когда он вызывается при запуске приложения, если isFullScreen = true, на секунду или 2 появляется очень заметное мерцание экрана, даже если ширина и высота совпадают с разрешением рабочего стола. Если у меня нет ApplyChanges (); называть это не происходит (но настройки применяются). Если я вызываю функцию после полного запуска игры без вызова ApplyChanges (), настройки не применяются.

Теперь я могу решить эту проблему, добавив что-то, чтобы пропустить вызов ApplyChanges () при запуске, но я хотел бы знать, почему это происходит.

Единственная информация, которую мне удалось найти, касающаяся этой проблемы, говорит о том, что мерцание не должно происходить, если вы используете то же разрешение, что и на рабочем столе, или предоставили слишком сложные и сломанные обходные пути.

Итак, мой вопрос: в чем причина описанного выше поведения и как лучше обойти это?

Ответы на вопрос(1)

Ваш ответ на вопрос