Registriert: Di Dez 16, 2014 10:18 Beiträge: 32
Programmiersprache: C++
Ich hab mal wieder eine Frage zu Qt 5.5.0 und Opengl/ANGLE.
Wenn ich das aus der Qt 5.5.0 Dokumentation richtig verstanden hab, dann ist standardmäßig OpenGL dynamisch in Qt implementiert. Also wenn ein System die programmierten Befehle nicht verarbeiten kann, werden diese mithilfe von ANGLE in Direct3D transformiert.
http://doc.qt.io/qt-5/windows-requirements.html#dynamically-loading-graphics-drivers hat geschrieben:
When a given environment fails to provide a proper OpenGL 2.0 implementation, it will fall back automatically to ANGLE. This fallback will be completely transparent to the application, and will allow Qt Quick or other OpenGL code to function by translating to Direct3D. Such a fallback could, for example, take place on a Windows 7 PC with no additional graphics drivers installed. On other machines, where there is sufficient OpenGL support, the normal desktop OpenGL drivers will be used.
In meiner Anwendung habe ich folgenden Vertex bzw. Fragment-Shader:
Code:
#define GLSL(src) "#version 150 core\n" #src
staticconst char *vertexShaderSource = GLSL(
invec3 vertex;
invec4 color;
uniformmat4 matrix;
outvec4 colorOut;
void main(){
gl_Position= matrix *vec4(vertex,1.0);
colorOut = color;
}
);
staticconst char *fragmentShaderSource = GLSL(
invec4 colorOut;
outvec4 fragColor;
void main(){
fragColor = colorOut;
}
);
Auf meinem System (OpenGL 4.1) funktioniert alles einwandfrei!
Wenn ich das Programm auf einem anderen System (OpenGL 2.1) verwenden möchte, wird beim kompilieren der Shader ein Fehler geworfen, dass die GLSL Version 1.50 nicht unterstützt wird (was auch logisch ist).
Ich dachte bei der dynamischen Implementierung, entscheidet das Programm zur Laufzeit, ob es OpenGL oder ANGLE verwendet? Habe ich hierbei 1. etwas vergessen oder 2. falsch verstanden oder 3. (am wahrscheinlichsten) was falsch programmiert?
Danke im Voraus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
dochdoch, der Code sieht gut aus (reichlich obfuscated mit dem netten Makro da).
Wenn ich die Doku aber richtig interpretiere, musst du OpenGLES anfordern, damit Angle in betracht gezogen wird. Machst du das?
viele Grüße, Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.