Я также рекомендую избегать GLUT. В любом случае, это довольно ограничено.
Другой вариант, если вы предпочитаете обрабатывать свой собственный основной цикл событий, а не использовать обратные вызовы, использует SDL. Да, он предназначен для игр, но он может дать вам контекст GL и достаточно хорошо работает для большинства интерактивных приложений OpenGL, которым не нужны стандартные виджеты пользовательского интерфейса. Он дает вам события клавиатуры/мыши, миллисекундные таймеры и некоторые очень простые окна управления.
KINDA POINTLESS POST-HOC EDIT: В сообщении мне сообщили, что GLFW также позволяет запускать собственный цикл событий. Посмотрев на это снова, я определенно соглашусь с тем, что GLFW - это путь для большинства вещей, которым не нужны стандартные виджеты пользовательского интерфейса.
Хотя ответы, отводящие от GLUT, являются правильными и полезными, ответ на личный вопрос - использование keyboardMouseCallback. Событие mousewheel не работает, но клавиатураMouseCallback также обрабатывает события колес, поэтому работает в GLUT. – mentics