2012-05-12 130 views
0

我想让3个窗口代表围绕给定轴的旋转。 为此我做了一个类XYZAxis其中包含功能render。 接下来,从主函数中我调用生成GLUT窗口的函数creatWindow。 但是我不知道如何正确地传递函数渲染glutDisplayFunc :( 片段的主要glutDisplayFunc功能指针

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:Warning in(una med):以下是GLUT 3.0的新检查;更新 你的代码。 GLUT:致命错误(unamed):窗口1需要重新显示,但没有显示 回调。

如何正确地做它?任何想法?

回答