无法使用c#Tao.OpengL绘制直线和点

时间:2014-11-25 10:44:54

标签: c# opengl

使用Tao.Freeglut和Tao.OpenGl。 我试着通过输入这段代码来创建一些点。

但是当我运行它时,它只显示一个白色的窗口,但没有任何点。 有人知道如何解决这个问题。(当我尝试使用GL_LINES 2分时,同样的问题)

using Tao.Freeglut;
using Tao.OpenGl;

 public static void init()
        Gl.glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
        Gl.glColor3f(0.0f, 0.0f, 1.0f);
        Gl.glPointSize(4);
        Gl.glMatrixMode(Gl.GL_PROJECTION);
        Gl.glLoadIdentity();
        Glu.gluOrtho2D(0.0, 400, 0.0, 300.0);

    }

    public static void myDisplay()
    {

        Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
        Gl.glBegin(Gl.GL_POINT);
        {
            Gl.glVertex2i(50, 50);
            Gl.glVertex2i(100, 100);
            Gl.glVertex2i(100, 150);
            Gl.glVertex2i(200, 200);
            Gl.glVertex2i(200, 250);
            Gl.glEnd();
        }
        Gl.glFlush();
    }

    static void Main()
    {
        Glut.glutInit();
        Glut.glutInitDisplayMode(Glut.GLUT_SINGLE | Glut.GLUT_RGB);
        Glut.glutInitWindowPosition(50, 100);
        Glut.glutInitWindowSize(400, 300);
        Glut.glutCreateWindow("Test 2");

        init();
        Glut.glutDisplayFunc(myDisplay);
        Glut.glutMainLoop();
    }

1 个答案:

答案 0 :(得分:3)

Gl.glBegin(Gl.GL_POINT);

将导致GL_INVALID_ENUM错误,因为GL_POINT不是glBegin的有效参数。查看the documentation绘制模式有效的一个。您还应该至少在帧结束时检查OpenGL错误。