C++ – How to pass non static member function into glutDisplayFunc

copenglstatic

I have a class which has functionality to initialise opengl and run it in separate thread.

My problem is: openGL callbacks such as glutDisplayFunc, glutMotionFunc etc accepts
void (*f) void, and I cannot pass class member function.

ways around.
1) I can declare member function as static, but in this case I need to declare all used member variables as static, and end up declaring a whole class as a static.

2) I can use some stand alone function and declare my object as global, but its too bad.

I wonder if there are some ways around so I dont need to make my opengl class static ?? (using c++)

Best Answer

You'll need to create a "thunk" or "trampoline": C API function callbacks into C++ member function code