我想制作 3 个窗口来表示围绕给定轴的旋转。为此,我制作了一个XYZAxis
包含 function的类render
。接下来,我从主函数调用creatWindow
创建 GLUT 窗口的函数。但是我不知道如何正确地将函数渲染传递给glutDisplayFunc
:( main 的片段
void (XYZAxis::* pmf)(void);
pmf = &XYZAxis::render;
XYZAxis *xaxis=&XYZAxis(origin,5,10);
glutDisplayFunc( void(xaxis->*pmf)() ) ;
glutIdleFunc(void(xaxis->*pmf)());
和 XYZAxis 类中的一个函数
void render(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
this->orientation=this->orientation*(this->angle);
this->draw();
glutSwapBuffers();
}
然而,当程序到达glutMainLoop()
; 它抛出一个错误并关闭窗口
GLUT:警告(未命名):以下是 GLUT 3.0 的新检查;更新您的代码。GLUT:致命错误(未命名):窗口 1 需要重新显示,但没有显示回调。
如何正确地做到这一点?有什么想法吗?