У меня есть функция 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 сообщает об успехе сразу после нажатия клавиши «c», но цвет фона не становится активным, пока я не нажму где-нибудь еще на холсте. Я хочу, чтобы все нажатия клавиш имели немедленный эффект.
Вам необходимо обновить экран:
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;
}
}
Других решений пока нет …