GL-Extension Funktionen werden nicht gefunden



  • Ich hab das entsprechende Kompilerflag gesetzt, und zwar direkt hart im Header. Dadurch hat er zumindest die Definitionen gefunden...



  • KFlash schrieb:

    1.3.0 weil nur ein Laptop. Der unterstützt numnal net mehr. 👎

    Das hat damit nix zu tun. Das liegt an einem bescheidenen Treiber...



  • Ok ich bin jetzt zum manuellen aktivieren übergegangen.

    In der cpp wo ich Multitexturing benötige habe ich folgendes gemacht

    #include <GL/glext.h>
    #include <windows.h>
    
    PFNGLACTIVETEXTUREARBPROC glActiveTextureARB = NULL;
    PFNGLMULTITEXCOORD2IARBPROC glMultiTexCoord2iARB = NULL;
    
    Karusell::Karusell()
    {
      //initialisiere Multitexturing
      glMultiTexCoord2iARB = (PFNGLMULTITEXCOORD2iARBPROC) wglGetProcAddress("glMultiTexCoord2iARB"); 
      glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC) wglGetProcAddress("glActiveTextureARB")
    
      ...
    }
    
    void Karusell::draw()
    {
    
      ...
      glActiveTextureARB(GL_TEXTURE1);
    

    Beim aufruf von glActiveTextureARB bekomme ich einen Segmentation fault. Und zwar weil die Funktionen angeblich noch NULL sind. Wieso? An der Initialisierung kanns ja nun nicht mehr liegen oder?



  • Heieiei, tu doch mal meinen Link lesen (2. posting...)

    To access an extension function that is not part of the standard OpenGL library, call the wglGetProcAddress function. If the extension function exists in the current implementation, then wglGetProcAddress gives you a function pointer, which you can use to access the function. Otherwise, wglGetProcAddress returns NULL



  • Du solltest schon Fehler abfangen, nicht einfach sinnlos im Speicher rumgreifen/schreiben/lesen... 🤡



  • Es muss doch aber vorhanden sein, weil meine GL-Implementation 1.3 ist. Da sind die Multitexturingfunktionen im Kern enthalten.



  • Hatte noch keinen GL-Kontext. Habe die Funktionen zu früh gebunden, da war noch der MS-SW-Renderer am start. Jetzt gehts. Danke.



  • KFlash schrieb:

    Es muss doch aber vorhanden sein, weil meine GL-Implementation 1.3 ist. Da sind die Multitexturingfunktionen im Kern enthalten.

    Ob eine Extension vorhanden ist oder nicht haengt nicht von der ogl-Version ab, sondern einzig von Deinem GraKa-Treiber. Du kannst auch OpenGL 2.0 haben, und doch nur sehr wenige unterstuetzte Extensions...

    Darum sinds ja Extensions...



  • durito schrieb:

    KFlash schrieb:

    Es muss doch aber vorhanden sein, weil meine GL-Implementation 1.3 ist. Da sind die Multitexturingfunktionen im Kern enthalten.

    Ob eine Extension vorhanden ist oder nicht haengt nicht von der ogl-Version ab, sondern einzig von Deinem GraKa-Treiber. Du kannst auch OpenGL 2.0 haben, und doch nur sehr wenige unterstuetzte Extensions...

    Darum sinds ja Extensions...

    Aber die Versionen spezifizieren ja eben ein paar feste "Extensions", sonst wär' das ja Quatsch, dann wär' OpenGL nie über 1.0 heraus... 🙄 🙂



  • Ja schon klar. Aber wenns die Extensions nicht gäb, dann gäbs heute OpenGL 2718.0 😉


Anmelden zum Antworten