1
在一個非常簡單爲例利用glutKeyboardFunc,我能得到它很容易的工作:使用複雜的顯示功能可以防止glutKeyboardFunc從工作
void special(int key, int x, int y) {
printf("key %d\n", key);
}
void keyboard(unsigned char key, int x, int y) {
printf("key %d\n", key);
}
void display() {}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(640, 480);
glutCreateWindow("GLUT Program");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutSpecialFunc(special);
glutMainLoop();
return EXIT_SUCCESS;
}
,但使用它與一個非常複雜的顯示功能,鍵盤例程從來沒有打過電話,我不確定那部分阻止這個呼叫的工作,所以我只是在這裏問一些關於可能是什麼原因的想法,我不能真的發佈代碼,因爲那將是整個項目......我我用freeglut與opengl上下文和glm進行數學計算。 不過這裏是新的呼叫:
static void loop_function() {
glutSetWindow(win);
Scene::unique_scene->mainloop();
}
我有點失去了做什麼,找到錯誤,如果有人能夠告訴我,我將不勝感激。
好吧,在我的場景,主循環在glutKeyboardFunc結束時自動調用,有一個循環不是一個好主意,因爲glut鍵盤功能不是多線程的,它在顯示功能被調用之前等待顯示功能完成... 我會盡快添加這個答案作爲答案。 – aze 2014-08-28 09:17:07