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

kir*_*rbo 6 c++ opengl static

我有一个类,它具有初始化opengl的功能并在单独的线程中运行它.

我的问题是:openGL回调如glutDisplayFunc,glutMotionFunc等接受void(*f)void,我无法传递类成员函数.

周围的方式.1)I可以声明成员函数作为静态的,但在这种情况下,我需要所有使用的成员变量声明为静态的,并最终宣告一整类为静态.

2)我可以使用一些独立的函数并将我的对象声明为全局,但它太糟糕了.

我想知道是否有一些方法,所以我不需要让我的opengl类静态?(使用c ++)

Fre*_*son 4

您需要创建一个“thunk”或“trampoline”:C API 函数回调到 C++ 成员函数代码