GLUT клавиатура и мышь просто не будут вызываться

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(){
}

Итак, у меня проблема с приведенным выше кодом. Функция клавиатуры и мыши просто не будет вызвана.

Я надеюсь, что вам удастся воспроизвести эту проблему.

-1

Решение

Просто, вы забыли зарегистрировать их, используя 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;
}
6

Другие решения


По вопросам рекламы [email protected]