Das OFFIZIELLE PROFAN SUPPORT FORUM
Einsteigerfragen
PROFAN-Programmierung
Helfer & Tools
Anregungen & Vorschläge
PROFAN-NEWS
Die Regeln!
2 - PROFAN-Programmierung

 Neues Thema  |  Zur Übersicht  |  Suchen  |  Einloggen   Vorherige Nachricht  |  Nächste Nachricht 
 Re: OpenGL Version
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   02.09.21 09:54

Ich habe deinen Code erweitert (~GL_EXTENSIONS).
Damit kannst du die Fähigkeiten deiner Graka auflisten.

 ls
  oGL("Init", %hwnd, 0, 0, 0, 1)
  print String$(oGL("glGetString", ~GL_VERSION),0)
  print String$(oGL("glGetString",~GL_RENDERER),0)
  print String$(oGL("glGetString",~GL_VENDOR),0)
  print String$(oGL("glGetString", $8B8C),0)'~GL_SHADING_LANGUAGE_VERSION)
  Move("StrToList", String$(oGL("glGetString", ~GL_EXTENSIONS),0), " ")
  Listbox$("EXTENSIONS", 4)
  
  waitinput
  oGL("Done")
  end
 


Die Funktions-Adressen mußt du dann im aktuellen Opengl - Kontext
ermitteln. sieh :
 23.070 Wie kann ich Extensions unter MS Windows nutzen ?
 
 Einige Extensions sind bereits durch die OpenGL32.lib definiert. Zusätzlich kann die Treiberbibliothek der Grafikkarte weitere Extensions definieren. Diese lassen sich allerdings erst über die während der Laufzeit ermittelten Adressen aufrufen. Ein Beispiel für die ARB_multitexture kann so aussehen:
 
     /* Header der Extension muss mit include eingefuegt werden (Hardware-speziell oder GL/glExt.h) */
     #include "GL/glExt.h"
 
     /* Zeiger auf Funktionsadressen */
     PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
     PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB;
 
     /* Adressen ermitteln */
     glActiveTextureARB   = (PFNGLACTIVETEXTUREARBPROC)   wglGetProcAddress("glActiveTextureARB");
     glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC) wglGetProcAddress("glMultiTexCoord2fARB");
 Nachdem die Funktionszeiger mit den Adressen initialisiert sind, können sie ganz normal genutzt werden.
 
     /* Texture 0 Min/Mag Filter setzen */
     (*glActiveTextureARB) (GL_TEXTURE0_ARB);
     glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
     glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
     ...
     /* Multi-Texturiertes Viereck zeichnen */
     glBegin (GL_QUADS);
       (*glMultiTexCoord2fARB) (GL_TEXTURE0_ARB, 0.f, 0.f);
       (*glMultiTexCoord2fARB) (GL_TEXTURE1_ARB, 0.f, 0.f);
       glVertex3f (32.f,32.f, 0.f);
       ...
     glEnd();
 Weitere Informationen über wglGetProcAddress() enthält die MSDN-Dokumentation.
 


H.Brill
XProfan X4 + FreeProfan

Nachricht bearbeitet (02.09.21 11:31)

 Beitrag beantworten  |  Foren-Liste  |  Alle Antworten   Neuerer Beitrag  |  Älteres Thema 

 Beiträge Autor  Datum
 OpenGL Version  Neu
Sven Bader 02.09.21 00:46 
 Re: OpenGL Version  Neu
Heinz Brill 02.09.21 07:58 
 Re: OpenGL Version  Neu
Heinz Brill 02.09.21 09:54 
 Re: OpenGL Version  Neu
Sven Bader 03.09.21 10:21 
 Re: OpenGL Version  Neu
Heinz Brill 03.09.21 11:00 
 Re: OpenGL Version  Neu
Sven Bader 03.09.21 13:02 
 Re: OpenGL Version  Neu
Heinz Brill 03.09.21 15:50 
 Re: OpenGL Version  Neu
Sven Bader 20.09.21 13:08 


 Foren-Liste  |  Zur Registrierung 
 Benutzerlogin
 Benutzername:
 Passwort:
 Login-Daten speichern:
   
 Passwort vergessen?
E-Mail-Adresse oder Username unten eingeben. Dann wird Dir per e-Mail ein neues Passwort zugeschickt.

phorum.org