Как установить операцию закрытия в программе GLUT, написанной на C?(как в красной кнопке в левом верхнем углу, чтобы работать) - PullRequest
5 голосов
/ 04 января 2012

Я пишу действительно простую программу с использованием GLUT и C в XCode 4.2.

int main(int argc, char** argv)
{
    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
    glutInitWindowSize(640, 480);

    glutCreateWindow("GLUT Program");

    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutIdleFunc(idle);

    glutMainLoop();
    return EXIT_SUCCESS;
}

Когда открывается окно, я не могу закрыть его с помощью красной кнопки в верхнем левом углу (Mac) потому что оно серое.Если какое-либо программирование на Java, которое я сделал, является моделью, должна быть какая-то функция, которая устанавливает операцию закрытия так, чтобы работала красная кнопка выхода.Я также не могу найти документацию для самой последней версии GLUT.Всякий раз, когда я запускаю Google, мне кажется, что я получаю документацию OpenGL, что делает меня немного более запутанным, чем я был в отношениях между ними (я думал, что GLUT - это кроссплатформенный интерфейс для взаимодействия с OpenGL).

Ответы [ 4 ]

3 голосов
/ 04 января 2012

В Mac OS окно не может быть закрыто, и приложение должно быть закрыто ( sources здесь ).

2 голосов
/ 04 января 2012

Если вы хотите использовать оконную систему Mac для написания родного Mac-подобного приложения (и вы должны - ваши пользователи будут вам благодарны!), Вы должны использовать NSOpenGLView вместо GLUT.Вот хороший пример кода здесь .

0 голосов
/ 18 августа 2017

хорошо, я столкнулся с этой проблемой сейчас, и я использую

Command + Q

, чтобы выйти из процесса, он работает.

0 голосов
/ 07 января 2014

Используя привязки GLUT для python на OS X, я нахожу, что передачи обработчика событий в glutWMCloseFunc достаточно для выполнения действия (очевидно, это не рекомендуется в пользу glutCloseFunc, но не в моей версии).

...