Sur cette page

QOpenGLShaderProgram Class

La classe QOpenGLShaderProgram permet de lier et d'utiliser des programmes de shader OpenGL. En savoir plus...

En-tête : #include <QOpenGLShaderProgram>
CMake : find_package(Qt6 REQUIRED COMPONENTS OpenGL)
target_link_libraries(mytarget PRIVATE Qt6::OpenGL)
qmake : QT += opengl
Hérite de : QObject

Fonctions publiques

QOpenGLShaderProgram(QObject*parent = nullptr)
virtuel ~QOpenGLShaderProgram()
bool addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const char*source)
bool addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const QByteArray&source)
bool addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const QString&source)
bool addCacheableShaderFromSourceFile(QOpenGLShader::ShaderType type, const QString&fileName)
bool addShader(QOpenGLShader*shader)
bool addShaderFromSourceCode(QOpenGLShader::ShaderType type, const char*source)
bool addShaderFromSourceCode(QOpenGLShader::ShaderType type, const QByteArray&source)
bool addShaderFromSourceCode(QOpenGLShader::ShaderType type, const QString&source)
bool addShaderFromSourceFile(QOpenGLShader::ShaderType type, const QString&fileName)
int attributeLocation(const char*name) const
int attributeLocation(const QByteArray&name) const
int attributeLocation(const QString&name) const
bool bind()
void bindAttributeLocation(const char*name, int location)
void bindAttributeLocation(const QByteArray&name, int location)
void bindAttributeLocation(const QString&nom, int position)
bool create()
QList<float> defaultInnerTessellationLevels() const
QList<float> defaultOuterTessellationLevels() const
void disableAttributeArray(int emplacement)
void disableAttributeArray(const char*name)
void enableAttributeArray(int emplacement)
void enableAttributeArray(const char*nom)
bool isLinked() const
virtual bool link()
QString log() const
int maxGeometryOutputVertices() const
int patchVertexCount() const
GLuint programId() const
void release()
void removeAllShaders()
void removeShader(QOpenGLShader*shader)
void setAttributeArray(int location, const QVector2D*values, int stride = 0)
void setAttributeArray(int location, const QVector3D*values, int stride = 0)
void setAttributeArray(int emplacement, const QVector4D*valeurs, int pas = 0)
void setAttributeArray(int emplacement, const GLfloat*valeurs, int tailleDuTuple, int pas = 0)
void setAttributeArray(int emplacement, GLenum type, const void*valeurs, int taille_tuple, int pas = 0)
void setAttributeArray(const char*name, const QVector2D*values, int stride = 0)
void setAttributeArray(const char*name, const QVector3D*values, int stride = 0)
void setAttributeArray(const char*name, const QVector4D*values, int stride = 0)
void setAttributeArray(const char*name, const GLfloat*values, int tupleSize, int stride = 0)
void setAttributeArray(const char*name, GLenum type, const void*values, int tupleSize, int stride = 0)
void setAttributeBuffer(int emplacement, GLenum type, int décalage, int tailleDuTuple, int pas = 0)
void setAttributeBuffer(const char*name, GLenum type, int offset, int tupleSize, int stride = 0)
void setAttributeValue(int emplacement, GLfloat valeur)
void setAttributeValue(int emplacement, const QColor&valeur)
void setAttributeValue(int emplacement, const QVector2D&valeur)
void setAttributeValue(int emplacement, const QVector3D&valeur)
void setAttributeValue(int emplacement, const QVector4D&valeur)
void setAttributeValue(int emplacement, GLfloat x, GLfloat y)
void setAttributeValue(int emplacement, GLfloat x, GLfloat y, GLfloat z)
void setAttributeValue(int emplacement, const GLfloat*valeurs, int colonnes, int lignes)
void setAttributeValue(int emplacement, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
void setAttributeValue(const char*nom, GLfloat valeur)
void setAttributeValue(const char*nom, const QColor&valeur)
void setAttributeValue(const char*nom, const QVector2D&valeur)
void setAttributeValue(const char*nom, const QVector3D&valeur)
void setAttributeValue(const char*nom, const QVector4D&valeur)
void setAttributeValue(const char*nom, GLfloat x, GLfloat y)
void setAttributeValue(const char*nom, GLfloat x, GLfloat y, GLfloat z)
void setAttributeValue(const char*name, const GLfloat*values, int columns, int rows)
void setAttributeValue(const char*nom, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
void setDefaultInnerTessellationLevels(const QList<float>&niveaux)
void setDefaultOuterTessellationLevels(const QList<float>&niveaux)
void setPatchVertexCount(int count)
void setUniformValue(int emplacement, GLfloat valeur)
void setUniformValue(int emplacement, GLint valeur)
void setUniformValue(const char*nom, const QMatrix3x4&valeur)
void setUniformValue(const char*nom, const QMatrix4x2&valeur)
void setUniformValue(const char*nom, const QMatrix4x3&valeur)
void setUniformValue(const char*nom, const QMatrix4x4&valeur)
void setUniformValue(const char*nom, const QPoint&point)
void setUniformValue(const char*nom, const QPointF&point)
void setUniformValue(const char*nom, const QSize&taille)
void setUniformValue(const char*nom, const QSizeF&taille)
void setUniformValue(const char*nom, const QTransform&valeur)
void setUniformValue(const char*nom, const QVector2D&valeur)
void setUniformValue(const char*nom, const QVector3D&valeur)
void setUniformValue(const char*nom, const QVector4D&valeur)
void setUniformValue(int emplacement, const GLfloat[2][2] valeur)
void setUniformValue(int emplacement, const GLfloat[3][3] valeur)
void setUniformValue(int emplacement, const GLfloat[4][4] valeur)
void setUniformValue(const char*name, GLfloat x, GLfloat y)
void setUniformValue(const char*nom, GLfloat x, GLfloat y, GLfloat z)
void setUniformValue(const char*name, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
void setUniformValue(int emplacement, GLuint valeur)
void setUniformValue(int emplacement, const QColor&couleur)
void setUniformValue(int emplacement, const QMatrix2x2&valeur)
void setUniformValue(int emplacement, const QMatrix2x3&valeur)
void setUniformValue(int emplacement, const QMatrix2x4&valeur)
void setUniformValue(int emplacement, const QMatrix3x2&valeur)
void setUniformValue(int emplacement, const QMatrix3x3&valeur)
void setUniformValue(int emplacement, const QMatrix3x4&valeur)
void setUniformValue(int emplacement, const QMatrix4x2&valeur)
void setUniformValue(int emplacement, const QMatrix4x3&valeur)
void setUniformValue(int emplacement, const QMatrix4x4&valeur)
void setUniformValue(int emplacement, const QPoint&point)
void setUniformValue(int emplacement, const QPointF&point)
void setUniformValue(int emplacement, const QSize&taille)
void setUniformValue(int emplacement, const QSizeF&taille)
void setUniformValue(int emplacement, const QTransform&valeur)
void setUniformValue(int emplacement, const QVector2D&valeur)
void setUniformValue(int emplacement, const QVector3D&valeur)
void setUniformValue(int emplacement, const QVector4D&valeur)
void setUniformValue(int emplacement, GLfloat x, GLfloat y)
void setUniformValue(int emplacement, GLfloat x, GLfloat y, GLfloat z)
void setUniformValue(int emplacement, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
void setUniformValue(const char*nom, GLfloat valeur)
void setUniformValue(const char*nom, GLint valeur)
void setUniformValue(const char*nom, GLuint valeur)
void setUniformValue(const char*nom, const GLfloat[2][2] valeur)
void setUniformValue(const char*name, const GLfloat[3][3] value)
void setUniformValue(const char*nom, const GLfloat[4][4] valeur)
void setUniformValue(const char*nom, const QColor&couleur)
void setUniformValue(const char*name, const QMatrix2x2&value)
void setUniformValue(const char*nom, const QMatrix2x3&valeur)
void setUniformValue(const char*nom, const QMatrix2x4&valeur)
void setUniformValue(const char*nom, const QMatrix3x2&valeur)
void setUniformValue(const char*nom, const QMatrix3x3&valeur)
void setUniformValueArray(int emplacement, const GLint*valeurs, int nombre)
void setUniformValueArray(int emplacement, const GLuint*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QMatrix2x2*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QMatrix2x3*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QMatrix2x4*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QMatrix3x2*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QMatrix3x3*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QMatrix3x4*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QMatrix4x2*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QMatrix4x3*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QMatrix4x4*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QVector2D*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QVector3D*valeurs, int nombre)
void setUniformValueArray(int emplacement, const QVector4D*valeurs, int nombre)
void setUniformValueArray(int emplacement, const GLfloat*valeurs, int nombre, int tailleDuTuple)
void setUniformValueArray(const char*nom, const GLint*valeurs, int nombre)
void setUniformValueArray(const char*nom, const GLuint*valeurs, int nombre)
void setUniformValueArray(const char*name, const QMatrix2x2*values, int count)
void setUniformValueArray(const char*nom, const QMatrix2x3*valeurs, int nombre)
void setUniformValueArray(const char*nom, const QMatrix2x4*valeurs, int nombre)
void setUniformValueArray(const char*nom, const QMatrix3x2*valeurs, int nombre)
void setUniformValueArray(const char*nom, const QMatrix3x3*valeurs, int nombre)
void setUniformValueArray(const char*name, const QMatrix3x4*values, int count)
void setUniformValueArray(const char*nom, const QMatrix4x2*valeurs, int nombre)
void setUniformValueArray(const char*nom, const QMatrix4x3*valeurs, int nombre)
void setUniformValueArray(const char*name, const QMatrix4x4*values, int count)
void setUniformValueArray(const char*nom, const QVector2D*valeurs, int nombre)
void setUniformValueArray(const char*nom, const QVector3D*valeurs, int nombre)
void setUniformValueArray(const char*nom, const QVector4D*valeurs, int nombre)
void setUniformValueArray(const char*name, const GLfloat*values, int count, int tupleSize)
QList<QOpenGLShader *> shaders() const
int uniformLocation(const char*name) const
int uniformLocation(const QByteArray&name) const
int uniformLocation(const QString&nom) const

Membres publics statiques

bool hasOpenGLShaderPrograms(QOpenGLContext *context = nullptr)

Description détaillée

Introduction

Cette classe prend en charge les programmes de shaders écrits en langage de shaders OpenGL (GLSL) et en langage de shaders OpenGL/ES (GLSL/ES).

QOpenGLShader Les classes QOpenGLShaderProgram et QOpenGLShaderProgram protègent le programmeur des détails liés à la compilation et à la liaison des shaders de sommets et de fragments.

L'exemple suivant crée un programme de shader de sommets à l'aide de l'code on source fournie. Une fois compilé et lié, le programme de shader est activé dans l'QOpenGLContext on en cours en appelant QOpenGLShaderProgram::bind() :

QOpenGLShader shader(QOpenGLShader::Vertex);
shader.compileSourceCode(code);

QOpenGLShaderProgram program(context);
program.addShader(&shader);
program.link();

program.bind();

Écrire des shaders portables

Les programmes de shaders peuvent être difficiles à réutiliser d’une implémentation OpenGL à l’autre en raison des niveaux de prise en charge variables des attributs de sommet et des variables uniformes standard. En particulier, GLSL/ES ne dispose pas de toutes les variables standard présentes sur les systèmes OpenGL de bureau : gl_Vertex, gl_Normal, gl_Color, etc. OpenGL de bureau ne dispose pas des qualificatifs de variables highp, mediump et lowp.

La classe `QOpenGLShaderProgram` facilite l’écriture de shaders portables en préfixant tous les programmes de shaders avec les lignes suivantes sur OpenGL de bureau :

#define highp
#define mediump
#define lowp

Cela permet d’exécuter la plupart des programmes de shaders GLSL/ES sur les systèmes de bureau. Le programmeur doit se limiter aux fonctionnalités présentes dans GLSL/ES et éviter les noms de variables standard qui ne fonctionnent que sur les systèmes de bureau.

Exemple simple de shader

program.addShaderFromSourceCode(QOpenGLShader::Vertex,
    "attribute highp vec4 vertex;\n"
    "uniform highp mat4 matrix;\n"
    "void main(void)\n"
    "{\n"
    "   gl_Position = matrix * vertex;\n"
    "}");
program.addShaderFromSourceCode(QOpenGLShader::Fragment,
    "uniform mediump vec4 color;\n"
    "void main(void)\n"
    "{\n"
    "   gl_FragColor = color;\n"
    "}");
program.link();
program.bind();

int vertexLocation = program.attributeLocation("vertex");
int matrixLocation = program.uniformLocation("matrix");
int colorLocation = program.uniformLocation("color");

Avec le programme de shader ci-dessus activé, nous pouvons dessiner un triangle vert comme suit :

static GLfloat const triangleVertices[] = {
    60.0f,  10.0f,  0.0f,
    110.0f, 110.0f, 0.0f,
    10.0f,  110.0f, 0.0f
};

QColor color(0, 255, 0, 255);

QMatrix4x4 pmvMatrix;
pmvMatrix.ortho(rect());

program.enableAttributeArray(vertexLocation);
program.setAttributeArray(vertexLocation, triangleVertices, 3);
program.setUniformValue(matrixLocation, pmvMatrix);
program.setUniformValue(colorLocation, color);

glDrawArrays(GL_TRIANGLES, 0, 3);

program.disableAttributeArray(vertexLocation);

Shaders et programmes binaires

Les shaders binaires peuvent être spécifiés à l’aide de glShaderBinary() sur la valeur de retour de QOpenGLShader::shaderId(). L’instance QOpenGLShader contenant le binaire peut ensuite être ajoutée au programme de shader avec addShader() et liée de la manière habituelle avec link().

Les programmes binaires peuvent être spécifiés à l’aide de ` glProgramBinaryOES() ` sur la valeur de retour de ` programId()`. L’application doit ensuite appeler ` link()`, qui détectera que le programme a déjà été spécifié et lié, ce qui permettra d’effectuer d’autres opérations sur le programme de shader. L’identifiant du programme de shader peut être créé explicitement à l’aide de la fonction ` create()`.

Mise en cache des binaires de programme

À partir de Qt 5.9, la prise en charge de la mise en cache des binaires de programme sur le disque est intégrée. Pour l'activer, utilisez les fonctions addCacheableShaderFromSourceCode() et addCacheableShaderFromSourceFile(). Avec un contexte OpenGL ES 3.x ou la prise en charge de GL_ARB_get_program_binary, cela mettra en cache de manière transparente les binaires de programme sous QStandardPaths::CacheLocation. Lorsque cette prise en charge n'est pas disponible, l'appel des variantes de fonctions pouvant être mises en cache équivaut à celui des fonctions normales.

Remarque : certains pilotes ne disposent d’aucun format binaire, même s’ils annoncent l’extension ou prennent en charge OpenGL ES 3.0. Dans ce cas, la prise en charge des binaires de programme sera désactivée.

Considérations de sécurité

Toutes les données utilisées par `QOpenGLShaderProgram` sont censées provenir d’une source fiable. Le code source du shader est transmis, éventuellement après des 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 ` addShaderFromSourceFile()`.

Voir également QOpenGLShader.

Documentation des fonctions membres

[explicit] QOpenGLShaderProgram::QOpenGLShaderProgram(QObject *parent = nullptr)

Crée un nouveau programme de shader et l'associe à parent. Le programme ne sera pas valide tant que la fonction addShader() n'aura pas été appelée.

Le programme de shader sera associé à l'QOpenGLContext actuel.

Voir également addShader().

[virtual noexcept] QOpenGLShaderProgram::~QOpenGLShaderProgram()

Supprime ce programme de shader.

bool QOpenGLShaderProgram::addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const char *source)

Enregistre le shader des fichiers spécifiés type et source dans ce programme. Contrairement à la fonction addShaderFromSourceCode(), cette fonction n’effectue pas de compilation. La compilation est reportée à la fonction link(), et peut ne pas avoir lieu du tout, car la fonction link() peut potentiellement utiliser un binaire de programme provenant du cache disque des shaders de Qt. Cela entraîne généralement une augmentation significative des performances.

Renvoie `true` si le shader a été enregistré ou, s'il n'est pas mis en cache, s'il a été compilé avec succès ; `false` en cas d'erreur. Les messages d'erreur de compilation peuvent être récupérés via ` log()`.

Lorsque le cache disque est désactivé, par exemple via ` Qt::AA_DisableShaderDiskCache `, ou que le contexte OpenGL ne prend pas en charge les binaires de contexte, l'appel de cette fonction équivaut à ` addShaderFromSourceCode()`.

Voir également addShaderFromSourceCode() et addCacheableShaderFromSourceFile().

bool QOpenGLShaderProgram::addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const QByteArray &source)

Enregistre le shader des fichiers type et source spécifiés dans ce programme. Contrairement à addShaderFromSourceCode(), cette fonction n’effectue pas de compilation. La compilation est reportée à link(), et peut ne pas avoir lieu du tout, car link() peut potentiellement utiliser un binaire de programme provenant du cache disque des shaders de Qt. Cela entraîne généralement un gain de performances significatif.

Renvoie `true` si le shader a été enregistré ou, s’il n’est pas mis en cache, s’il a été compilé avec succès ; `false` en cas d’erreur. Les messages d’erreur de compilation peuvent être récupérés via ` log()`.

Lorsque le cache disque est désactivé, via Qt::AA_DisableShaderDiskCache par exemple, ou que le contexte OpenGL ne prend pas en charge les binaires de contexte, l'appel de cette fonction équivaut à addShaderFromSourceCode().

Il s’agit d’une fonction surchargée.

Voir également addShaderFromSourceCode() et addCacheableShaderFromSourceFile().

bool QOpenGLShaderProgram::addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const QString &source)

Enregistre le shader des fichiers spécifiés type et source dans ce programme. Contrairement à la fonction addShaderFromSourceCode(), cette fonction n’effectue pas de compilation. La compilation est reportée à la fonction link(), et peut ne pas avoir lieu du tout, car la fonction link() peut potentiellement utiliser un binaire de programme provenant du cache disque des shaders de Qt. Cela entraîne généralement un gain de performances significatif.

Lorsque le cache disque est désactivé, par exemple via ` Qt::AA_DisableShaderDiskCache `, ou que le contexte OpenGL ne prend pas en charge les binaires de contexte, l'appel de cette fonction équivaut à ` addShaderFromSourceCode()`.

Il s'agit d'une fonction surchargée.

Voir également addShaderFromSourceCode() et addCacheableShaderFromSourceFile().

bool QOpenGLShaderProgram::addCacheableShaderFromSourceFile(QOpenGLShader::ShaderType type, const QString &fileName)

Enregistre le shader des fichiers spécifiés type et fileName dans ce programme. Contrairement à la fonction addShaderFromSourceFile(), cette fonction n'effectue pas de compilation. La compilation est reportée à la fonction link(), et peut ne pas avoir lieu du tout, car la fonction link() peut potentiellement utiliser un binaire de programme provenant du cache disque des shaders de Qt. Cela entraîne généralement un gain de performances significatif.

Renvoie `true` si le fichier a été lu avec succès, `false` si le fichier n’a pas pu être ouvert ou si la compilation normale (non mise en cache) du shader a échoué. Les messages d’erreur de compilation peuvent être récupérés via ` log()` ().

Lorsque le cache disque est désactivé, par exemple via ` Qt::AA_DisableShaderDiskCache `, ou que le contexte OpenGL ne prend pas en charge les binaires de contexte, l'appel de cette fonction équivaut à ` addShaderFromSourceFile()`.

Voir également addShaderFromSourceFile() et addCacheableShaderFromSourceCode().

bool QOpenGLShaderProgram::addShader(QOpenGLShader *shader)

Ajoute un objet « shader » compilé à ce programme de shader. Renvoie « true » si le shader a pu être ajouté, ou « false » dans le cas contraire.

La propriété de l’objet ` shader ` reste celle de l’appelant. Il ne sera pas supprimé lorsque cette instance ` QOpenGLShaderProgram ` sera supprimée. Cela permet à l’appelant d’ajouter le même shader à plusieurs programmes de shader.

Voir également addShaderFromSourceCode(), addShaderFromSourceFile(), removeShader(), link() et removeAllShaders().

bool QOpenGLShaderProgram::addShaderFromSourceCode(QOpenGLShader::ShaderType type, const char *source)

Compile source en tant que shader de l’ type spécifié et l’ajoute à ce programme de shader. Renvoie true si la compilation a réussi, false dans le cas contraire. Les erreurs et avertissements de compilation seront disponibles via log().

Cette fonction est conçue comme un raccourci permettant d’ajouter rapidement des shaders de sommets et de fragments à un programme de shaders sans avoir à créer au préalable une instance de QOpenGLShader.

Voir également addShader(), addShaderFromSourceFile(), removeShader(), link(), log() et removeAllShaders().

bool QOpenGLShaderProgram::addShaderFromSourceCode(QOpenGLShader::ShaderType type, const QByteArray &source)

Compile source en tant que shader de l'type spécifiée et l'ajoute à ce programme de shader. Renvoie true si la compilation a réussi, false dans le cas contraire. Les erreurs et avertissements de compilation seront disponibles via log().

Cette fonction est conçue comme un raccourci permettant d’ajouter rapidement des shaders de sommets et de fragments à un programme de shaders sans avoir à créer au préalable une instance de ` QOpenGLShader `.

Il s'agit d'une fonction surchargée.

Voir également addShader(), addShaderFromSourceFile(), removeShader(), link(), log() et removeAllShaders().

bool QOpenGLShaderProgram::addShaderFromSourceCode(QOpenGLShader::ShaderType type, const QString &source)

Compile source en tant que shader de l'type spécifiée et l'ajoute à ce programme de shaders. Renvoie true si la compilation a réussi, false dans le cas contraire. Les erreurs et avertissements de compilation seront disponibles via log().

Cette fonction est conçue comme un raccourci permettant d’ajouter rapidement des shaders de sommets et de fragments à un programme de shaders sans avoir à créer au préalable une instance de ` QOpenGLShader `.

Il s’agit d’une fonction surchargée.

Voir également addShader(), addShaderFromSourceFile(), removeShader(), link(), log() et removeAllShaders().

bool QOpenGLShaderProgram::addShaderFromSourceFile(QOpenGLShader::ShaderType type, const QString &fileName)

Compile le contenu de fileName en tant que shader de l'type spécifié et l'ajoute à ce programme de shader. Renvoie true si la compilation a réussi, false dans le cas contraire. Les erreurs et avertissements de compilation seront disponibles via log().

Cette fonction est conçue comme un raccourci permettant d’ajouter rapidement des shaders de sommets et de fragments à un programme de shaders sans avoir à créer au préalable une instance de QOpenGLShader.

Voir également addShader() et addShaderFromSourceCode().

int QOpenGLShaderProgram::attributeLocation(const char *name) const

Renvoie l'emplacement de l'attribut « name » dans la liste des paramètres de ce programme de shader. Renvoie -1 si « name » n'est pas un attribut valide pour ce programme de shader.

Voir également uniformLocation() et bindAttributeLocation().

int QOpenGLShaderProgram::attributeLocation(const QByteArray &name) const

Renvoie l'emplacement de l'attribut « name » dans la liste des paramètres de ce programme de shader. Renvoie -1 si « name » n'est pas un attribut valide pour ce programme de shader.

Il s'agit d'une fonction surchargée.

Voir également uniformLocation() et bindAttributeLocation().

int QOpenGLShaderProgram::attributeLocation(const QString &name) const

Renvoie l'emplacement de l'attribut « name » dans la liste des paramètres de ce programme de shader. Renvoie -1 si « name » n'est pas un attribut valide pour ce programme de shader.

Il s'agit d'une fonction surchargée.

Voir également uniformLocation() et bindAttributeLocation().

bool QOpenGLShaderProgram::bind()

Lie ce programme de shader à l'QOpenGLContext active et en fait le programme de shader actuel. Tout programme de shader précédemment lié est libéré. Cela équivaut à appeler glUseProgram() sur programId(). Renvoie true si le programme a été lié avec succès ; false dans le cas contraire. Si le programme de shader n'a pas encore été lié, ou s'il doit être relié, cette fonction appellera link().

Voir également link() et release().

void QOpenGLShaderProgram::bindAttributeLocation(const char *name, int location)

Lie l'attribut name à l'location spécifiée. Cette fonction peut être appelée avant ou après la liaison du programme. Tous les attributs qui n'ont pas été explicitement liés lors de la liaison du programme se verront attribuer automatiquement des emplacements.

Lorsque cette fonction est appelée après la liaison du programme, celui-ci devra être relié pour que la modification prenne effet.

Voir également attributeLocation().

void QOpenGLShaderProgram::bindAttributeLocation(const QByteArray &name, int location)

Lie l'attribut name à l'location spécifié. Cette fonction peut être appelée avant ou après la liaison du programme. Tous les attributs qui n'ont pas été explicitement liés lors de la liaison du programme se verront attribuer automatiquement des emplacements.

Lorsque cette fonction est appelée après la liaison du programme, celui-ci devra être relié pour que la modification prenne effet.

Il s’agit d’une fonction surchargée.

Voir également attributeLocation().

void QOpenGLShaderProgram::bindAttributeLocation(const QString &name, int location)

Lie l'attribut name à l'location spécifié. Cette fonction peut être appelée avant ou après la liaison du programme. Tous les attributs qui n'ont pas été explicitement liés lors de la liaison du programme se verront attribuer automatiquement des emplacements.

Lorsque cette fonction est appelée après la liaison du programme, celui-ci devra être relié pour que la modification prenne effet.

Il s’agit d’une fonction surchargée.

Voir également attributeLocation().

bool QOpenGLShaderProgram::create()

Demande la création immédiate de l'identifiant du programme de shader. Renvoie true en cas de succès ; false dans le cas contraire.

Cette fonction est particulièrement utile lorsqu'on combine ` QOpenGLShaderProgram ` avec d'autres fonctions OpenGL qui opèrent directement sur l'identifiant du programme de shader, comme ` GL_OES_get_program_binary`.

Lorsque le programme de shader est utilisé normalement, son identifiant est créé à la demande.

Voir également programId().

QList<float> QOpenGLShaderProgram::defaultInnerTessellationLevels() const

Renvoie les niveaux de tessellation interne par défaut que doit utiliser le générateur de primitives de tessellation dans le cas où le shader de contrôle de tessellation ne les fournirait pas. Pour plus de détails sur OpenGL et les shaders de tessellation, consultez la section « Shaders de tessellation OpenGL ».

Renvoie un vecteur de types « float » ( QList ) décrivant les niveaux de tessellation interne. Le vecteur comportera toujours deux éléments, mais ceux-ci ne sont pas tous pertinents pour tous les modes de tessellation.

Remarque : cette fonction renvoie la valeur d’état OpenGL globale. Elle n’est pas spécifique à cette instance d’ QOpenGLShaderProgram.

Remarque : cette fonction n’est prise en charge qu’avec OpenGL >= 4.0 et ne renverra pas de résultats valides avec OpenGL ES 3.2.

Voir également setDefaultInnerTessellationLevels() et defaultOuterTessellationLevels().

QList<float> QOpenGLShaderProgram::defaultOuterTessellationLevels() const

Renvoie les niveaux de tessellation externes par défaut que doit utiliser le générateur de primitives de tessellation lorsque le shader de contrôle de tessellation ne les fournit pas. Pour plus d'informations sur OpenGL et les shaders de tessellation, consultez la section « Shaders de tessellation OpenGL ».

Renvoie un vecteur de types « float » ( QList ) décrivant les niveaux de tessellation externes. Le vecteur comportera toujours quatre éléments, mais ceux-ci ne sont pas tous pertinents pour tous les modes de tessellation.

Remarque : cette fonction renvoie la valeur d’état globale d’OpenGL. Elle n’est pas spécifique à cette instance d’ QOpenGLShaderProgram.

Remarque : cette fonction n’est prise en charge qu’avec OpenGL >= 4.0 et ne renverra pas de résultats valides avec OpenGL ES 3.2.

Voir également setDefaultOuterTessellationLevels() et defaultInnerTessellationLevels().

void QOpenGLShaderProgram::disableAttributeArray(int location)

Désactive le tableau de sommets à l'adresse location dans ce programme de shader, qui avait été activé par un appel précédent à la fonction enableAttributeArray().

Voir également enableAttributeArray(), setAttributeArray(), setAttributeValue() et setUniformValue().

void QOpenGLShaderProgram::disableAttributeArray(const char *name)

Désactive le tableau de sommets nommé « name » dans ce programme de shader, qui avait été activé par un appel précédent à la fonction ` enableAttributeArray()`.

Il s'agit d'une fonction surchargée.

Voir également enableAttributeArray(), setAttributeArray(), setAttributeValue() et setUniformValue().

void QOpenGLShaderProgram::enableAttributeArray(int location)

Active le tableau de sommets à l'adresse location dans ce programme de shader, afin que la valeur définie par setAttributeArray() sur location soit utilisée par le programme de shader.

Voir également disableAttributeArray(), setAttributeArray(), setAttributeValue() et setUniformValue().

void QOpenGLShaderProgram::enableAttributeArray(const char *name)

Active le tableau de sommets nommé « name » dans ce programme de shader, afin que la valeur définie par la fonction setAttributeArray() sur name soit utilisée par le programme de shader.

Il s'agit d'une fonction surchargée.

Voir également disableAttributeArray(), setAttributeArray(), setAttributeValue() et setUniformValue().

[static] bool QOpenGLShaderProgram::hasOpenGLShaderPrograms(QOpenGLContext *context = nullptr)

Renvoie « true » si les programmes de shaders écrits en langage de shaders OpenGL (GLSL) sont pris en charge sur ce système ; « false » dans le cas contraire.

L'context est utilisée pour résoudre les extensions GLSL. Si context vaut nullptr, alors QOpenGLContext::currentContext() est utilisé.

bool QOpenGLShaderProgram::isLinked() const

Renvoie ` true ` si ce programme de shader a été lié ; `false` dans le cas contraire.

Voir aussi link().

Lie entre eux les shaders qui ont été ajoutés à ce programme à l'aide de ` addShader()`. Renvoie ` true ` si la liaison a réussi, ou `false` dans le cas contraire. Si la liaison a échoué, les messages d'erreur peuvent être récupérés à l'aide de ` log()`.

Les sous-classes peuvent redéfinir cette fonction pour initialiser des attributs et des variables uniformes destinés à être utilisés dans des programmes de shaders spécifiques.

Si le programme de shader a déjà été lié, un nouvel appel de cette fonction forcera sa reliaison.

Lorsque des shaders ont été ajoutés à ce programme via addCacheableShaderFromSourceCode() ou addCacheableShaderFromSourceFile(), que les binaires du programme sont pris en charge et qu’un binaire mis en cache est disponible sur le disque, la compilation et la liaison proprement dites sont ignorées. À la place, la fonction link() initialisera le programme avec le blob binaire via glProgramBinary(). S’il n’existe aucune version mise en cache du programme ou si celui-ci a été généré avec une version différente du pilote, les shaders seront compilés à partir du code source et le programme sera lié normalement. Cela permet une mise à jour transparente des pilotes graphiques, sans avoir à se soucier d’éventuelles incompatibilités entre les formats binaires.

Voir également addShader() et log().

QString QOpenGLShaderProgram::log() const

Renvoie les erreurs et les avertissements survenus lors de la dernière appel de ` link()` ou ` addShader()`, avec indication explicite du code source correspondant.

Voir aussi link().

int QOpenGLShaderProgram::maxGeometryOutputVertices() const

Renvoie la limite matérielle du nombre de sommets qu’un shader de géométrie peut générer.

int QOpenGLShaderProgram::patchVertexCount() const

Renvoie le nombre de sommets par patch à utiliser lors du rendu.

Remarque : cette fonction renvoie la valeur globale de l'état OpenGL. Elle n'est pas spécifique à cette instance de ` QOpenGLShaderProgram `.

Voir également setPatchVertexCount().

GLuint QOpenGLShaderProgram::programId() const

Renvoie l'identifiant OpenGL associé à ce programme de shader.

Voir également QOpenGLShader::shaderId().

void QOpenGLShaderProgram::release()

Libère le programme de shader actif de l'QOpenGLContext. Cela revient à appeler la fonction glUseProgram(0).

Voir également bind().

void QOpenGLShaderProgram::removeAllShaders()

Supprime tous les shaders qui avaient été ajoutés précédemment à ce programme. Les objets ` QOpenGLShader ` correspondant à ces shaders ne seront pas supprimés s’ils ont été créés en externe. Les objets ` QOpenGLShader ` créés en interne par ` QOpenGLShaderProgram ` seront supprimés.

Voir également addShader() et removeShader().

void QOpenGLShaderProgram::removeShader(QOpenGLShader *shader)

Supprime l'shader e de ce programme de shader. L'objet n'est pas supprimé.

Le programme de shader doit être valide dans l'QOpenGLContext actuel.

Voir également addShader(), link() et removeAllShaders().

void QOpenGLShaderProgram::setAttributeArray(int location, const QVector2D *values, int stride = 0)

Définit un tableau d'values de sommets en 2D pour l'attribut situé à l'adresse location dans ce programme de shader. L'stride indique le nombre d'octets entre les sommets. Une valeur par défaut de zéro pour stride indique que les sommets sont disposés de manière dense à l'adresse values.

Le tableau deviendra actif lorsque la fonction enableAttributeArray() sera appelée sur l’attribut location. Dans le cas contraire, la valeur spécifiée avec setAttributeValue() pour location sera utilisée.

Voir également setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

void QOpenGLShaderProgram::setAttributeArray(int location, const QVector3D *values, int stride = 0)

Définit un tableau d'values de sommets 3D pour l'attribut situé à l'adresse location dans ce programme de shader. Le paramètre stride indique le nombre d'octets entre chaque sommet. Une valeur par défaut de zéro pour stride indique que les sommets sont disposés de manière dense à l'adresse values.

Le tableau deviendra actif lorsque la fonction enableAttributeArray() sera appelée sur l’attribut location. Dans le cas contraire, la valeur spécifiée avec setAttributeValue() pour location sera utilisée.

Voir également setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

void QOpenGLShaderProgram::setAttributeArray(int location, const QVector4D *values, int stride = 0)

Définit un tableau d'values de sommets 4D pour l'attribut situé à l'adresse location dans ce programme de shader. L'stride indique le nombre d'octets entre les sommets. Une valeur par défaut de zéro pour l'stride indique que les sommets sont regroupés de manière dense à l'adresse values.

Le tableau deviendra actif lorsque la fonction enableAttributeArray() sera appelée sur l’attribut location. Sinon, la valeur spécifiée avec setAttributeValue() pour l’attribut location sera utilisée.

Voir également setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

void QOpenGLShaderProgram::setAttributeArray(int location, const GLfloat *values, int tupleSize, int stride = 0)

Définit un tableau d'values s de sommets pour l'attribut situé à l'adresse location dans ce programme de shader. La variable tupleSize indique le nombre de composantes par sommet (1, 2, 3 ou 4), et la variable stride indique le nombre d'octets entre les sommets. Une valeur par défaut de zéro pour stride indique que les sommets sont disposés de manière dense à l'adresse values.

Le tableau deviendra actif lorsque la fonction enableAttributeArray() sera appelée sur location. Sinon, la valeur spécifiée avec setAttributeValue() pour location sera utilisée.

Voir également setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

void QOpenGLShaderProgram::setAttributeArray(int location, GLenum type, const void *values, int tupleSize, int stride = 0)

Définit un tableau d’ values s de sommets pour l’attribut situé à l’adresse location dans ce programme de shader. L’ stride indique le nombre d’octets entre chaque sommet. Une valeur par défaut de stride égale à zéro signifie que les sommets sont disposés de manière dense dans values.

L’ type indique le type des éléments du tableau values, généralement GL_FLOAT, GL_UNSIGNED_BYTE, etc. L’ tupleSize indique le nombre de composantes par sommet : 1, 2, 3 ou 4.

Le tableau deviendra actif lorsque la fonction enableAttributeArray() sera appelée sur l’ location. Sinon, la valeur spécifiée avec setAttributeValue() pour location sera utilisée.

La fonction setAttributeBuffer() peut être utilisée pour définir le tableau d’attributs à un décalage au sein d’un tampon de sommets.

Remarque : la normalisation sera activée. Si cela n'est pas souhaité, appelez glVertexAttribPointer directement via QOpenGLFunctions.

Voir également setAttributeValue(), setUniformValue(), enableAttributeArray(), disableAttributeArray() et setAttributeBuffer().

void QOpenGLShaderProgram::setAttributeArray(const char *name, const QVector2D *values, int stride = 0)

Définit un tableau d'values de sommets en 2D sur l'attribut nommé « name » dans ce programme de shader. L'stride indique le nombre d'octets entre chaque sommet. Une valeur par défaut de « stride » égale à zéro indique que les sommets sont disposés de manière dense dans « values ».

Le tableau deviendra actif lorsque la fonction enableAttributeArray() sera appelée sur name. Dans le cas contraire, la valeur spécifiée avec setAttributeValue() pour name sera utilisée.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

void QOpenGLShaderProgram::setAttributeArray(const char *name, const QVector3D *values, int stride = 0)

Définit un tableau d'values de sommets 3D sur l'attribut nommé « name » dans ce programme de shader. L'stride indique le nombre d'octets entre les sommets. Une valeur par défaut de « stride » égale à zéro indique que les sommets sont disposés de manière dense dans « values ».

Le tableau deviendra actif lorsque la fonction ` enableAttributeArray()` sera appelée sur ` name`. Sinon, la valeur spécifiée avec ` setAttributeValue()` pour ` name ` sera utilisée.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

void QOpenGLShaderProgram::setAttributeArray(const char *name, const QVector4D *values, int stride = 0)

Définit un tableau de values de sommets 4D sur l'attribut nommé « name » dans ce programme de shader. L'stride indique le nombre d'octets entre les sommets. Une valeur par défaut de « stride » égale à zéro indique que les sommets sont disposés de manière dense dans « values ».

Le tableau deviendra actif lorsque la fonction ` enableAttributeArray()` sera appelée sur ` name`. Sinon, la valeur spécifiée avec ` setAttributeValue()` pour ` name ` sera utilisée.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

void QOpenGLShaderProgram::setAttributeArray(const char *name, const GLfloat *values, int tupleSize, int stride = 0)

Définit un tableau d’ values de sommets sur l’attribut nommé « name » dans ce programme de shader. La valeur « tupleSize » indique le nombre de composantes par sommet (1, 2, 3 ou 4), et la valeur « stride » indique le nombre d’octets entre les sommets. Une valeur par défaut de zéro pour « stride » indique que les sommets sont disposés de manière dense dans « values ».

Le tableau deviendra actif lorsque la fonction ` enableAttributeArray()` sera appelée sur ` name`. Sinon, la valeur spécifiée avec ` setAttributeValue()` pour ` name ` sera utilisée.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

void QOpenGLShaderProgram::setAttributeArray(const char *name, GLenum type, const void *values, int tupleSize, int stride = 0)

Définit un tableau d’ values s de sommets sur l’attribut « name » de ce programme de shader. La valeur « stride » indique le nombre d’octets entre chaque sommet. Une valeur par défaut de « stride » égale à zéro indique que les sommets sont disposés de manière dense dans « values ».

L’ type indique le type des éléments du tableau values, généralement GL_FLOAT, GL_UNSIGNED_BYTE, etc. L’ tupleSize indique le nombre de composantes par sommet : 1, 2, 3 ou 4.

Le tableau deviendra actif lorsque la fonction ` enableAttributeArray()` sera appelée sur l’ name. Sinon, la valeur spécifiée avec ` setAttributeValue()` pour ` name ` sera utilisée.

La fonction setAttributeBuffer() permet de définir le tableau d’attributs à un décalage donné au sein d’un tampon de sommets.

Il s’agit d’une fonction surchargée.

Voir également setAttributeValue(), setUniformValue(), enableAttributeArray(), disableAttributeArray() et setAttributeBuffer().

void QOpenGLShaderProgram::setAttributeBuffer(int location, GLenum type, int offset, int tupleSize, int stride = 0)

Définit un tableau de valeurs de sommets pour l’attribut situé à l’adresse location dans ce programme de shader, en commençant à une adresse spécifique offset dans le tampon de sommets actuellement lié. L’ stride indique le nombre d’octets entre les sommets. Une valeur par défaut de stride égale à zéro indique que les sommets sont disposés de manière dense dans le tableau de valeurs.

L’ type indique le type des éléments du tableau de valeurs de sommets, généralement GL_FLOAT, GL_UNSIGNED_BYTE, etc. L’ tupleSize indique le nombre de composantes par sommet : 1, 2, 3 ou 4.

Le tableau deviendra actif lorsque la fonction ` enableAttributeArray()` sera appelée sur ` location`. Dans le cas contraire, la valeur spécifiée avec ` setAttributeValue()` pour ` location ` sera utilisée.

Remarque : la normalisation sera activée. Si vous ne le souhaitez pas, appelez directement glVertexAttribPointer via QOpenGLFunctions.

Voir également setAttributeArray().

void QOpenGLShaderProgram::setAttributeBuffer(const char *name, GLenum type, int offset, int tupleSize, int stride = 0)

Définit un tableau de valeurs de sommets sur l'attribut nommé « name » dans ce programme de shader, en commençant à une offset spécifique dans le tampon de sommets actuellement lié. L'stride indique le nombre d'octets entre les sommets. Une valeur par défaut de « stride » égale à zéro indique que les sommets sont disposés de manière dense dans le tableau de valeurs.

L’ type indique le type des éléments du tableau de valeurs de sommets, généralement GL_FLOAT, GL_UNSIGNED_BYTE, etc. L’ tupleSize indique le nombre de composantes par sommet : 1, 2, 3 ou 4.

Le tableau deviendra actif lorsque la fonction ` enableAttributeArray()` sera appelée sur ` name`. Sinon, la valeur spécifiée avec ` setAttributeValue()` pour ` name ` sera utilisée.

Il s'agit d'une fonction surchargée.

Voir également setAttributeArray().

void QOpenGLShaderProgram::setAttributeValue(int location, GLfloat value)

Définit l'attribut « location » du contexte actuel sur « value ».

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(int location, const QColor &value)

Définit l'attribut « location » du contexte actuel sur « value ».

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(int location, const QVector2D &value)

Définit l'attribut de location dans le contexte actuel sur value.

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(int location, const QVector3D &value)

Définit l'attribut « location » du contexte actuel sur « value ».

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(int location, const QVector4D &value)

Définit l'attribut « location » du contexte actuel sur « value ».

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(int location, GLfloat x, GLfloat y)

Définit l'attribut « location » du contexte actuel sur le vecteur 2D (x, y).

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(int location, GLfloat x, GLfloat y, GLfloat z)

Définit l'attribut « location » du contexte actuel sur le vecteur 3D (x, y, z).

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(int location, const GLfloat *values, int columns, int rows)

Définit l'attribut location du contexte actuel sur le contenu de values, qui contient des éléments de type columns, chacun composé d’éléments de type rows. La valeur de rows doit être 1, 2, 3 ou 4. Cette fonction est généralement utilisée pour définir des valeurs de matrice et des vecteurs de colonnes.

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)

Définit l'attribut de location dans le contexte courant sur le vecteur 4D (x, y, z, w).

Voir aussi setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(const char *name, GLfloat value)

Définit l'attribut « name » du contexte actuel sur « value ».

Il s'agit d'une fonction surchargée.

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(const char *name, const QColor &value)

Définit l'attribut « name » du contexte actuel sur « value ».

Il s'agit d'une fonction surchargée.

Voir également ` setUniformValue()`.

void QOpenGLShaderProgram::setAttributeValue(const char *name, const QVector2D &value)

Définit l'attribut « name » du contexte actuel sur « value ».

Il s'agit d'une fonction surchargée.

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(const char *name, const QVector3D &value)

Définit l'attribut « name » du contexte actuel sur « value ».

Il s'agit d'une fonction surchargée.

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(const char *name, const QVector4D &value)

Définit l'attribut « name » du contexte actuel sur « value ».

Il s'agit d'une fonction surchargée.

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(const char *name, GLfloat x, GLfloat y)

Définit l'attribut « name » du contexte actuel sur le vecteur 2D (x, y).

Il s'agit d'une fonction surchargée.

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z)

Définit l'attribut « name » du contexte actuel sur le vecteur 3D (x, y, z).

Il s'agit d'une fonction surchargée.

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(const char *name, const GLfloat *values, int columns, int rows)

Définit l'attribut « name » du contexte actuel sur le contenu de « values », qui contient des éléments de type « columns », chacun composé d'éléments de type « rows ». La valeur de « rows » doit être 1, 2, 3 ou 4. Cette fonction est généralement utilisée pour définir des valeurs de matrice et des vecteurs de colonnes.

Il s'agit d'une fonction surchargée.

Voir également setUniformValue().

void QOpenGLShaderProgram::setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w)

Définit l'attribut « name » du contexte courant sur le vecteur 4D (x, y, z, w).

Il s’agit d’une fonction surchargée.

Voir également setUniformValue().

void QOpenGLShaderProgram::setDefaultInnerTessellationLevels(const QList<float> &levels)

Définit les niveaux de tessellation externes par défaut que doit utiliser le générateur de primitives de tessellation lorsque le shader de contrôle de la tessellation ne les transmet pas à l'levels. Pour plus de détails sur OpenGL et les shaders de tessellation, consultez la section « Shaders de tessellation OpenGL ».

L'argument ` levels ` doit être un ` QList ` composé de 2 flottants. Toutes les valeurs ne sont pas pertinentes pour tous les modes de tessellation. Si vous spécifiez un vecteur comportant moins de 2 éléments, les éléments manquants se verront attribuer la valeur par défaut 1.

Remarque : cette fonction modifie l’état global d’OpenGL et n’est pas spécifique à cette instance d’ QOpenGLShaderProgram. Vous devez l’appeler dans votre fonction de rendu lorsque cela est nécessaire, car QOpenGLShaderProgram ne s’en chargera pas pour vous. Il s’agit uniquement d’une fonction de commodité.

Remarque : cette fonction n'est disponible qu'avec OpenGL >= 4.0 et n'est pas prise en charge par OpenGL ES 3.2.

Voir également defaultInnerTessellationLevels() et setDefaultOuterTessellationLevels().

void QOpenGLShaderProgram::setDefaultOuterTessellationLevels(const QList<float> &levels)

Définit les niveaux de tessellation externes par défaut que doit utiliser le générateur de primitives de tessellation dans le cas où le shader de contrôle de la tessellation ne les transmettrait pas à ` levels`. Pour plus de détails sur OpenGL et les shaders de tessellation, consultez la section « Shaders de tessellation OpenGL ».

L'argument ` levels ` doit être un ` QList ` composé de 4 nombres à virgule flottante. Toutes les valeurs ne sont pas pertinentes pour tous les modes de tessellation. Si vous spécifiez un vecteur comportant moins de 4 éléments, les éléments manquants se verront attribuer une valeur par défaut de 1.

Remarque : cette fonction modifie l’état global d’OpenGL et n’est pas spécifique à cette instance d’ QOpenGLShaderProgram. Vous devez l’appeler dans votre fonction de rendu lorsque cela est nécessaire, car QOpenGLShaderProgram ne s’en chargera pas pour vous. Il s’agit uniquement d’une fonction de commodité.

Remarque : cette fonction n’est disponible qu’avec OpenGL >= 4.0 et n’est pas prise en charge par OpenGL ES 3.2.

Voir également defaultOuterTessellationLevels() et setDefaultInnerTessellationLevels().

void QOpenGLShaderProgram::setPatchVertexCount(int count)

Utilisez cette fonction pour indiquer à OpenGL le nombre de sommets d’un patch à l’aide de ` count`. Un patch est une primitive OpenGL personnalisée dont l’interprétation est entièrement définie par les étapes du shader de tessellation. Par conséquent, l’appel de cette fonction n’a de sens que lorsque l’on utilise une ` QOpenGLShaderProgram ` contenant des shaders d’étape de tessellation. Lors de l’utilisation de la tessellation OpenGL, la seule primitive pouvant être rendue à l’aide des fonctions ` glDraw*() ` est ` GL_PATCHES`.

Cela équivaut à appeler glPatchParameteri(GL_PATCH_VERTICES, count).

Remarque : cela modifie l’état global d’OpenGL et n’est pas spécifique à cette instance d’ QOpenGLShaderProgram. Vous devez appeler cette fonction dans votre fonction de rendu lorsque cela est nécessaire, car QOpenGLShaderProgram ne s’en chargera pas pour vous. Il s’agit purement d’une fonction de commodité.

Voir également patchVertexCount().

void QOpenGLShaderProgram::setUniformValue(int location, GLfloat value)

Définit la variable « uniform » de location dans le contexte actuel sur value.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, GLint value)

Définit la variable « uniform » de location dans le contexte actuel sur value.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix3x4 &value)

Définit la variable uniforme « name » dans le contexte actuel comme une matrice 3x4 value.

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat3x4`, présents dans les versions modernes d'OpenGL. Elle traite plutôt la variable uniforme comme un tableau de `vec4`.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix4x2 &value)

Définit la variable uniforme « name » dans le contexte actuel comme une matrice 4x2 value.

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat4x2`, présents dans les versions modernes d'OpenGL. Elle traite plutôt la variable uniforme comme un tableau de `vec2`.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix4x3 &value)

Définit la variable uniforme « name » dans le contexte courant comme une matrice 4x3 value.

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat4x3`, présents dans les versions modernes d'OpenGL. Elle traite plutôt l'uniform comme un tableau de `vec3`.

Il s'agit d'une fonction surchargée.

Voir également ` setAttributeValue()`.

void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix4x4 &value)

Définit la variable uniforme nommée « name » dans le contexte actuel comme étant la matrice 4x4 « value ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QPoint &point)

Définit la variable uniforme associée à name dans le contexte actuel sur les coordonnées x et y de point.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QPointF &point)

Définit la variable uniforme associée à name dans le contexte actuel sur les coordonnées x et y de point.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QSize &size)

Définit la variable « uniform » associée à ` name ` dans le contexte actuel sur la largeur et la hauteur de l'size` spécifié.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QSizeF &size)

Définit la variable « uniform » associée à name dans le contexte actuel sur la largeur et la hauteur de l'size donné.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QTransform &value)

Définit la variable uniforme « name » dans le contexte actuel sur une matrice de transformation 3x3 « value », spécifiée sous la forme d’une valeur de type « QTransform ».

Pour définir une valeur de ` QTransform ` sous la forme d’une matrice 4x4 dans un shader, utilisez ` setUniformValue(name, QMatrix4x4(value))`.

Il s'agit d'une fonction surchargée.

void QOpenGLShaderProgram::setUniformValue(const char *name, const QVector2D &value)

Définit la variable uniforme nommée « name » dans le contexte actuel sur « value ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QVector3D &value)

Définit la variable uniforme nommée « name » dans le contexte actuel sur « value ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QVector4D &value)

Définit la variable uniforme nommée « name » dans le contexte actuel sur « value ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const GLfloat[2][2] value)

Définit la variable uniforme « location » dans le contexte actuel comme une matrice 2x2 « value ». Les éléments de la matrice doivent être spécifiés selon l’ordre des colonnes.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const GLfloat[3][3] value)

Définit la variable uniforme « location » dans le contexte actuel comme une matrice 3x3 « value ». Les éléments de la matrice doivent être spécifiés dans l’ordre des colonnes.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const GLfloat[4][4] value)

Définit la variable uniforme location dans le contexte actuel comme une matrice 4x4 value. Les éléments de la matrice doivent être spécifiés dans l'ordre des colonnes.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, GLfloat x, GLfloat y)

Définit la variable uniforme nommée « name » dans le contexte actuel comme étant le vecteur 2D (x, y).

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z)

Définit la variable uniforme nommée « name » dans le contexte actuel sur le vecteur 3D (x, y, z).

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w)

Définit la variable uniforme « name » dans le contexte courant sur le vecteur 4D (x, y, z, w).

Il s’agit d’une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, GLuint value)

Définit la variable uniforme « location » dans le contexte actuel sur « value ». Cette fonction doit être utilisée lors de la définition des valeurs d'échantillonnage.

Remarque : cette fonction ne prend pas en charge le type `unsigned int` dans les versions modernes d’OpenGL ; elle traite donc ` value ` comme un `GLint` et appelle la fonction `glUniform1i`.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QColor &color)

Définit la variable « uniform » de location dans le contexte actuel sur les composantes rouge, verte, bleue et alpha de color.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix2x2 &value)

Définit la variable uniforme location dans le contexte actuel comme une matrice 2x2 value.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix2x3 &value)

Définit la variable uniforme « location » dans le contexte actuel comme une matrice 2x3 « value ».

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat2x3`, présents dans les versions modernes d'OpenGL. Elle traite plutôt la variable uniforme comme un tableau de `vec3`.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix2x4 &value)

Définit la variable uniforme « location » dans le contexte actuel comme une matrice 2x4 « value ».

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat2x4`, présents dans les versions modernes d'OpenGL. Elle traite plutôt la variable uniforme comme un tableau de `vec4`.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix3x2 &value)

Définit la variable uniforme « location » dans le contexte actuel comme une matrice 3x2 « value ».

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat3x2`, présents dans les versions modernes d’OpenGL. Elle traite plutôt la variable uniforme comme un tableau de `vec2`.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix3x3 &value)

Définit la variable uniforme location dans le contexte actuel comme une matrice 3x3 value.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix3x4 &value)

Définit la variable uniforme « location » dans le contexte actuel comme une matrice 3x4 de type « value ».

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat3x4`, présents dans les versions modernes d’OpenGL. Elle traite plutôt la variable uniforme comme un tableau de `vec4`.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix4x2 &value)

Définit la variable uniforme « location » dans le contexte courant comme une matrice 4x2 « value ».

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat4x2`, présents dans les versions récentes d'OpenGL. Elle traite plutôt l'uniform comme un tableau de `vec2`.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix4x3 &value)

Définit la variable uniforme « location » dans le contexte actuel comme une matrice 4x3 value.

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat4x3`, présents dans les versions modernes d'OpenGL. Elle traite plutôt la variable uniforme comme un tableau de `vec3`.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix4x4 &value)

Définit la variable uniforme location dans le contexte actuel comme une matrice 4x4 value.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QPoint &point)

Définit la variable uniforme location dans le contexte actuel sur les coordonnées x et y de point.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QPointF &point)

Définit la variable uniforme location dans le contexte actuel aux coordonnées x et y de point.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QSize &size)

Définit la variable « uniform » de location dans le contexte actuel sur la largeur et la hauteur de l'size spécifié.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QSizeF &size)

Définit la variable « uniform » de location dans le contexte actuel sur la largeur et la hauteur de l'size spécifiée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QTransform &value)

Définit la variable « uniform » « location » dans le contexte actuel sur une matrice de transformation 3x3 « value » spécifiée sous la forme d’une valeur « QTransform ».

Pour définir une valeur « QTransform » sous la forme d’une matrice 4x4 dans un shader, utilisez setUniformValue(location, QMatrix4x4(value)).

void QOpenGLShaderProgram::setUniformValue(int location, const QVector2D &value)

Définit la variable « uniform » de location dans le contexte actuel sur value.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QVector3D &value)

Définit la variable « uniform » de location dans le contexte actuel sur value.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, const QVector4D &value)

Définit la variable « uniform » de location dans le contexte actuel sur value.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, GLfloat x, GLfloat y)

Définit la variable « uniform » de location dans le contexte actuel sur le vecteur 2D (x, y).

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, GLfloat x, GLfloat y, GLfloat z)

Définit la variable uniforme « location » dans le contexte actuel sur le vecteur 3D (x, y, z).

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)

Définit la variable uniforme « location » dans le contexte actuel sur le vecteur 4D (x, y, z, w).

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, GLfloat value)

Définit la variable uniforme nommée « name » dans le contexte actuel sur « value ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, GLint value)

Définit la variable uniforme nommée « name » dans le contexte actuel sur « value ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, GLuint value)

Définit la variable uniforme nommée « name » dans le contexte actuel sur la valeur « value ». Cette fonction doit être utilisée lors de la définition des valeurs d'échantillonnage.

Remarque : cette fonction ne prend pas en charge le type `unsigned int` dans les versions récentes d'OpenGL ; elle traite donc ` value ` comme un `GLint` et appelle `glUniform1i`.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const GLfloat[2][2] value)

Définit la variable uniforme nommée « name » dans le contexte actuel comme étant une matrice 2x2 value. Les éléments de la matrice doivent être spécifiés dans l'ordre des colonnes.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const GLfloat[3][3] value)

Définit la variable uniforme nommée « name » dans le contexte actuel comme étant une matrice 3x3 value. Les éléments de la matrice doivent être spécifiés dans l'ordre des colonnes.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const GLfloat[4][4] value)

Définit la variable uniforme nommée « name » dans le contexte actuel comme une matrice 4x4 value. Les éléments de la matrice doivent être spécifiés selon l'ordre des colonnes.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QColor &color)

Définit la variable uniforme nommée « name » dans le contexte actuel sur les composantes rouge, verte, bleue et alpha de color.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix2x2 &value)

Définit la variable uniforme nommée « name » dans le contexte actuel comme étant une matrice 2×2 value.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix2x3 &value)

Définit la variable uniforme nommée « name » dans le contexte actuel comme une matrice 2x3 value.

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat2x3`, présents dans les versions modernes d'OpenGL. Elle traite plutôt la variable uniforme comme un tableau de `vec3`.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix2x4 &value)

Définit la variable uniforme nommée « name » dans le contexte actuel comme une matrice 2x4 value.

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat2x4`, présents dans les versions modernes d'OpenGL. Elle traite plutôt la variable uniforme comme un tableau de `vec4`.

Il s'agit d'une fonction surchargée.

Voir également ` setAttributeValue()`.

void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix3x2 &value)

Définit la variable uniforme nommée « name » dans le contexte actuel comme une matrice 3x2 value.

Remarque : cette fonction ne prend pas en charge les matrices non carrées, c'est-à-dire les types GLSL tels que `mat3x2`, présents dans les versions modernes d'OpenGL. Elle traite plutôt la variable uniforme comme un tableau de `vec2`.

Il s’agit d’une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix3x3 &value)

Définit la variable uniforme nommée « name » dans le contexte actuel comme étant une matrice 3x3 value.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const GLint *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel avec les éléments count de values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const GLuint *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel avec les éléments count de values. Cette surcharge doit être utilisée pour définir un tableau de valeurs d'échantillonnage.

Remarque : cette fonction ne prend pas en charge le type unsigned int dans les versions modernes d’OpenGL ; elle traite donc values comme un GLint et appelle glUniform1iv.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix2x2 *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel sur les éléments d'une matrice 2x2 de type « count » de la matrice values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix2x3 *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel sur les éléments d'une matrice 2x3 de type « count » provenant de values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix2x4 *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel sur les éléments d'une matrice 2x4 de type « count » de la fonction values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix3x2 *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel avec les éléments de la matrice 3x2 count de values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix3x3 *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel avec les éléments d'une matrice 3x3 de type « count » issus de values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix3x4 *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte courant avec les éléments d'une matrice 3x4 de type count issus de values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix4x2 *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel avec les éléments de la matrice 4x2 count de values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix4x3 *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel avec les éléments d'une matrice 4x3 de type « count » provenant de values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix4x4 *values, int count)

Définit le tableau de variables uniformes à l'adresse location dans le contexte actuel sur les éléments de la matrice 4x4 count de values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QVector2D *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel avec les éléments du vecteur 2D count de values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QVector3D *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel sur les éléments du vecteur 3D count de values.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const QVector4D *values, int count)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte courant avec les éléments du vecteur 4D count de values.

Voir aussi setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(int location, const GLfloat *values, int count, int tupleSize)

Définit le tableau de variables uniformes situé à l'adresse location dans le contexte actuel avec les éléments count de values. Chaque élément comporte tupleSize composantes. La valeur de tupleSize doit être 1, 2, 3 ou 4.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const GLint *values, int count)

Définit le tableau de variables uniformes nommé « name » dans le contexte actuel avec les éléments « count » de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const GLuint *values, int count)

Définit le tableau de variables uniformes nommé « name » dans le contexte actuel avec les éléments « count » de « values ». Cette surcharge doit être utilisée pour définir un tableau de valeurs d'échantillonneur.

Il s’agit d’une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix2x2 *values, int count)

Définit le tableau de variables uniformes appelé « name » dans le contexte actuel avec les éléments d'une matrice 2x2 de type « count » issus de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix2x3 *values, int count)

Définit le tableau de variables uniformes nommé « name » dans le contexte actuel avec les éléments d'une matrice 2x3 de type « count » issus de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix2x4 *values, int count)

Définit le tableau de variables uniformes nommé « name » dans le contexte actuel en lui attribuant les éléments de la matrice 2×4 « count » de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix3x2 *values, int count)

Définit le tableau de variables uniformes nommé « name » dans le contexte actuel avec les éléments de la matrice 3x2 « count » de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix3x3 *values, int count)

Définit le tableau de variables uniformes nommé « name » dans le contexte courant avec les éléments d'une matrice 3x3 de type « count » issus de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix3x4 *values, int count)

Définit le tableau de variables uniformes appelé « name » dans le contexte actuel avec les éléments de la matrice 3x4 « count » de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix4x2 *values, int count)

Définit le tableau de variables uniformes nommé « name » dans le contexte actuel en lui attribuant les éléments de la matrice 4×2 « count » de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix4x3 *values, int count)

Définit le tableau de variables uniformes appelé « name » dans le contexte actuel en lui attribuant les éléments de la matrice 4x3 count de la matrice values.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix4x4 *values, int count)

Définit le tableau de variables uniformes appelé « name » dans le contexte actuel avec les éléments de la matrice 4×4 « count » de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QVector2D *values, int count)

Définit le tableau de variables uniformes nommé « name » dans le contexte actuel avec les éléments du vecteur 2D « count » de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QVector3D *values, int count)

Définit le tableau de variables uniformes appelé « name » dans le contexte actuel avec les éléments du vecteur 3D « count » de « values ».

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QVector4D *values, int count)

Définit le tableau de variables uniformes nommé « name » dans le contexte courant avec les éléments du vecteur 4D « count » de « values ».

Il s’agit d’une fonction surchargée.

Voir aussi setAttributeValue().

void QOpenGLShaderProgram::setUniformValueArray(const char *name, const GLfloat *values, int count, int tupleSize)

Définit le tableau de variables uniformes nommé « name » dans le contexte actuel avec les éléments « count » de « values ». Chaque élément comporte « tupleSize » composantes. « tupleSize » doit être égal à 1, 2, 3 ou 4.

Il s'agit d'une fonction surchargée.

Voir également setAttributeValue().

QList<QOpenGLShader *> QOpenGLShaderProgram::shaders() const

Renvoie une liste de tous les shaders qui ont été ajoutés à ce programme de shader à l'aide de la fonction addShader().

Voir également addShader() et removeShader().

int QOpenGLShaderProgram::uniformLocation(const char *name) const

Renvoie l'emplacement de la variable uniforme name dans la liste des paramètres de ce programme de shader. Renvoie -1 si name n'est pas une variable uniforme valide pour ce programme de shader.

Voir également attributeLocation().

int QOpenGLShaderProgram::uniformLocation(const QByteArray &name) const

Renvoie l'emplacement de la variable uniforme name dans la liste des paramètres de ce programme de shader. Renvoie -1 si name n'est pas une variable uniforme valide pour ce programme de shader.

Il s'agit d'une fonction surchargée.

Voir également attributeLocation().

int QOpenGLShaderProgram::uniformLocation(const QString &name) const

Renvoie l'emplacement de la variable uniforme name dans la liste des paramètres de ce programme de shader. Renvoie -1 si name n'est pas une variable uniforme valide pour ce programme de shader.

Il s'agit d'une fonction surchargée.

Voir également attributeLocation().

© 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.