openGLUTのコールバック関数である glutDisplayFunc(void (*callback))の引数にクラスのメンバ関数を指定したいのですが、どういう方法を取ればいいでしょうか?
class Room{
public:
Room(){
init_OpenGL();
}
void display(){
/* 内容省略 */
}
void init_OpenGL(){
glutDisplayFunc(display);//ここでコールバック関数を登録したい
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glClearColor(1.0, 1.0, 1.0, 1.0);
glEnable(GL_DEPTH_TEST);
}
};
error C3867: 'Room::display': 関数呼び出しには引数リストがありません。メンバーへのポインターを作成するために '&Room::display' を使用してください
このようなエラーが出て来ました。
また&Room::displayと書きなおしてみても、
error C2664: 'glutDisplayFunc' : 1 番目の引数を 'void (__thiscall Room::* )(void)' から 'void (__cdecl *)(void)' に変換できません。(新しい機能 ; ヘルプを参照)
と出て来てコンパイルできませんでした。
環境は、OS:windows 7(64bit) 開発環境:Visual Studio2012 for Desktop(C/C++) を使って開発しています。