QOpenGLShader Class
Die Klasse QOpenGLShader ermöglicht die Kompilierung von OpenGL-Shadern. Mehr...
Kopfzeile: | #include <QOpenGLShader> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS OpenGL) target_link_libraries(mytarget PRIVATE Qt6::OpenGL) |
qmake: | QT += opengl |
Vererbungen: | QObject |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QOpenGLShader ist Teil von Rendering in 3D.
Öffentliche Typen
flags | ShaderType |
enum | ShaderTypeBit { Vertex, Fragment, Geometry, TessellationControl, TessellationEvaluation, Compute } |
Öffentliche Funktionen
QOpenGLShader(QOpenGLShader::ShaderType type, QObject *parent = nullptr) | |
virtual | ~QOpenGLShader() |
bool | compileSourceCode(const char *source) |
bool | compileSourceCode(const QByteArray &source) |
bool | compileSourceCode(const QString &source) |
bool | compileSourceFile(const QString &fileName) |
bool | isCompiled() const |
QString | log() const |
GLuint | shaderId() const |
QOpenGLShader::ShaderType | shaderType() const |
QByteArray | sourceCode() const |
Statische öffentliche Mitglieder
bool | hasOpenGLShaders(QOpenGLShader::ShaderType type, QOpenGLContext *context = nullptr) |
Detaillierte Beschreibung
Diese Klasse unterstützt Shader, die in der OpenGL Shading Language (GLSL) und in der OpenGL/ES Shading Language (GLSL/ES) geschrieben wurden.
QOpenGLShader und QOpenGLShaderProgram befreien den Programmierer von den Details des Kompilierens und Linkens von Vertex- und Fragment-Shadern.
Siehe auch QOpenGLShaderProgram.
Dokumentation der Mitgliedstypen
enum QOpenGLShader::ShaderTypeBit
flags QOpenGLShader::ShaderType
Diese Aufzählung spezifiziert den Typ von QOpenGLShader, der gerade erstellt wird.
Konstante | Wert | Beschreibung |
---|---|---|
QOpenGLShader::Vertex | 0x0001 | Vertex-Shader, geschrieben in der OpenGL Shading Language (GLSL). |
QOpenGLShader::Fragment | 0x0002 | Fragment-Shader, geschrieben in der OpenGL Shading Language (GLSL). |
QOpenGLShader::Geometry | 0x0004 | Geometrie-Shader, geschrieben in der OpenGL Shading Language (GLSL) (erfordert OpenGL >= 3.2 oder OpenGL ES >= 3.2). |
QOpenGLShader::TessellationControl | 0x0008 | Tessellierungssteuerungs-Shader, die in der OpenGL-Schattierungssprache (GLSL) geschrieben sind (erfordert OpenGL >= 4.0 oder OpenGL ES >= 3.2). |
QOpenGLShader::TessellationEvaluation | 0x0010 | Tessellierungsbewertungs-Shader, die in der OpenGL-Schattierungssprache (GLSL) geschrieben sind (erfordert OpenGL >= 4.0 oder OpenGL ES >= 3.2). |
QOpenGLShader::Compute | 0x0020 | Compute-Shader, die in der OpenGL-Schattierungssprache (GLSL) geschrieben sind (erfordert OpenGL >= 4.3 oder OpenGL ES >= 3.1). |
Der Typ ShaderType ist ein Typedef für QFlags<ShaderTypeBit>. Er speichert eine OR-Kombination von ShaderTypeBit-Werten.
Dokumentation der Mitgliedsfunktionen
[explicit]
QOpenGLShader::QOpenGLShader(QOpenGLShader::ShaderType type, QObject *parent = nullptr)
Konstruiert ein neues QOpenGLShader-Objekt mit dem angegebenen type und fügt es an parent an. Wenn Shader-Programme nicht unterstützt werden, gibt QOpenGLShaderProgram::hasOpenGLShaderPrograms() false zurück.
Auf diesen Konstruktor folgt normalerweise ein Aufruf von compileSourceCode() oder compileSourceFile().
Der Shader wird mit dem aktuellen QOpenGLContext verbunden.
Siehe auch compileSourceCode() und compileSourceFile().
[virtual noexcept]
QOpenGLShader::~QOpenGLShader()
Löscht diesen Shader. Wenn der Shader an ein QOpenGLShaderProgram Objekt angehängt wurde, bleibt der eigentliche Shader bestehen, bis QOpenGLShaderProgram zerstört wird.
bool QOpenGLShader::compileSourceCode(const char *source)
Setzt den source Code für diesen Shader und kompiliert ihn. Gibt true
zurück, wenn die Quelle erfolgreich kompiliert wurde, andernfalls false.
Siehe auch compileSourceFile().
bool QOpenGLShader::compileSourceCode(const QByteArray &source)
Dies ist eine überladene Funktion.
Setzt den source Code für diesen Shader und kompiliert ihn. Gibt true
zurück, wenn die Quelle erfolgreich kompiliert wurde, andernfalls false.
Siehe auch compileSourceFile().
bool QOpenGLShader::compileSourceCode(const QString &source)
Dies ist eine überladene Funktion.
Setzt den source Code für diesen Shader und kompiliert ihn. Gibt true
zurück, wenn die Quelle erfolgreich kompiliert wurde, andernfalls false.
Siehe auch compileSourceFile().
bool QOpenGLShader::compileSourceFile(const QString &fileName)
Setzt den Quellcode für diesen Shader auf den Inhalt von fileName und kompiliert ihn. Gibt true
zurück, wenn die Datei geöffnet und der Quellcode kompiliert werden konnte, andernfalls false.
Siehe auch compileSourceCode().
[static]
bool QOpenGLShader::hasOpenGLShaders(QOpenGLShader::ShaderType type, QOpenGLContext *context = nullptr)
Gibt true
zurück, wenn Shader-Programme des Typs type auf diesem System unterstützt werden; andernfalls false.
Die context wird verwendet, um die GLSL-Erweiterungen aufzulösen. Wenn context nullptr
ist, dann wird QOpenGLContext::currentContext() verwendet.
bool QOpenGLShader::isCompiled() const
Gibt true
zurück, wenn dieser Shader kompiliert wurde; andernfalls false.
Siehe auch compileSourceCode() und compileSourceFile().
QString QOpenGLShader::log() const
Gibt die Fehler und Warnungen zurück, die beim letzten Kompilieren aufgetreten sind.
Siehe auch compileSourceCode() und compileSourceFile().
GLuint QOpenGLShader::shaderId() const
Gibt den OpenGL-Bezeichner zurück, der mit diesem Shader verbunden ist.
Siehe auch QOpenGLShaderProgram::programId().
QOpenGLShader::ShaderType QOpenGLShader::shaderType() const
Gibt den Typ dieses Shaders zurück.
QByteArray QOpenGLShader::sourceCode() const
Gibt den Quellcode für diesen Shader zurück.
Siehe auch compileSourceCode().
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.