wglCreateContextAttribsARB oder wglCreateContext
-
Ich verwende jetzt wxWidgets und dort wird noch wglCreateContext verwendet.
Da ich OpenGL 3 programmiere und keine veralteten Funktionen verwende, wäre wglCreateContextAttribsARB passender.
WxWidgets könnte ich zwar umschreiben, doch dafür muss ich Zeit investieren, mich mit dem Zeug für Nicht-Windows-Betriebssysteme beschäftigen und wenn wxWidgets weiterentwickelt wird, muss ich das Ganze womöglich immer wieder anpassen. Wenn es nicht wirklich notwendig ist, möchte ich mir das ersparen.Deshalb die Frage, welche Nachteile habe ich, wenn ich wglCreateContext statt wglCreateContextAttribsARB verwende und welche Nachteile können in Zukunft entstehen?
-
Senfti schrieb:
Deshalb die Frage, welche Nachteile habe ich, wenn ich wglCreateContext statt wglCreateContextAttribsARB verwende und welche Nachteile können in Zukunft entstehen?
Weniger Kontrolle, du kannst keine minimale OpenGL Version anfordern und auch keinen Core Profile Context erzeugen, Ressourcen Sharing is nicht bzw. nur über eigentlich undokumentiertes Verhalten möglich...
-
Minimale OpenGL Version: Kann ich auch selber mithilfe von glGetString(GL_VERSION) machen.
Ressourcen Sharing: Ist momentan noch kein Thema für mich.Core Profile Context: Das ist der interessante Punkt für mich. Was bringt mir das?
-
Senfti schrieb:
Minimale OpenGL Version: Kann ich auch selber mithilfe von glGetString(GL_VERSION) machen.
Nope, damit kannst du nur abfragen was für eine Version du bekommen hast, du hast keine Möglichkeit, irgendwo zu bestimmen, was genau du haben möchtest.
Senfti schrieb:
Core Profile Context: Das ist der interessante Punkt für mich. Was bringt mir das?
http://www.opengl.org/wiki/Core_And_Compatibility_in_Contexts
wglCreateContext() liefert immer ein Compatibility Profile.
-
Mit wglCreateContext() bekomme ich also einen Kontext mit der höchsten untersützten OpenGL-Version und dem Compatibility Profile, ist das richtig?
Warum sollte ich eine niedrigere OpenGL-Version wollen?
Was ist am Compatibility Profile schlechter als am Core Profile, außer dass es mich nicht davon abhält, veraltete Funktionen zu verwenden?