Я использую 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();
}
Вы никогда не инициализировали GLUT из того, что я могу сказать. Я понятия не имею, как это работает на C#, но в интерфейсе C для GLUT вы должны вызывать 'glutInit (...)' используя переменные 'argc' и' argv', которые вы получаете от вашего 'main (...) '. Я предполагаю, что в C# есть что-то подобное, или это может быть просто функция void. –
Благодарим вас за помощь, Andon M. Coleman –
Я только что сказал, что изучил openGL с GLUT, и эта книга пригодилась, и это спасло меня в моих многочисленных случаях. Я бы порекомендовал вам взглянуть на это. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 (8th Edition)