Ich habe verschiedene Linux-Distributionen ausprobiert, bei keiner brachte ich OpenGL > 3.0 hin. Kann es sein, das es ein sehr grosser Aufwand ist, dem Intel 4000 OpenGL 4.0 zu entlocken ?
Unter Windows läuft es ohne Probleme mit OpenGL 4.0.
Auf meinem alten betagten Intel Atom mit NVidia ION-Grafik, läuft Linux mit 3.3.
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Dann hast du alles richtig gemacht, so wie ich das sehe:
mesa3d.org hat geschrieben:
OpenGL 3.3 is only available if requested at context creation because compatibility contexts are not supported.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Wen ich es richtig verstehe, kann ich OpenGL 3.3 auf meinem Intel vergessen ?
Nein, das hast du falsch verstanden. Aber du musst beim Erstellen des OpenGL-Kontextes explizit angeben, dass du - einen Core-Kontext haben willst (also einen Kontext ohne die deprecated Funktionen) - OpenGL 3.3 haben willst
Wie das geht, weißt du doch inzwischen auch, ansonsten nochmal Tutorial OpenGL3 Zeichenkontext lesen. Die Ausgabe von glxinfo, die du gepostet hast, zeigt ja, dass es bei dir funktioniert.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Wie das mit der Lazarus-Komponente geht, kann ich dir nicht beantworten.
mathias hat geschrieben:
Wieso läuft OpenGL 3.3 auf dem ION ohne spezielle Contexterstellung ?
Weil du da den proprietären nvidia-Treiber drauf hast, der scheinbar auch für OpenGL 3.3 einen Compatibilty-Context zulässt - wozu auch immer man das brauchen könnte. Ich finde, wenn man OpenGL >= 3.1 einsetzt, sollte man Nägel mit Köpfen machen und auf alles verzichten, was deprecated ist.
Die OpenSource-Treiber laufen alle (nicht nur Intel) über Mesa3D, wo man für OpenGL > 3.0 nur Core-Contexts bekommt. Wenn man keinen Core-Context anfordert, bekommt man dementsprechend auch nur OpenGL 3.0 im GL_VERSION-String.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Bei einem Core-Profil macht liest man Versionen i.d.R. so aus :
Code:
glGetIntegerv(GL_MAJOR_VERSION, &glVersionMajor);
glGetIntegerv(GL_MINOR_VERSION, &glVersionMinor);
Zum Erstellen geht man dann so vor : - Normalen Context erstellen - Versionen mit glGetIntegerv auslesen - Mit diesen Versionen dann einen Core-Kontext erstellen
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Sascha Willems hat geschrieben:
Zum Erstellen geht man dann so vor : - Normalen Context erstellen - Versionen mit glGetIntegerv auslesen - Mit diesen Versionen dann einen Core-Kontext erstellen
Warum macht "man" (Quelle? ) das eigentlich so? Ich mache es jedenfalls anders.
Wenn ich ein Programm schreibe, weiß ich doch, welche OpenGL-Version benötigt wird und fordere diese dann bei der Kontexterstellung an. Entweder es geht gut, oder man hat eben Pech gehabt. Aber warum sollte ich einen 4.5 Kontext erstellen, wenn ich nur 3.3 brauche? Ich sehe darin keinen Sinn. Vielmehr besteht doch sogar noch die Gefahr, dass eventuell einige Funktionen/Parameter/Vorgehensweisen in der neuen OpenGL-Version deprecated sind oder eine andere Bedeutung bekommen haben.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Mitglieder in diesem Forum: 0 Mitglieder und 20 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.