2014-11-14 15 views
1

Я использую 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(); 
    } 
+3

Вы никогда не инициализировали GLUT из того, что я могу сказать. Я понятия не имею, как это работает на C#, но в интерфейсе C для GLUT вы должны вызывать 'glutInit (...)' используя переменные 'argc' и' argv', которые вы получаете от вашего 'main (...) '. Я предполагаю, что в C# есть что-то подобное, или это может быть просто функция void. –

+0

Благодарим вас за помощь, Andon M. Coleman –

+0

Я только что сказал, что изучил openGL с GLUT, и эта книга пригодилась, и это спасло меня в моих многочисленных случаях. Я бы порекомендовал вам взглянуть на это. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 (8th Edition)

ответ

1

Andon M. Coleman, thank. Это оно. Библиотека глушителя должна быть инициализирована перед использованием

+0

Пожалуйста, не добавляйте «спасибо» в качестве ответа. Вместо этого проголосуйте за ответы, которые вы найдете полезными. – gnat

+0

@gnat - Ответ, о котором идет речь, был размещен как комментарий, так что это было правильное действие. –