OpenGL不会更新drawview

时间:2012-04-22 16:24:53

标签: c++ opengl

我有以下drawScene函数绘制球体。 X,Y的坐标一直在更新。据我所知,从printf看,值肯定会发生变化。

问题在于球体不会根据坐标改变位置,但总是在同一个地方绘制......

void drawScene(void){



        //Clear information from last draw
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glMatrixMode(GL_MODELVIEW); //Switch to the drawing perspective
glLoadIdentity(); //Reset the drawing perspective

glColor3d(1,0,0);

//glPushMatrix();///

glTranslated(X,Y,-7);//xyz//(X%5)-2.5,Y%5//(((X%6)-3),0,-7)
printf("\n\n\nCOORDS(X)%d  (Y):%d\n\n\n\n",X,Y);
glutSolidSphere(0.3, 25, 20);//3,20,20

//glPopMatrix();///

glutSwapBuffers(); //Send the 3D scene to the screen
        }

PS。我不确定这是否正确,但每当我想要更新openGL窗口时,我都会调用drawScene(),否则它只被绘制一次。

1 个答案:

答案 0 :(得分:0)

更新X和Y时调用glutPostRedisplay()或像这样启用idleFunc:

void idle()
{
   glutPostRedisplay();
}

并在主要内容中添加:

glutIdleFunc(idle);