Ermitteln der unterstützten GLSL-Version

8

Wie sollte man am besten die Version von GLSL finden, die von einer OpenGL-Implementierung unterstützt wird, und zwar auf eine Weise, die zuverlässig programmgesteuert verwendet werden kann?

Ist der beste Weg, die GL_SHADING_LANGUAGE_VERSION -Zeichenfolge zu erhalten und zu parsen? Kann man darauf vertrauen, dass es in einem klar definierten Format zurückgegeben wird? Mein Intel-Treiber gibt 1.20 zurück, was einfach genug ist, um zu parsen, aber meine nVidia-Karte gibt 4.20 NVIDIA via Cg compiler zurück. Kann man darauf vertrauen, dass es mit dem (\d+)\.(\d+)( .*)? regex übereinstimmt? Diese Antwort scheint etwas anderes zu bedeuten , Rückgabe von OpenGL ES GLSL ES 1.0 .

Stimmt irgendetwas davon und / oder gibt es einen anderen Weg? Speziell möchte ich überprüfen, dass mindestens GLSL 1.20 unterstützt wird.

    
Dolda2000 26.09.2013, 07:06
quelle

2 Antworten

13

Es gibt eine spezifische Zuordnung zwischen der OpenGL-Version und der unterstützten GLSL-Version:

%Vor%

Es gibt eine gut definierte API für die Abfrage der OpenGL-Version. Verwenden Sie die obige Tabelle für die Zuordnung zu GLSL-Versionen (nach OpenGL-3.3 ist es sehr logisch).

Darüber hinaus definiert die Spezifikation das Format der GL_VERSION und GL_SHADING_LANGUAGE_VERSION zu

  

beginnt mit einer Versionsnummer. Die Versionsnummer verwendet eines dieser Formulare:

%Vor%
    
datenwolf 26.09.2013, 07:53
quelle
1

Wenn Sie erwarten, es aus dem Code zu bekommen, versuchen Sie es mit glGetString mit GL_SHADING_LANGUAGE_VERSION

Ссылка

    
Oragon Efreet 26.09.2013 07:53
quelle

Tags und Links