[OpenGL:] wglGetProcAddress + Linux

Unicate

Erfahrenes Mitglied
Hallo alle zusammen!

Ich möchte eine 3D-Textur erstellen und brauche folgende Funktion "wglGetProcAddress(const char*)"
Das Problem ist, das ich nicht weiß was ich einbinden muss, damit sie mir zur Verfügung steht.

Eclipse gibt mir "»wglGetProcAddress« wurde in diesem Gültigkeitsbereich nicht definiert" aus.

Eingebundene Headers:
Code:
#include <GL/glut.h>
#include <GL/glext.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
Ausgeführt werden soll das:
Code:
glTexImage3D = (PFNGLTEXIMAGE3DPROC) wglGetProcAddress("glTexImage3D");
Deklariert ist es auch vorher mit:
Code:
PFNGLTEXIMAGE3DPROC glTexImage3D;


Wo liegt der Fehler ich versteh's nicht.

Gibt es alternativen (Hab irgendwo gesehen das es mit der SDL geht, sah aber noch schlimmer aus)?
Geht es überhaupt im Linux(Kann mir zwar nicht vorstellen das keine 3D-Texturen im Linux möglich sind, aber man muss ja mal fragen)?
 
Hallo,

die wgl*-Funktionen sind Windows-spezifische Erweiterungen, deshalb wirst du damit unter Linux kein Glück haben. glTexImage3D gehört zum Core von OpenGL (seit 1.2), also sollte die Funktion im OpenGL-Header deklariert sein. Wenn dem nicht der Fall ist, hast du möglicherweise veraltete OpenGL-Header.

Grüße,
Matthias
 
Gut das wgl zu Windows gehört hätt ich mir auch denken können, aber:

Wenn ich Versuche mein Projekt zu bauen passiert das:

Code:
make all 
Building file: ../3dtex.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"3dtex.d" -MT"3dtex.d" -o"3dtex.o" "../3dtex.cpp"
../3dtex.cpp: In function »unsigned char* build_texture()«:
../3dtex.cpp:229: Fehler: »glTexImage3D« wurde in diesem Gültigkeitsbereich nicht definiert
make: *** [3dtex.o] Fehler 1

glut ist als Bibliothek angegeben, alles andere funktioniert ja auch.... :(

Das Beispiel was ich von hier habe lässt sich kompilieren, allerdings wird der gcc anstatt dem g++ verwendet.

Hier die Ausgabe:
Code:
**** Build of configuration Debug for project 3dtexture-demo ****

make all 
Building file: ../3dtex.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"3dtex.d" -MT"3dtex.d" -o"3dtex.o" "../3dtex.c"
../3dtex.c: In Funktion »build_texture«:
../3dtex.c:255: Warnung: Implizite Deklaration der Funktion »glTexImage3D«
Finished building: ../3dtex.c
 
Building target: 3dtexture-demo
Invoking: GCC C Linker
gcc  -o"3dtexture-demo"  ./3dtex.o   -lglut
Finished building target: 3dtexture-demo

Es werden auch 100%ig die selben headerdateien inkludiert
 
Zuletzt bearbeitet:
Zurück