我有一个类,它具有初始化 opengl 并在单独的线程中运行它的功能。
我的问题是:openGL 回调如 glutDisplayFunc、glutMotionFunc 等接受 void (*f) void,我不能传递类成员函数。
绕路。 1) 我可以将成员函数声明为静态的,但在这种情况下,我需要将所有使用的成员变量声明为静态的,并最终将整个类声明为静态的。
2) 我可以使用一些独立的函数并将我的对象声明为全局对象,但这太糟糕了。
我想知道是否有一些解决方法,所以我不需要让我的 opengl 类静态化?? (使用 C++)
最佳答案
您需要创建一个“thunk”或“trampoline”:C API function callbacks into C++ member function code
关于c++ - 如何将非静态成员函数传递给 glutDisplayFunc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2670501/