c++ - 如何将非静态成员函数传递给 glutDisplayFunc

标签 c++ opengl static

我有一个类,它具有初始化 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/

相关文章:

c++ - 如何在不使用拷贝的情况下更改 QJson 层次结构中的 QJsonObject 值?

c++ - 我们能否创建一个类似 scanf 的函数,在填充所有参数时返回 true,否则返回 false,而无需遍历所有变量?

c++ - 如何创建一个添加数字的模板函数

.net - OpenGL 是否可以使用 .NET 形式?

c - 跟踪静态内联函数

c++ - 使用单 channel 纹理(OpenGL 2)?

c++ - 如何使用点图元将纹理映射到由参数方程渲染的球体

opengl - 在OpenGL中共享顶点位置但不共享法线

java - Java中的误解

c++ - Hook 静态链接的 ELF 二进制文件