如何使用GLUT的回调操作数据

How to manipulate data using GLUT's callbacks

本文关键字:操作 操作数 数据 回调 何使用 GLUT      更新时间:2023-10-16

我想使用 glut 的鼠标回调(有条件地添加/擦除)来更改向量,但是我不能将任何额外的参数传递给回调函数,并且处理所有回调glutMainLoop()不需要参数。我能想象到的唯一规避方法是全局声明向量,但我听说这是不好的做法,所以这是我最后的手段。

使用全局变量时会出现这种情况吗?如果是这样,有没有"最好的方法"来做到这一点?如果没有,我应该如何处理这个问题。

经过进一步的研究,似乎我可以用指针来完成这一点。

全局声明一个指向向量的指针,并在回调中调用所需的方法,例如。 vector->push_back(x)

在 main 中,创建矢量对象并将其地址分配给全局指针,并根据需要附加回调。

您可能想阅读有关单例的更多信息。它们是处理大型代码库中的全局结构的好方法。

http://en.wikipedia.org/wiki/Singleton_pattern