GLUT 键盘和鼠标功能只是不会被调用

GLUT keyboard and mouse func just won't get called

本文关键字:调用 键盘 鼠标 功能 GLUT      更新时间:2023-10-16
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(){
}

所以,我对上面的代码有问题。键盘和鼠标功能不会被调用。

我希望你能设法重现这个问题。

很简单,您忘记使用glutKeyboardFuncglutMouseFunc注册它们:

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;
}