我已经使用基本的draw()方法创建了一个虚拟类,该方法不会执行任何操作。这样做的目的是,可以在OpenGL中绘制自身的其他类,形状和其他内容将继承此虚拟类,从而使我可以创建指向许多不同类的指针数组。其背后的想法是,我希望能够将指向该数组的指针传递到我的glutDisplayFunc回调中。 (这恰好名为drawScene()。不幸的是,我似乎无法将任何内容传递给它,因为glutDisplayFunc设计为采用不带参数且不返回任何值的方法。
有什么方法可以将参数传递给回调函数,然后有什么方法可以将指针传递给我的drawScene函数吗?
(TLDR?请参见下文。)
本质上,我希望能够做到这一点:
class a{ ... };
void drawScene( a** a_array_pointer){ ... }
glutDisplayFunc(drawScene); // <-- How do I pass an argument into this?
最佳答案
否。glut实际上是一个C库,并且glutDisplayFunc
需要一个函数指针作为其参数。在该回调中使用变量的唯一方法是使它们成为类的全局或静态变量。