c – 将1个参数(指针)传递给glutDisplayFunc?

我用一个基本的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?

最佳答案

Is there any way of passing arguments to callback functions, and then any way of passing a pointer into my drawScene function?

No. glut是一个真正的C库,而glutDisplayFunc需要一个函数指针作为它的参数.在该回调中使用变量的唯一方法是使它们成为类的全局变量或静态变量.

点赞