У меня есть функция со следующим кодом:
GameStateManagementGame.GraphicsDeviceManager.PreferredBackBufferWidth = width;
GameStateManagementGame.GraphicsDeviceManager.PreferredBackBufferHeight = height;
GameStateManagementGame.GraphicsDeviceManager.IsFullScreen = isFullScreen;
GameStateManagementGame.GraphicsDeviceManager.ApplyChanges();
При вызове при запуске приложения, если isFullScreen = true, на секунду или 2 очень заметно мерцание экрана, даже если ширинаи высота совпадают с разрешением рабочего стола.Если у меня нет ApplyChanges ();называть это не происходит (но настройки применяются).Если я вызываю функцию после полного запуска игры без вызова ApplyChanges (), настройки не применяются.
Теперь я могу решить эту проблему, добавив что-то, чтобы пропустить вызов ApplyChanges () взапуск, но я хотел бы знать, почему это происходит.
Единственная информация, которую мне удалось найти относительно этой проблемы, говорит о том, что мерцание не должно происходить, если вы используете то же разрешение, что и на рабочем столе, или предоставили слишком сложные и неработающие обходные пути.
Итак, мой вопрос: в чем причина описанного выше поведения и каков лучший обходной путь?