Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 14, 2025 01:01

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Jun 23, 2006 12:42 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Tach,

ich kämpf mich momentan mit C++/SDL und OpenGL durch und bin bisher recht weit gekommen,
allerdings scheitere ich grade eine billige simple extension zur laufzeit zu laden.

Ich benutze um mir den Proc Pointer von einer funktion zu holen SDL_GL_GetProcAddress().

Hab mit ne billige Headerdatei+Cppdatei erstellt:

header datei:
Code:
  1.  
  2. #ifndef _GLEXT_PROCS_H
  3. #define _GLEXT_PROCS_H
  4.  
  5. #include <SDL/sdl_opengl.h>
  6.  
  7. typedef void (APIENTRY * GL_ActiveTextureARB_Func)(unsigned int);
  8. static GL_ActiveTextureARB_Func glActiveTextureARB_ptr = 0;
  9.  
  10. void InitGLExt();
  11. void KillGLExt();
  12.  
  13. #endif /* _GLEXT_PROCS_H */
  14.  


cpp datei:
Code:
  1.  
  2. #include "glext_procs.h"
  3.  
  4. #include <SDL/sdl.h>
  5. #include <SDL/sdl_opengl.h>
  6.  
  7. void InitGLExt()
  8. {
  9.     glActiveTextureARB_ptr=(GL_ActiveTextureARB_Func) SDL_GL_GetProcAddress("glActiveTextureARB");
  10. }
  11.  
  12. void KillGLExt()
  13. {
  14.     glActiveTextureARB_ptr = 0;
  15. }
  16.  


über die main() routine in main.cpp rufe ich direkt nach dem initialisieren die InitGLExt() auf.
Es scheint aber so, das da einfach überhaupt nichts passiert, glActiveTextureARB_ptr bleibt immer leer :(

Wenn ich nun

glActiveTextureARB_ptr=(GL_ActiveTextureARB_Func) SDL_GL_GetProcAddress("glActiveTextureARB");

in den initialisierungskram mit reinpacke in der main.cpp dann gehts einwandfrei lol ?

Was ist daran faul, ich versteh es total nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 23, 2006 14:29 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
Vergiss das selbst Einbinden und benutze GLEW das muss nur einmal initialisiert werden und alle Extensions sind da. zusätzlich sollte man dann nur noch überprüfen ob die extension wirklh da ist


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 23, 2006 21:05 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Es geht mir nicht darum das ich das ganze zum laufen kriege so schnell wie möglich sondern das ich versteh wie das funktioniert.
Ich will C++ lernen (bringt einfach bessere berufschancen) und da wärs halt echt nicht schlecht wenn mir jemand erklärt warum es nicht geht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 23, 2006 21:25 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 06, 2005 18:34
Beiträge: 362
Wohnort: Hamburg
Hi ...

ich kann soweit auch keinen Fehler entdecken...
Aber könnte es evtl sein, dass du die Funktion InitGLExt aufrufst bevor SDL initialisiert wurde?
Dann dürfte SDL_GL_GetProcAddress nämlich nicht funktionieren.

Ich lade alle Funktionen manuell, und der einzige Unterschied den ich noch sehe ist, dass du die Func-Pointer als static deklarierst.
ich machs mit nem extern im Header und deklarier sie dann in der cpp ...
ich wüsste aber nicht, warum das deswegen nicht funktionieren sollte

Hast du dir ansonsten auch schonmal angeguckt, was SDL_GetError() sagt ???

Gruß
Shai

_________________
Der Mensch hat neben dem Trieb der Fortpflanzung und dem zu essen und zu trinken zwei Leidenschaften: Krach zu machen und nicht zuzuhören. (Kurt Tucholsky)
Schwabbeldiwapp, hier kommt die Grütze. (Der Quästor)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 24, 2006 18:06 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Shaijan hat geschrieben:
Ich lade alle Funktionen manuell, und der einzige Unterschied den ich noch sehe ist, dass du die Func-Pointer als static deklarierst.
ich machs mit nem extern im Header und deklarier sie dann in der cpp ...


Verdammt, das wars ;)
Thx,

C++ ist schon komisch gegenüber Delphi :p


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.012s | 18 Queries | GZIP : On ]