在glutKeyboardFunc中进行的OpenGL状态更改不会立即显示

时间:2012-10-02 20:12:07

标签: c++ opengl glut

我有一个函数glutKeyboardFunc(键盘),其中键盘有:

void keyboard(unsigned char key, int x, int y){
    float alpha = 1.0;
    switch(key){
    case 'c':
        glClearColor(1,0,0,alpha);
        printf("success");
        break;
    }
}

这是功能的总结;它工作正常,但只有一次其他动作发生。例如,printf语句会立即在击键时报告成功,但在我单击画布上的其他位置之前,背景颜色不会变为活动状态。我希望所有击键都能立即生效。

1 个答案:

答案 0 :(得分:2)

您需要刷新屏幕:

void keyboard(unsigned char key, int x, int y){
    float alpha = 1.0;
    switch(key){
    case 'c':
        glClearColor(1,0,0,alpha);
        printf("success");
        glutPostRedisplay(); // trigger the screen redisplay
        break;
    }
}