Как мне войти в полноэкранный режим с указанным разрешением, используя GLUT?

#c #opengl #glut

#c #opengl #glut

Вопрос:

Хотя glutFullScreen() делает окно полноэкранным, это не изменяет разрешение экрана. На самом деле это эквивалентно изменению размера окна до размера экрана и скрытию строки заголовка и границы.

Как мне изменить разрешение на указанное?

Я использую Ubuntu / Mesa / FreeGlut / C.

Ответ №1:

Вы можете попробовать вызвать glutGameModeString(), за которым следует glutEnterGameMode(). В зависимости от вашей системы, возможно, удастся изменить разрешение экрана:

 glutGameModeString("800x600:32@60");
glutEnterGameMode();
  

Комментарии:

1. Нет, сбой. На самом деле, это действительно изменило размер окна на 800×600 и скрыло строку заголовка и границы, но это просто зафиксировало окно в левом верхнем углу моего экрана, ограничило мою мышь в этой области окна и заблокировало весь ввод с клавиатуры. Я думаю, что что-то мешает изменить разрешение.

2. @trVoldemort, не всегда возможно изменить разрешение X-сервера «на лету» (IIRC, требуется расширение XRandR, и видеодрайвер должен его поддерживать). Что произойдет, если вы запустите xrandr команду с терминала?