我试图简单地在窗口中绘制一个三角形。我之前在之前的代码中绘制过形状,并查找了常见问题,例如无法刷新或未清除颜色缓冲区。
不管我似乎尝试了什么,我都无法在屏幕上绘制任何东西,即使我已经简化了我的代码以基本上看起来与我以前的(工作!)代码完全一样。我所拥有的只是一个主要的和一个渲染:
// Declarations //
void Render(void); //Call the drawing functions
int main(int argc, char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(20,20);
glutCreateWindow("Triangle Test");
//prepare for drawing
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
//now draw
glutDisplayFunc(Render);
glutMainLoop();
}
// ---- Render Function ----
void Render(void)
{
// Draw a triangle
glColor3f(1.0f, 1.0f, 1.0f);
glBegin(GL_LINE_STRIP);
glVertex2f(100.0f, 20.0f);
glVertex2f(0.0f, 20.0f);
glVertex2f(20.0f, 50.0f);
glEnd();
glFlush();
}
在运行时,它使用我设置的背景颜色(在本例中为黑色)绘制一个窗口,没有别的。我完全被难住了。堆栈上的所有其他问题似乎都可以通过我在这里的东西(即 glFlush)得到解决,并且它与我的旧代码几乎相同,它画得很好。有任何想法吗?