int main(int argc, const char* argv[])
{
glutInit(&argc, const_cast<char**>(argv));
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100, 100);
glutInitWindowSize(640, 480);
glutCreateWindow("Sample Window");
glutDisplayFunc(render);
glutMainLoop();
return 0;
}
void keyboard(unsigned char c, int x, int y){
std::cout << "Called Keyboard";
if(c == 'a'){
exit(0);
}
}
void mouse(int button, int state, int x, int y){
std::cout << "Called Mouse";
if(button == GLUT_RIGHT_BUTTON){
exit(0);
}
}
void render(){
}
Итак, у меня проблема с приведенным выше кодом. Функция клавиатуры и мыши просто не будет вызвана.
Я надеюсь, что вам удастся воспроизвести эту проблему.
Просто, вы забыли зарегистрировать их, используя glutKeyboardFunc
а также glutMouseFunc
:
int main(int argc, const char* argv[])
{
glutInit(&argc, const_cast<char**>(argv));
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100, 100);
glutInitWindowSize(640, 480);
glutCreateWindow("Sample Window");
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutDisplayFunc(render);
glutMainLoop();
return 0;
}