C ++ OpenGl / Glut无法绘制

时间:2012-10-27 15:15:21

标签: c++ opengl drawing glut

我想在窗口中画一个三角形。我之前的代码中已经绘制了形状,并查找了常见问题,例如无法刷新或未清除颜色缓冲区。

无论我似乎尝试过什么,即使在我将代码简化为基本看起来与我以前的(工作!)代码完全相同之后,我也无法在屏幕上绘制任何内容。我只有一个主要和渲染:

// 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)来解决的,它实际上与我的旧代码相同,后者很好。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您正在绘制比您的窗口更大的线条。您需要设置矩阵,以便看到更大的区域,绘制更小的多边形,或通过绘制三角形而不是线条来绘制填充多边形。