我使用 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();
}