我正在使用GLUT使用openGL。 我正在使用一些函数制作自己的头文件。 其中一个是矩形,您可以在其中输入数字并保存它们。 这里的问题是,如果我想知道按键被按下,我需要把函数放在de keyboardFunc回调中,但我也想显示矩形,所以我还需要把它放在显示回调中,因为你可以在键盘回调函数中绘制任何东西。
我可以创建两个函数:一个用于显示矩形,另一个用于键,但我想要两个函数。我怎么能这样做?
答案 0 :(得分:1)
你不能,就像你说的那样。您必须使用一个函数来处理键盘事件,并使用一个函数来执行绘图。
您可以做的是将全局变量中的所有有效按键保存,并在显示功能中简单地绘制它们。
如果您想尽快告诉GLUT重新显示,可以在键盘回调函数中调用glutPostRedisplay
。
答案 1 :(得分:1)
GLFW与你想要的一切几乎和GLUT相同,但它并不像GLUT那样让一切变成噩梦。你可以控制你的显示功能!在GLFW中,您可以在按下某个键时定义自己的回调。然后该回调可以将char压缩到vector或char数组中,如果它的长度固定的话。然后,您将能够在显示循环中呈现文本。小心访问文本数组,您可能需要对其进行一些控制。