2012-04-22 42 views
0

我有以下drawScene函數繪製一個球體。 X,Y的座標一直在更新。據我可以看到從printf值肯定改變。OpenGL不更新繪製

的問題是,根據座標中球不改變位置,但總是在同一個地方繪製...

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

你能告訴我們調用點這個功能? – 2012-04-22 16:29:31

回答

0

要麼調用glutPostRedisplay()當您更新X和Y或啓用idleFunc這樣的:

void idle() 
{ 
    glutPostRedisplay(); 
} 

,並在添加這是你的主:

glutIdleFunc(idle);