1

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

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();
    }
4

1 回答 1

1

安东 M. 科尔曼,谢谢。Glut库必须在使用前初始化

于 2014-11-14T15:35:14.907 回答