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

Cod*_*de0 -1 c++ opengl glut listeners

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(){
}
Run Code Online (Sandbox Code Playgroud)

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

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

Tho*_*mas 6

很简单,你忘记使用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;
}
Run Code Online (Sandbox Code Playgroud)