PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit GLee


Asmodeus
2006-11-20, 08:36:49
Bisher habe ich mich selbst um die Verwaltung und Initialisierung der von mir benötigten OpenGL Extensions gekümmert. Nun wollte ich statt dessen auf GLee umsteigen, da mir die Benutzung sehr simpel vorkam. Nur leider funktionert die Sache bei mir nicht. Ich habe den Sachverhalt jetzt mal auf ein total simples Beispiel beschränkt, um alle Nebeneffekte ausschliessen zu können. Ich habe ein simples Konsolenprogramm, was an sich gar nichts tut, ich will ja nur sehen, ob ich GLee benutzen kann. Also habe ich die GLee.lib eingebunden, oder wahlweise stattdessen auch mal die GLee.c und dann eben folgendes:


#include <gl\GLee.h>

int _tmain(int argc, _TCHAR* argv[])
{

if (GLEE_ARB_multitexture)
{
glActiveTextureARB(GL_TEXTURE0);
}

}


Und ich erhalte immer die Fehlermeldung, dass der Bezeichner "glActiveTextureARB" nicht gefunden werden kann. Nur ich verstehe nicht wieso, denn das Define zu GLEE_ARB_multitexture und zu GL_TEXTURE0 findet er ja auch innerhalb der GLee.h. Nur das Define für glActiveTextureARB scheint er einfach nicht zu finden. Ehrlich gesagt bin ich ratlos und weiß nicht, was ich falsch mache.

Gruss, Carsten.

Coda
2006-11-20, 12:24:15
Ich werfs einfach mal in die Runde: Wie wärs stattdessen mit glew (http://glew.sourceforge.net/)...

Asmodeus
2006-11-20, 13:13:34
Ich werfs einfach mal in die Runde: Wie wärs stattdessen mit glew (http://glew.sourceforge.net/)...

Naja, GLee scheint schneller aktualisiert zu werden, wenn es um neue Extensions geht. Ich habe den Fehler jetzt auch gefunden. Ich hatte vor Urzeiten mal nen gl-Header von Nvidia benutzt. Und habe den seither unbewusst immer weiter verwendet. Und GLee lässt sich aber nur korrekt einbinden, wenn man den Standard-gl-Header verwendet, der bei Visual Studio dabei ist. Jetzt funktioniert es problemlos.

Gruss, Carsten

muhkuh_rs
2006-11-21, 10:29:46
Bisher habe ich mich selbst um die Verwaltung und Initialisierung der von mir benötigten OpenGL Extensions gekümmert. Nun wollte ich statt dessen auf GLee umsteigen, da mir die Benutzung sehr simpel vorkam. Nur leider funktionert die Sache bei mir nicht. Ich habe den Sachverhalt jetzt mal auf ein total simples Beispiel beschränkt, um alle Nebeneffekte ausschliessen zu können. Ich habe ein simples Konsolenprogramm, was an sich gar nichts tut, ich will ja nur sehen, ob ich GLee benutzen kann. Also habe ich die GLee.lib eingebunden, oder wahlweise stattdessen auch mal die GLee.c und dann eben folgendes:


#include <gl\GLee.h>

int _tmain(int argc, _TCHAR* argv[])
{

if (GLEE_ARB_multitexture)
{
glActiveTextureARB(GL_TEXTURE0);
}

}


Und ich erhalte immer die Fehlermeldung, dass der Bezeichner "glActiveTextureARB" nicht gefunden werden kann. Nur ich verstehe nicht wieso, denn das Define zu GLEE_ARB_multitexture und zu GL_TEXTURE0 findet er ja auch innerhalb der GLee.h. Nur das Define für glActiveTextureARB scheint er einfach nicht zu finden. Ehrlich gesagt bin ich ratlos und weiß nicht, was ich falsch mache.

Gruss, Carsten.

Vielleicht gibt es in deinem Setup schon ein "#define GL_ARB_multitexture" bevor glee.h inkludiert wird? Ansonsten läuft bei mir Dein Beispiel genau so.

Chris Lux
2006-11-21, 11:52:33
wenn das wirklich dein testprogramm ist, ist klar dass es nicht gehen kann. die extensions kann man erst nutzen wenn ein opengl kontext erstellt und gebunden ist. vorher kann auch glee die einsprungpunkte von der wgl nicht abholen.

edit: ich glaub ich habe dich eben falsch verstanden. klar sollte die funktion zur compilezeit bekannt sein. sorry...

Asmodeus
2006-11-21, 13:45:05
Wie oben schon kurz geschrieben, konnte ich das Problem lösen. Es lag an einer falschen gl.h Datei, die ich unbewusst verwendet habe. Es handelte sich dabei um eine gl.h Datei, die ich vor Jahren mal aus irgendwelchen Nvidia Sourcen übernommen hatte. Nun verwende ich die gl.h Standard-Datei, die bei Visual Studio dabei ist, und es funktioniert problemlos, der Compiler erkennt jetzt also die Funktion.

Gruss, Carsten.