Я создал простое тестовое приложение с использованием MonoGame (версия 3.2, последний официальный на момент написания), но я не могу сделать приложение в полноэкранном режиме.MonoGame GraphicsDevice.DisplayMode не работает
Я нашел этот код в другом месте:
protected override void Initialize()
{
graphics.IsFullScreen = true;
graphics.PreferredBackBufferWidth = GraphicsDevice.DisplayMode.Width;
graphics.PreferredBackBufferHeight = GraphicsDevice.DisplayMode.Height;
graphics.ApplyChanges();
Window.IsBorderless = true;
Window.Position = new Point(0, 0);
base.Initialize();
}
Но проблема в том, что GraphicsDevice.DisplayMode
всегда возвращает размер экрана 800x600
. Кроме того, коллекция GraphicsAdapter.Adapters
содержит только один адаптер с одним поддерживаемым режимом отображения (800x600).
В чем проблема? Мое текущее разрешение - 1920x1080, и я получаю те же результаты, если я подключу два монитора в качестве расширенного рабочего стола (это моя обычная настройка).
Update
В конце концов, я просто добавил ссылку на System.Windows.Forms
и используется:
graphics.IsFullScreen = true;
graphics.PreferredBackBufferWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
graphics.PreferredBackBufferHeight = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
graphics.ApplyChanges();
Я до сих пор удивляюсь, почему MonoGame не обнаруживает каких-либо адаптеров/экранов правильно.
Обновление 2 Вопрос был исправлен в неофициальной сборке (на момент написания статьи), как указано в this answer.
Попробуйте переместить этот код в конец вашего конструктора 'Game' – Vlad
@ Vlad: это не сработает, потому что' GraphicsDevice' является нулевым внутри ctor (по крайней мере, в MonoGame, я думаю, что это ведет себя по-другому в XNA). – Lou
Я только что установил 'graphics.IsFullScreen = true' и * nothing * else после' base.Initialize() 'и работает как ожидалось. Вы используете winforms для решения этой проблемы, поэтому я могу предположить, что вы используете Windows, а не Linux/Mac. Не возражаете ли вы подтвердить версию? Я создаю виртуальную машину и посмотрю – Joe