QOpenGLShader Class
La classe QOpenGLShader permet de compiler des shaders OpenGL. En savoir plus...
| En-tête : | #include <QOpenGLShader> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS OpenGL) target_link_libraries(mytarget PRIVATE Qt6::OpenGL) |
| qmake : | QT += opengl |
| Hérite de : | QObject |
- Liste de tous les membres, y compris les membres hérités
- QOpenGLShader fait partie du rendu 3D.
Types publics
| flags | ShaderType |
| enum | ShaderTypeBit { Vertex, Fragment, Geometry, TessellationControl, TessellationEvaluation, Compute } |
Fonctions publiques
| 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 |
Membres publics statiques
| bool | hasOpenGLShaders(QOpenGLShader::ShaderType type, QOpenGLContext *context = nullptr) |
Description détaillée
Cette classe prend en charge les shaders écrits en langage de shader OpenGL (GLSL) et en langage de shader OpenGL/ES (GLSL/ES).
QOpenGLShader et QOpenGLShaderProgram protègent le programmeur des détails liés à la compilation et à la liaison des shaders de sommets et de fragments.
Toutes les données utilisées par QOpenGLShader sont censées provenir d’une source fiable. Le code source du shader est transmis, éventuellement après quelques modifications minimes, au compilateur de l’implémentation OpenGL sous-jacente, qui constitue une « boîte noire » du point de vue de Qt.
Avertissement : il est conseillé aux développeursd’applications d’examiner attentivement les implications potentielles avant de transmettre du contenu fourni par l’utilisateur à des fonctions telles que compileSourceFile().
Voir également QOpenGLShaderProgram.
Documentation sur les types de membres
enum QOpenGLShader::ShaderTypeBit
flags QOpenGLShader::ShaderType
Cette énumération spécifie le type d'QOpenGLShader s en cours de création.
| Constante | Valeur | Description |
|---|---|---|
QOpenGLShader::Vertex | 0x0001 | Shader de sommets écrit en langage de shader OpenGL (GLSL). |
QOpenGLShader::Fragment | 0x0002 | Shader de fragment écrit en langage de shader OpenGL (GLSL). |
QOpenGLShader::Geometry | 0x0004 | Shaders de géométrie écrits en langage de shader OpenGL (GLSL) (nécessite OpenGL >= 3.2 ou OpenGL ES >= 3.2). |
QOpenGLShader::TessellationControl | 0x0008 | Shaders de contrôle de tessellation écrits en langage de shader OpenGL (GLSL) (nécessite OpenGL >= 4.0 ou OpenGL ES >= 3.2). |
QOpenGLShader::TessellationEvaluation | 0x0010 | Shaders d’évaluation de tessellation écrits en langage de shader OpenGL (GLSL) (nécessite OpenGL >= 4.0 ou OpenGL ES >= 3.2). |
QOpenGLShader::Compute | 0x0020 | Shaders de calcul écrits en langage de shader OpenGL (GLSL) (nécessite OpenGL >= 4.3 ou OpenGL ES >= 3.1). |
Le type ShaderType est un typedef pour QFlags<ShaderTypeBit>. Il stocke une combinaison OR de valeurs ShaderTypeBit.
Documentation des fonctions membres
[explicit] QOpenGLShader::QOpenGLShader(QOpenGLShader::ShaderType type, QObject *parent = nullptr)
Crée un nouvel objet `QOpenGLShader` correspondant à l'type spécifiée et l'associe à ` parent`. Si les programmes de shader ne sont pas pris en charge, la fonction ` QOpenGLShaderProgram::hasOpenGLShaderPrograms()` renverra `false`.
Ce constructeur est normalement suivi d’un appel à ` compileSourceCode()` ou à ` compileSourceFile()`.
Le shader sera associé à l'QOpenGLContext actuel.
Voir également compileSourceCode() et compileSourceFile().
[virtual noexcept] QOpenGLShader::~QOpenGLShader()
Supprime ce shader. Si le shader a été associé à un objet « QOpenGLShaderProgram », le shader lui-même restera en place jusqu'à ce que l'objet « QOpenGLShaderProgram » soit détruit.
bool QOpenGLShader::compileSourceCode(const char *source)
Définit le code d’ source pour ce shader et le compile. Renvoie « true » si la source a été compilée avec succès, « false » dans le cas contraire.
Voir aussi compileSourceFile().
bool QOpenGLShader::compileSourceCode(const QByteArray &source)
Définit le code d'source ation de ce shader et le compile. Renvoie « true » si la source a été compilée avec succès, « false » dans le cas contraire.
Il s'agit d'une fonction surchargée.
Voir également compileSourceFile().
bool QOpenGLShader::compileSourceCode(const QString &source)
Définit le code d'source ation de ce shader et le compile. Renvoie « true » si la compilation de la source a réussi, « false » dans le cas contraire.
Il s'agit d'une fonction surchargée.
Voir également compileSourceFile().
bool QOpenGLShader::compileSourceFile(const QString &fileName)
Définit le code source de ce shader à partir du contenu de fileName et le compile. Renvoie true si le fichier a pu être ouvert et le code source compilé, false dans le cas contraire.
Voir aussi compileSourceCode().
[static] bool QOpenGLShader::hasOpenGLShaders(QOpenGLShader::ShaderType type, QOpenGLContext *context = nullptr)
Renvoie « true » si les programmes de shaders de type « type » sont pris en charge sur ce système ; « false » dans le cas contraire.
La variable context est utilisée pour résoudre les extensions GLSL. Si context est défini sur nullptr, alors la fonction QOpenGLContext::currentContext() est utilisée.
bool QOpenGLShader::isCompiled() const
Renvoie « true » si ce shader a été compilé ; « false » dans le cas contraire.
Voir également compileSourceCode() et compileSourceFile().
QString QOpenGLShader::log() const
Renvoie les erreurs et les avertissements survenus lors de la dernière compilation.
Voir également compileSourceCode() et compileSourceFile().
GLuint QOpenGLShader::shaderId() const
Renvoie l'identifiant OpenGL associé à ce shader.
Voir aussi ` QOpenGLShaderProgram::programId()`.
QOpenGLShader::ShaderType QOpenGLShader::shaderType() const
Renvoie le type de ce shader.
QByteArray QOpenGLShader::sourceCode() const
Renvoie le code source de ce shader.
Voir aussi compileSourceCode().
© 2026 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.