注册 登录
编程论坛 C图形专区

求教高手,openGL程序如何做到显示图像开始后仍然能接受键盘窗口命令

大宋遗民 发布于 2017-04-01 21:42, 2544 次点击
我现在用linux的c++编程,借glut库来处理鼠标信号,改变图像,但遇到一个极大的问题。典型的glut都要进入一个死循环的子程序glutMainLoop。

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(100, 100);
glutCreateWindow(“Test”);
init();
glutDisplayFunc(display);
 .....
glutMainLoop();

进入glutMainLoop()之后,程序就无法再接受运行程序的stdio键盘输入命令。而我需要在图像显示后,仍然能够用键盘来输入命令改变图像,同时可以不影响图像自身的显示,我知道有其他程序可以这样做,请问怎么可以做到这点?

我知道glut有子程序void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y));可以接受键盘命令,但那只能是在图像窗口,而不是原来调用OpenGL程序的窗口,对于借用图像做设计的用途,非常不方便。

另外,opengl可以接受游戏操纵杆的信号吗?

1 回复
#2
BlueGuy2018-05-31 10:54
opengl只负责图形渲染,不负责窗口管理。windows下可以用wgl仿问opengl,linux下我就不清楚了。可以试试glfw
1