Glut功能。使用过剩函数会导致程序丢失

时间:2014-11-14 14:53:09

标签: c# opengl frameworks tao-framework

我使用Tao Framework来学习openGL。我包含了所有需要的库,包括Tao.FreeGlut.dll。在使用点处的执行阶段程序中,过剩功能终止。为什么会这样?编译时不会发生错误,程序就会关闭。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
using Tao.DevIl;
using Tao.OpenGl;
using Tao.FreeGlut;

        private void Form1_Load(object sender, EventArgs e)
    {
        Gl.glMatrixMode(Gl.GL_PROJECTION);           
        Gl.glLoadIdentity();             

        Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200);

        Gl.glMatrixMode(Gl.GL_MODELVIEW);          
        Gl.glLoadIdentity();              


        Draw();
    }
    public void Draw() {
        Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
        Gl.glLoadIdentity();
        float[] color = new float[4] { 1, 0, 0, 1 };
        float[] shininess = new float[1] { 30 };
        Gl.glMaterialfv(Gl.GL_FRONT, Gl.GL_DIFFUSE, color); 
        Gl.glMaterialfv(Gl.GL_FRONT, Gl.GL_SPECULAR, color);
        Gl.glMaterialfv(Gl.GL_FRONT, Gl.GL_SHININESS, shininess);
        //----------------------------
        Gl.glPushMatrix();
        Gl.glTranslated(0, 0, -6);
        Gl.glRotated(45, 1, 1, 0);

        Glut.glutSolidTeapot(1);  // <- exit
        Gl.glPopMatrix();
        Gl.glFlush();
        AnT.Invalidate();
    }

1 个答案:

答案 0 :(得分:1)

Andon M. Coleman,谢谢。必须在使用

之前初始化Glut库