можно ли создать окно glut фиксированного размера?

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

для меня слишком поздно переключаться на SDL или что-то подобное.

2 ответов


по-видимому, это невозможно законным способом, но вы можете использовать glutReshapeWindow внутри glutReshapeFunc - обратный вызов, чтобы привязать его обратно сразу после выпуска мыши. Это довольно эффективно и, насколько мне известно, лучшее решение. Только протестировано с freeglut:

glutReshapeFunc(resize);

void resize(int width, int height) {
    // we ignore the params and do:
    glutReshapeWindow( 800, 600);
}

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

помните: GLUT предназначен для демонстрации применения и простые испытательные стенды. Для такого приложения возможность изменения размера окна довольно стандартная.