GLFW öffnet OpenGL 3.2 Kontext, aber Freeglut kann nicht - warum?

8

Ich arbeite an einem Mac, ich habe FreeGlut kompiliert und installiert, aber ich kann nicht den OpenGL 3.2 Kontext damit bekommen. Allerdings kann ich es ohne Probleme während der Verwendung von GLFW bekommen. In GLFW funktioniert dieser Code einwandfrei:

%Vor%

Aber mit FreeGlut schlägt dieser Code fehl (in glutCreateWindow ):

%Vor%

Der Fehler, mit dem es fehlschlägt, ist:

%Vor%

Ich laufe auf MacOS X 10.8 Mountain Lion, mit Intel HD4000 Grafikkarten, habe XQuartz als meinen X11 Server installiert und FreeGlut 2.8 aus Quellen kompiliert und installiert.

Weiß jemand, was das Problem sein könnte?

    
gambiting 26.02.2013, 15:50
quelle

3 Antworten

1

In den Kapiteln 10.8 und 10.7 ist GL 3.2 verfügbar, wenn Sie dies beim Einrichten des GL-Kontextes explizit fordern. Apple nennt dies das "Core Profile", um sich vom "Legacy Profile" zu unterscheiden, welches GL 2.1 ist.

Ich bin auf dieses Problem mit Wine unter OSX gestoßen, es unterstützt OpenGL 3.2 nicht. Ich verstehe, dass der X11-Server (entweder Apple X11 oder XQuartz) derzeit nicht die Unterstützung von 3.2 implementiert, noch gibt es einen Schalter, um irgendwo zu drehen, um es zu aktivieren. Dies könnte aus Kompatibilitätsgründen geschehen, da das Profil 3.2 einige bestehende GL-Anwendungen

In diesem Beitrag wird vorgeschlagen, GLFW zu verwenden (oder vielleicht Apples GLUT.framework, wenn es noch so etwas gibt)

Diese Seite erklärt den GL-Stack auf OSX und bestätigt dies das 2.1 Problem mit GLX.

    
wally 26.02.2013 19:11
quelle
0

Freeglut ist eine erweiterte Implementierung des SGI GLUT Toolkits und implementiert (mit einigen Ausnahmen um veraltete Hardware) die gleichen Funktionen.

Leider enthält dies eine Reihe von Funktionen, die in einer streng CORE / FORWARD COMPATIBLE-Implementierung brechen würden.

Wenn Sie einen Kontext ohne Angabe einer Version oder eines Profils anfordern, erhalten Sie normalerweise das Beste, was die Kombination aus Treiber und GL-Toolkit bieten kann. Dies ist normalerweise ein Kompatibilitätsprofil und nicht ein Kernprofil.

Beachten Sie, dass Sie bei der Verwendung eines Kompatibilitätsprofils nur das vermeintliche Überprüfen veralteter Funktionen verlieren. Alle neuen Kernfunktionen sollten ohne Probleme funktionieren.

Dieses Problem mit Freeglut ist nicht auf Apple beschränkt, es manifestiert sich auch unter Linux mit einigen Gallium-Treibern. Es ist nicht klar, dass eine kurzfristige Absicht besteht, dies zu beheben. Wenn Sie also CORE / FORWARD COMPATIBLE verwenden müssen, sollten Sie wahrscheinlich zu GLFW oder SDL wechseln.

    
Roger Barrett 23.02.2014 23:16
quelle
0

Sie müssen die Flagge einfügen. normalerweise unter der Version. Es sollte ungefähr so ​​aussehen:

%Vor%     
jonny 14.07.2014 15:01
quelle

Tags und Links