1

我正在使用 GLUT 使用 openGL。我正在使用一些功能制作自己的头文件。其中之一是一个矩形,您可以在其中输入数字并保存它们。这里的问题是,如果我想知道按下了哪个键,我需要把函数放在 de keyboardFunc 回调中,但我也想显示矩形,所以我还需要把它放在显示回调中,因为你可以'不要在键盘回调函数中绘制任何东西。

我可以创建两个功能:一个用于显示矩形,一个用于按键,但我想要一个用于两者的功能。我怎样才能做到这一点?

4

2 回答 2

1

你不能,就像你自己说的那样。您必须使用一种函数来处理键盘事件,而另一种函数用于绘图。

您可以做的是将所有有效的按键保存在一个全局变量中,并在显示函数中简单地绘制它们。

如果你想告诉 GLUT 尽快重新显示,你可以glutPostRedisplay在键盘回调函数中调用。

于 2013-01-20T17:54:04.177 回答
1

对于你想要的一切,GLFW 几乎与 GLUT 相同,但它不会像 GLUT 那样让一切都成为一场噩梦。你可以控制你的显示功能!在 GLFW 中,您可以定义自己的按键被按下时的回调。如果它的长度固定,则该回调可以将按下的字符保存到向量或字符数组中。然后,您将能够在显示循环中呈现文本。访问文本数组时要小心,您可能需要对其进行一些控制。

于 2013-01-21T01:36:18.607 回答