2016-04-16 110 views
0

我已经创建了只有3个面的立方体,我想在里面画一个字母,但是如果我尝试用“glutDisplayFunc(drawA);”调用函数,它会显示一个空白的窗口,如果我要调用的函数drawA();,它不显示字母,但它显示的立方体...不能在立方体内绘制 - OpenGL

int main(int argc,char** argv) 
{ 
glutInit(&argc,argv); 
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH); 
glutInitWindowSize(640,480); 
glutInitWindowPosition(100,100); 

glutCreateWindow("Tema2"); 

glutDisplayFunc(Display); 
//glutDisplayFunc(drawA); 
//drawA(); 
glutReshapeFunc(Reshape); 
glutMouseFunc(Mouse); 
glutMotionFunc(Motion); 

Init(); 

glutMainLoop(); 

return 0; 
} 



void drawA() { 
    glBegin(GL_LINES); 

    glColor3f(0.0, 1.0, 0.0); //green 

    glVertex3f(-0.2, -0.5, 0.0); 
    glVertex3f(0.0, 0.4, -0.5); 
    glVertex3f(0.2, -0.5, 0.0); 
    glVertex3f(0.0, 0.4, -0.5); 

    glEnd(); 
} 

回答

2

glutDisplayFunc的目的不是为了实际绘制的东西,但是当需要重绘窗口内容时,告诉GLUT应该调用哪个函数。

如果你想绘制一些东西,你只要绘制它;理想情况下,您从注册为显示功能的功能中完成此功能,该功能将根据窗口显示请求进行调用。