Sur cette page

QOpenGLShaderProgram Class

La classe QOpenGLShaderProgram permet de lier et d'utiliser des programmes de shaders OpenGL. Plus d'informations...

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

Fonctions publiques

QOpenGLShaderProgram(QObject *parent = nullptr)
virtuelles ~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 *nom) const
int attributeLocation(const QByteArray &nom) const
int attributeLocation(const QString &nom) const
bool bind()
void bindAttributeLocation(const char *nom, int emplacement)
void (const char *nom, int emplacement) bindAttributeLocation(const QByteArray &nom, int emplacement)
void bindAttributeLocation(const QString &nom, int emplacement)
bool create()
QList<float> defaultInnerTessellationLevels() const
QList<float> defaultOuterTessellationLevels() const
void disableAttributeArray(int location)
void disableAttributeArray(const char *nom)
void (int location) enableAttributeArray(int location)
void (const char *nom) enableAttributeArray(const char *nom)
bool isLinked() const
bool virtuel 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 (int location, const QVector3D *values, int stride = 0) setAttributeArray(int location, const QVector4D *values, int stride = 0)
void (int location, const QVector4D *values, int stride = 0) setAttributeArray(int location, const GLfloat *values, int tupleSize, int stride = 0)
void setAttributeArray(int location, GLenum type, const void *values, int tupleSize, int stride = 0)
void setAttributeArray(const char *nom, const QVector2D *valeurs, 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 *nom, const GLfloat *valeurs, int tupleSize, int stride = 0)
void setAttributeArray(const char *name, GLenum type, const void *values, int tupleSize, int stride = 0)
void setAttributeBuffer(int location, GLenum type, int offset, int tupleSize, int stride = 0)
void setAttributeBuffer(const char *name, GLenum type, int offset, int tupleSize, int stride = 0)
void setAttributeValue(int location, GLfloat value)
void setAttributeValue(int location, const QColor &value)
void (int location, const QColor &value) setAttributeValue(int emplacement, const QVector2D &valeur)
void (int location, const QColor &value) setAttributeValue(int location, const QVector3D &value)
void (int location, const QVector2D &value) setAttributeValue(int emplacement, const QVector4D &valeur)
void (int location, GLfloat &value) setAttributeValue(int location, GLfloat x, GLfloat y)
void (int location, GLfloat x, GLfloat y) setAttributeValue(int emplacement, GLfloat x, GLfloat y, GLfloat z)
void setAttributeValue(int location, const GLfloat *values, int columns, int rows)
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 (const char *name, const QColor &value) setAttributeValue(const char *nom, const QVector2D &valeur)
void (const char *name, const QVector2D &value) setAttributeValue(const char *nom, const QVector3D &valeur)
void (const char *name, const QVector3D &value) setAttributeValue(const char *nom, const QVector4D &valeur)
void (const char *nom, const QVector4D &valeur) setAttributeValue(const char *nom, GLfloat x, GLfloat y)
void (const char *name, GLfloat x, GLfloat y) setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z)
void setAttributeValue(const char *nom, const GLfloat *valeurs, int colonnes, int lignes)
void setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
void setDefaultInnerTessellationLevels(const QList<float> &levels)
void setDefaultOuterTessellationLevels(const QList<float> &niveaux)
void setPatchVertexCount(int count)
void (int location, GLfloat value) setUniformValue(int location, GLfloat value)
void (int location, GLfloat value) setUniformValue( emplacement int, valeur GLint)
void (const char *nom, const QMatrix3x4 &valeur) setUniformValue(const char *nom, const QMatrix3x4 &valeur)
void (const char *name, const QMatrix3x4 &value) setUniformValue(const char *nom, const QMatrix4x2 &valeur)
void (const char *nom, const QMatrix4x2 &valeur) setUniformValue(const char *nom, const QMatrix4x3 &valeur)
void (const char *nom, const QMatrix4x3 &valeur) setUniformValue(const char *nom, const QMatrix4x4 &valeur)
void (const char *nom, const QMatrix4x4 &valeur) setUniformValue(const char *nom, const QPoint &point)
void (const char *nom, const QPoint &point) setUniformValue(const char *nom, const QPointF &point)
void (const char *name, const QPointF &point) setUniformValue(const char *nom, const QSize &size)
void (const char *nom, const QSize &size) setUniformValue(const char *nom, const QSizeF &size)
void (const char *name, const QSizeF &size) setUniformValue(const char *nom, const QTransform &valeur)
void (const char *nom, const QTransform &valeur) setUniformValue(const char *nom, const QVector2D &valeur)
void (const char *nom, const QVector2D &valeur) setUniformValue(const char *nom, const QVector3D &valeur)
void (const char *name, const QVector3D &value) setUniformValue(const char *nom, const QVector4D &valeur)
void setUniformValue(int location, const GLfloat[2][2] value)
void (int location, const GLfloat[2][2] value) setUniformValue(int location, const GLfloat[3][3] value)
void (int location, const GLfloat[2][2] value) setUniformValue(int location, const GLfloat[4][4] value)
void (const char *nom, GLfloat[4][4] valeur) setUniformValue(const char *nom, GLfloat x, GLfloat y)
void setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z)
void setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
void setUniformValue(int location, GLuint value)
void setUniformValue(int emplacement, const QColor &color)
void (int location, const QColor &color) setUniformValue( emplacement int, const QMatrix2x2 &valeur)
void (int location, const QMatrix2x2 &value) setUniformValue(int location, const QMatrix2x3 &value)
void (int location, const QMatrix2x2 &value) setUniformValue(int location, const QMatrix2x4 &value)
void (int location, const QMatrix2x4 &value) setUniformValue(int location, const QMatrix3x2 &value)
void (int location, const QMatrix3x2 &value) setUniformValue(int location, const QMatrix3x3 &value)
void (int location, const QMatrix3x3 &value) setUniformValue(int location, const QMatrix3x4 &value)
void (int location, const QMatrix3x4 &value) setUniformValue(int location, const QMatrix4x2 &value)
void (int location, const QMatrix4x2 &value) setUniformValue(int location, const QMatrix4x3 &value)
void (int location, const QMatrix4x3 &value) setUniformValue(int location, const QMatrix4x4 &value)
void (int location, const QMatrix4x4 &value) setUniformValue(int location, const QPoint &point)
void (int location, const QPoint &point) setUniformValue(int emplacement, const QPointF &point)
void (int location, const QPoint &point) void (int location, const QPointF &point) setUniformValue( emplacement int, const QSize &size)
void (int location, const QSizeF &size) setUniformValue(int emplacement, const QSizeF &size)
void (int location, const QSize &size) setUniformValue(int location, const QTransform &value)
void (int location, const QTransform &value) setUniformValue( emplacement int, const QVector2D &valeur)
void (int location, const QVector2D &value) setUniformValue( emplacement int, const QVector3D &valeur)
void (int location, const QVector2D &value) setUniformValue(int emplacement, const QVector4D &valeur)
void (int location, GLfloat &value) setUniformValue(int location, GLfloat x, GLfloat y)
void (int location, GLfloat x, GLfloat y) setUniformValue(int emplacement, GLfloat x, GLfloat y, GLfloat z)
void (int location, GLfloat x, GLfloat y, GLfloat z) setUniformValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
void setUniformValue(const char *nom, GLfloat valeur)
void setUniformValue(const char *nom, GLint valeur)
void (const char *name, GLint value) setUniformValue(const char *nom, GLuint valeur)
void (const char *name, const GLfloat[2][2][2]) setUniformValue(const char *nom, const GLfloat[2][2] valeur)
void (const char *name, const GLfloat[2][2] value) setUniformValue(const char *nom, const GLfloat[3][3] valeur)
void (const char *nom, const GLfloat[3][3] valeur) setUniformValue(const char *nom, const GLfloat[4][4] valeur)
void (const char *name, const QCfloat[3][3] value) setUniformValue(const char *nom, const QColor &color)
void (const char *nom, const QColor &color) setUniformValue(const char *nom, const QMatrix2x2 &valeur)
void (const char *nom, const QMatrix2x2 &valeur) setUniformValue(const char *nom, const QMatrix2x3 &valeur)
void (const char *nom, const QMatrix2x2 &valeur) setUniformValue(const char *nom, const QMatrix2x4 &valeur)
void (const char *nom, const QMatrix2x4 &valeur) setUniformValue(const char *nom, const QMatrix3x2 &valeur)
void (const char *nom, const QMatrix3x2 &valeur) setUniformValue(const char *nom, const QMatrix3x3 &valeur)
void setUniformValueArray(int location, const GLint *values, int count)
void (int location, const GLint *values, int count) setUniformValueArray(int location, const GLuint *values, int count)
void (int location, const GLint *values, int count) setUniformValueArray(int location, const QMatrix2x2 *values, int count)
void setUniformValueArray(int location, const QMatrix2x3 *values, int count)
void (int location, const QMatrix2x4 *values, int count) setUniformValueArray(int location, const QMatrix2x4 *values, int count)
void (int location, const QMatrix2x3 *values, int count) setUniformValueArray(int location, const QMatrix3x2 *values, int count)
void (int location, const QMatrix3x2 *values, int count) setUniformValueArray(int location, const QMatrix3x3 *values, int count)
void (int location, const QMatrix3x3 *values, int count) setUniformValueArray(int location, const QMatrix3x4 *values, int count)
void (int location, const QMatrix3x3 *values, int count) setUniformValueArray(int location, const QMatrix4x2 *values, int count)
void (int location, const QMatrix4x2 *values, int count) setUniformValueArray(int location, const QMatrix4x3 *values, int count)
void (int location, const QMatrix4x2 *values, int count) setUniformValueArray(int location, const QMatrix4x4 *values, int count)
void (int location, const QMatrix4x4 *values, int count) setUniformValueArray(int location, const QVector2D *values, int count)
void (int location, const QVector2D *values, int count) setUniformValueArray(int location, const QVector3D *values, int count)
void (int location, const QVector3D *values, int count) setUniformValueArray(int location, const QVector4D *values, int count)
void (int location, const QVector4D *values, int count) setUniformValueArray(int location, const GLfloat *values, int count, int tupleSize)
void setUniformValueArray(const char *nom, const GLint *valeurs, int count)
void (const char *name, const GLint *values, int count, int tupleSize) setUniformValueArray(const char *nom, const GLuint *valeurs, int count)
void (const char *nom, const GLint *valeurs, int count) setUniformValueArray(const char *nom, const QMatrix2x2 *valeurs, int count)
void (const char *nom, const QMatrix2 *valeurs, int count) setUniformValueArray(const char *name, const QMatrix2x3 *values, int count)
void (const char *nom, const QMatrix2x2 *valeurs, int count) setUniformValueArray(const char *nom, const QMatrix2x4 *valeurs, int count)
void (const char *nom, const QMatrix2x4 *valeurs, int count) setUniformValueArray(const char *name, const QMatrix3x2 *values, int count)
void (const char *nom, const QMatrix3x2 *valeurs, int count) setUniformValueArray(const char *name, const QMatrix3x3 *values, int count)
void (const char *nom, const QMatrix3x3 *valeurs, int count) setUniformValueArray(const char *nom, const QMatrix3x4 *valeurs, int count)
void (const char *nom, const QMatrix3x3 *valeurs, int count) setUniformValueArray(const char *name, const QMatrix4x2 *values, int count)
void (const char *nom, const QMatrix4x2 *valeurs, int count) setUniformValueArray(const char *name, const QMatrix4x3 *values, int count)
void (const char *nom, const QMatrix4x3 *valeurs, int count) setUniformValueArray(const char *name, const QMatrix4x4 *values, int count)
void (const char *nom, const QMatrix4x4 *valeurs, int count) setUniformValueArray(const char *nom, const QVector2D *valeurs, int count)
void (const char *nom, const QVector2D *valeurs, int count) setUniformValueArray(const char *nom, const QVector3D *valeurs, int count)
void (const char *nom, const QVector3D *valeurs, int count) setUniformValueArray(const char *name, const QVector4D *values, int count)
void (const char *nom, const QVector4D *valeurs, int count) setUniformValueArray(const char *name, const GLfloat *values, int count, int tupleSize)
QList<QOpenGLShader *> shaders() const
int uniformLocation(const char *nom) const
int uniformLocation(const QByteArray &nom) const
int uniformLocation(const QString &nom) const

Membres publics statiques

bool hasOpenGLShaderPrograms(QOpenGLContext *context = nullptr)

Description détaillée

Introduction

Cette classe supporte les programmes de shaders écrits dans le langage d'ombrage OpenGL (GLSL) et dans le langage d'ombrage OpenGL/ES (GLSL/ES).

QOpenGLShader Les classes QOpenGLShaderProgram et QOpenGLShaderProgram mettent le programmeur à l'abri des détails de la compilation et de la liaison des vertex et des fragment shaders.

L'exemple suivant crée un programme de nuanceur de vertex en utilisant la source fournie code. Une fois compilé et lié, le programme de nuanceur est activé dans l'application courante QOpenGLContext en appelant QOpenGLShaderProgram::bind() :

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

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

program.bind();

Écrire des nuanceurs portables

Les programmes de shaders peuvent être difficiles à réutiliser d'une implémentation OpenGL à l'autre à cause des différents niveaux de support pour les attributs de vertex standards et les variables uniformes. En particulier, GLSL/ES manque de toutes les variables standard qui sont présentes sur les systèmes OpenGL de bureau : gl_Vertex, gl_Normal, gl_Color, et ainsi de suite. Desktop OpenGL n'a pas les qualificatifs de variables highp, mediump, et lowp.

La classe QOpenGLShaderProgram facilite le processus d'écriture de shaders portables en préfixant tous les programmes de shaders avec les lignes suivantes sur l'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 un ordinateur de bureau.

Exemple de nuanceur simple

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 shader ci-dessus actif, 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 nuanceurs binaires peuvent être spécifiés en utilisant glShaderBinary() sur la valeur de retour de QOpenGLShader::shaderId(). L'instance QOpenGLShader contenant le binaire peut alors être ajoutée au programme de shaders avec addShader() et liée de la manière habituelle avec link().

Les programmes binaires peuvent être spécifiés en utilisant glProgramBinaryOES() sur la valeur de retour de programId(). L'application doit ensuite appeler link(), qui remarquera que le programme a déjà été spécifié et lié, ce qui permettra d'effectuer d'autres opérations sur le programme de nuanceurs. L'identifiant du programme de nuanceur peut être explicitement créé à 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, il faut utiliser addCacheableShaderFromSourceCode() et addCacheableShaderFromSourceFile(). Avec un contexte OpenGL ES 3.x ou le support de GL_ARB_get_program_binary, cela mettra en cache de manière transparente les binaires de programmes sous QStandardPaths::GenericCacheLocation ou QStandardPaths::CacheLocation. Lorsque le support n'est pas disponible, l'appel aux variantes de fonctions cachables est équivalent aux fonctions normales.

Note : Certains pilotes n'ont aucun format binaire disponible, même s'ils annoncent l'extension ou offrent OpenGL ES 3.0. Dans ce cas, le support binaire du programme sera désactivé.

Considérations de sécurité

Toutes les données consommées par QOpenGLShaderProgram sont censées être des contenus de confiance. Le code source des shaders est transmis, éventuellement après des modifications minimales, au compilateur de l'implémentation OpenGL sous-jacente, qui est une boîte noire du point de vue de Qt.

Avertissement : Il est conseillé aux développeurs d'applications d'examiner attentivement les implications potentielles avant de transmettre un contenu fourni par l'utilisateur à des fonctions telles que addShaderFromSourceFile().

Voir aussi QOpenGLShader.

Documentation sur les fonctions membres

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

Construit un nouveau programme de nuanceur et l'attache à parent. Le programme sera invalide jusqu'à ce que addShader() soit appelé.

Le programme de nuanceur sera associé à l'application courante QOpenGLContext.

Voir aussi addShader().

[virtual noexcept] QOpenGLShaderProgram::~QOpenGLShaderProgram()

Supprime ce programme d'ombrage.

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

Enregistre le shader de type et source 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, parce que link() peut potentiellement utiliser un binaire de programme à partir du cache de disque de shader de Qt. Cela conduit généralement à une augmentation significative des performances.

Retourne true si le shader a été enregistré ou, dans le cas non caché, compilé avec succès ; false s'il y a eu une 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 supporte pas les binaires de contexte, appeler cette fonction est équivalent à addShaderFromSourceCode().

Voir aussi addShaderFromSourceCode() et addCacheableShaderFromSourceFile().

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

Enregistre le shader de type et source 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, parce que link() peut potentiellement utiliser un binaire de programme à partir du cache de disque de shader de Qt. Cela conduit généralement à une augmentation significative des performances.

Retourne true si le shader a été enregistré ou, dans le cas non caché, compilé avec succès ; false s'il y a eu une 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 supporte pas les binaires de contexte, l'appel à cette fonction est équivalent à addShaderFromSourceCode().

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

Voir aussi addShaderFromSourceCode() et addCacheableShaderFromSourceFile().

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

Enregistre le shader de type et source 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, parce que link() peut potentiellement utiliser un binaire de programme à partir du cache de disque de shader de Qt. Cela conduit généralement à une augmentation significative des performances.

Lorsque le cache disque est désactivé, via Qt::AA_DisableShaderDiskCache par exemple, ou que le contexte OpenGL ne supporte pas les binaires de contexte, appeler cette fonction est équivalent à addShaderFromSourceCode().

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

Voir aussi addShaderFromSourceCode() et addCacheableShaderFromSourceFile().

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

Enregistre le shader de type et fileName dans ce programme. Contrairement à addShaderFromSourceFile(), cette fonction n'effectue pas de compilation. La compilation est reportée à link(), et peut ne pas avoir lieu du tout, parce que link() peut potentiellement utiliser un binaire de programme à partir du cache de disque de shader de Qt. Cela conduit généralement à une augmentation significative des performances.

Retourne 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, sans 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é, via Qt::AA_DisableShaderDiskCache par exemple, ou que le contexte OpenGL ne supporte pas les binaires de contexte, appeler cette fonction est équivalent à addShaderFromSourceFile().

Voir aussi addShaderFromSourceFile() et addCacheableShaderFromSourceCode().

bool QOpenGLShaderProgram::addShader(QOpenGLShader *shader)

Ajoute une version compilée de shader à ce programme de nuanceurs. Retourne true si le shader a pu être ajouté, ou false dans le cas contraire.

L'objet shader reste la propriété de l'appelant. Il ne sera pas supprimé lorsque l'instance QOpenGLShaderProgram sera supprimée. Cela permet à l'appelant d'ajouter le même nuanceur à plusieurs programmes de nuanceurs.

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

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

Compile source en tant que shader du programme type spécifié et l'ajoute à ce programme de shader. Retourne true si la compilation a réussi, false sinon. Les erreurs de compilation et les avertissements seront disponibles via log().

Cette fonction est destinée à être un raccourci pour ajouter rapidement des nuanceurs de sommets et de fragments à un programme de nuanceurs sans créer d'abord une instance de QOpenGLShader.

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

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

Compile source en tant que shader du programme type spécifié et l'ajoute à ce programme de shader. Retourne true si la compilation a réussi, false sinon. Les erreurs de compilation et les avertissements seront disponibles via log().

Cette fonction est destinée à être un raccourci pour ajouter rapidement des nuanceurs de sommets et de fragments à un programme de nuanceurs sans créer une instance de QOpenGLShader au préalable.

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

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

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

Compile source en tant que shader du programme type spécifié et l'ajoute à ce programme de shader. Retourne true si la compilation a réussi, false sinon. Les erreurs de compilation et les avertissements seront disponibles via log().

Cette fonction est destinée à être un raccourci pour ajouter rapidement des nuanceurs de sommets et de fragments à un programme de nuanceurs sans créer une instance de QOpenGLShader au préalable.

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

Voir aussi 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 du programme type spécifié et l'ajoute à ce programme de shader. Retourne true si la compilation a réussi, false sinon. Les erreurs de compilation et les avertissements seront disponibles via log().

Cette fonction est destinée à être un raccourci pour ajouter rapidement des nuanceurs de sommets et de fragments à un programme de nuanceurs sans créer d'abord une instance de QOpenGLShader.

Voir aussi 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 nuanceurs. Retourne -1 si name n'est pas un attribut valide pour ce programme de nuanceurs.

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 nuanceurs. Renvoie -1 si name n'est pas un attribut valide pour ce programme de nuanceur.

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 nuanceurs. Renvoie -1 si name n'est pas un attribut valide pour ce programme de nuanceur.

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

Voir également uniformLocation() et bindAttributeLocation().

bool QOpenGLShaderProgram::bind()

Lie ce programme de nuanceur à la page active QOpenGLContext et en fait le programme de nuanceur en cours. Tout programme de nuanceur précédemment lié est libéré. Cela équivaut à appeler glUseProgram() sur programId(). Retourne true si le programme a été lié avec succès, false dans le cas contraire. Si le programme de nuanceurs n'a pas encore été lié ou s'il doit être lié à nouveau, cette fonction appelle link().

Voir également link() et release().

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

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

Lorsque cette fonction est appelée après que le programme a été lié, le programme devra être lié à nouveau pour que le changement prenne effet.

Voir également attributeLocation().

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

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

Lorsque cette fonction est appelée après que le programme a été lié, le programme devra être lié à nouveau 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'attribut location spécifié. Cette fonction peut être appelée avant ou après l'enchaînement du programme. Tous les attributs qui n'ont pas été explicitement liés lors de l'enchaînement du programme se verront attribuer des emplacements automatiquement.

Lorsque cette fonction est appelée après que le programme a été lié, le programme devra être lié à nouveau pour que la modification prenne effet.

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

Voir également attributeLocation().

bool QOpenGLShaderProgram::create()

Demande que l'identifiant du programme d'ombrage soit créé immédiatement. Retourne true en cas de succès, false dans le cas contraire.

Cette fonction est principalement utile lorsque l'on combine QOpenGLShaderProgram avec d'autres fonctions OpenGL qui opèrent directement sur l'identifiant du programme de shaders, comme GL_OES_get_program_binary.

Lorsque le programme d'ombrage est utilisé normalement, l'identifiant du programme d'ombrage sera créé à la demande.

Voir aussi programId().

QList<float> QOpenGLShaderProgram::defaultInnerTessellationLevels() const

Renvoie les niveaux de tessellation internes par défaut à utiliser par le générateur de primitives de tessellation dans le cas où le shader de contrôle de tessellation ne les émet pas. Pour plus de détails sur OpenGL et les shaders de tessellation, voir OpenGL Tessellation Shaders.

Retourne un QList de valeurs flottantes décrivant les niveaux de tessellation internes. Le vecteur aura toujours deux éléments, mais tous n'ont pas de sens pour chaque mode de tessellation.

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

Note : Cette fonction n'est supportée qu'avec OpenGL >= 4.0 et ne retournera pas de résultats valides avec OpenGL ES 3.2.

Voir aussi setDefaultInnerTessellationLevels() et defaultOuterTessellationLevels().

QList<float> QOpenGLShaderProgram::defaultOuterTessellationLevels() const

Renvoie les niveaux de tessellation extérieurs par défaut à utiliser par le générateur de primitives de tessellation dans le cas où le shader de contrôle de tessellation ne les émet pas. Pour plus de détails sur OpenGL et les shaders de tessellation, voir OpenGL Tessellation Shaders.

Retourne un QList de valeurs flottantes décrivant les niveaux de tessellation extérieurs. Le vecteur aura toujours quatre éléments, mais tous n'ont pas de sens pour chaque mode de tessellation.

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

Note : Cette fonction n'est supportée qu'avec OpenGL >= 4.0 et ne retournera pas de résultats valides avec OpenGL ES 3.2.

Voir aussi setDefaultOuterTessellationLevels() et defaultInnerTessellationLevels().

void QOpenGLShaderProgram::disableAttributeArray(int location)

Désactive le tableau de vertex à location dans ce programme de nuanceur qui a été activé par un appel précédent à enableAttributeArray().

Voir aussi enableAttributeArray(), setAttributeArray(), setAttributeValue() et setUniformValue().

void QOpenGLShaderProgram::disableAttributeArray(const char *name)

Désactive le tableau de vertex appelé name dans ce programme de nuanceur qui a été activé par un appel précédent à enableAttributeArray().

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

Voir aussi enableAttributeArray(), setAttributeArray(), setAttributeValue() et setUniformValue().

void QOpenGLShaderProgram::enableAttributeArray(int location)

Active le tableau de vertex à location dans ce programme de nuanceur de manière à ce que la valeur définie par setAttributeArray() sur location soit utilisée par le programme de nuanceur.

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

void QOpenGLShaderProgram::enableAttributeArray(const char *name)

Active le tableau de vertex appelé name dans ce programme de nuanceur afin que la valeur définie par setAttributeArray() sur name soit utilisée par le programme de nuanceur.

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

Voir aussi disableAttributeArray(), setAttributeArray(), setAttributeValue() et setUniformValue().

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

Renvoie true si les programmes d'ombrage écrits dans le langage d'ombrage OpenGL (GLSL) sont pris en charge sur ce système ; faux dans le cas contraire.

Le site context est utilisé pour résoudre les extensions GLSL. Si context est nullptr, alors QOpenGLContext::currentContext() est utilisé.

bool QOpenGLShaderProgram::isLinked() const

Renvoie true si ce programme de nuanceur a été lié ; false sinon.

Voir aussi link().

Relie les shaders qui ont été ajoutés à ce programme avec addShader(). Retourne true si le lien a réussi ou false dans le cas contraire. Si le lien a échoué, les messages d'erreur peuvent être récupérés avec log().

Les sous-classes peuvent remplacer cette fonction pour initialiser les attributs et les variables uniformes à utiliser dans des programmes de nuanceurs spécifiques.

Si le programme de nuanceurs a déjà été lié, le fait d'appeler à nouveau cette fonction l'obligera à être lié à nouveau.

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 l'édition de liens sont ignorées. A la place, link() initialisera le programme avec le blob binaire via glProgramBinary(). S'il n'y a pas de version mise en cache du programme ou si elle a été générée avec une version de pilote différente, les shaders seront compilés à partir des sources et le programme sera lié normalement. Cela permet une mise à jour transparente des pilotes graphiques, sans avoir à se soucier de formats binaires potentiellement incompatibles.

Voir aussi addShader() et log().

QString QOpenGLShaderProgram::log() const

Renvoie les erreurs et les avertissements survenus lors du dernier link() ou addShader() avec le code source explicitement spécifié.

Voir aussi link().

int QOpenGLShaderProgram::maxGeometryOutputVertices() const

Renvoie la limite matérielle du nombre de sommets qu'un nuanceur géométrique peut produire.

int QOpenGLShaderProgram::patchVertexCount() const

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

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

Voir aussi setPatchVertexCount().

GLuint QOpenGLShaderProgram::programId() const

Renvoie l'identifiant OpenGL associé à ce programme d'ombrage.

Voir aussi QOpenGLShader::shaderId().

void QOpenGLShaderProgram::release()

Libère le programme de nuanceur actif sur le site QOpenGLContext. Cela équivaut à appeler glUseProgram(0).

Voir aussi bind().

void QOpenGLShaderProgram::removeAllShaders()

Supprime tous les shaders qui ont été ajoutés à ce programme précédemment. Les objets QOpenGLShader pour les shaders ne seront pas supprimés s'ils ont été construits en externe. Les objets QOpenGLShader qui sont construits en interne par QOpenGLShaderProgram seront supprimés.

Voir aussi addShader() et removeShader().

void QOpenGLShaderProgram::removeShader(QOpenGLShader *shader)

Supprime shader de ce programme d'ombrage. L'objet n'est pas supprimé.

Le programme de nuanceurs doit être valide dans la version actuelle de QOpenGLContext.

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

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

Définit un tableau de sommets 2D values sur l'attribut à location dans ce programme de nuanceur. La valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut stride de zéro indique que les sommets sont densément emballés dans values.

Le tableau sera activé lorsque enableAttributeArray() sera appelé 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, const QVector3D *values, int stride = 0)

Définit un tableau de vertex 3D values sur l'attribut à location dans ce programme d'ombrage. La valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut stride de zéro indique que les sommets sont densément emballés dans values.

Le tableau sera activé lorsque enableAttributeArray() sera appelé 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, const QVector4D *values, int stride = 0)

Définit un tableau de vertex 4D values sur l'attribut à location dans ce programme de nuanceur. La valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut stride de zéro indique que les sommets sont densément emballés dans values.

Le tableau sera activé lorsque enableAttributeArray() sera appelé 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, const GLfloat *values, int tupleSize, int stride = 0)

Définit un tableau de vertex values sur l'attribut à location dans ce programme de nuanceur. La valeur tupleSize indique le nombre de composants par sommet (1, 2, 3 ou 4) et la valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut de stride (zéro) indique que les sommets sont densément emballés dans values.

Le tableau devient actif lorsque enableAttributeArray() est appelé sur location. Sinon, la valeur spécifiée avec setAttributeValue() pour location est 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 de vertex values sur l'attribut à location dans ce programme de nuanceur. La valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut stride de zéro indique que les sommets sont densément emballés dans values.

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

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

La fonction setAttributeBuffer() peut être utilisée pour définir le tableau d'attributs à un décalage dans un tampon de vertex.

Remarque : la normalisation sera activée. Si vous ne le souhaitez pas, 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 de sommets 2D values sur l'attribut appelé name dans ce programme de nuanceur. La valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut stride de zéro indique que les sommets sont densément emballés dans values.

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

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

Voir aussi setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

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

Définit un tableau de vertex 3D values sur l'attribut appelé name dans ce programme de nuanceur. La valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut stride de zéro indique que les sommets sont densément emballés dans values.

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

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

Voir aussi setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

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

Définit un tableau de vertex 4D values sur l'attribut appelé name dans ce programme de nuanceur. La valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut stride de zéro indique que les sommets sont densément emballés dans values.

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

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

Voir aussi setAttributeValue(), setUniformValue(), enableAttributeArray() et disableAttributeArray().

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

Définit un tableau de vertex values sur l'attribut appelé name dans ce programme de nuanceur. La valeur tupleSize indique le nombre de composants par sommet (1, 2, 3 ou 4) et la valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut de stride (zéro) indique que les sommets sont densément emballés dans values.

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

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

Voir aussi 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 de sommets values sur l'attribut appelé name dans ce programme de nuanceur. La valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut stride de zéro indique que les sommets sont densément emballés dans values.

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

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

La fonction setAttributeBuffer() peut être utilisée pour définir le tableau d'attributs à un décalage dans un tampon de vertex.

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 vertex sur l'attribut à location dans ce programme de nuanceur, à partir d'un offset spécifique dans le tampon de vertex actuellement lié. La valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut stride de zéro indique que les sommets sont densément emballés dans le tableau de valeurs.

type indique le type d'éléments dans le tableau de valeurs des sommets, généralement GL_FLOAT, GL_UNSIGNED_BYTE, etc. tupleSize indique le nombre de composants par sommet : 1, 2, 3 ou 4.

Le tableau devient actif lorsque enableAttributeArray() est appelé sur location. Sinon, 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 glVertexAttribPointer directement 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 vertex sur l'attribut appelé name dans ce programme de nuanceur, à partir d'un offset spécifique dans le tampon de vertex actuellement lié. La valeur stride indique le nombre d'octets entre les sommets. La valeur par défaut stride de zéro indique que les sommets sont densément emballés dans le tableau de valeurs.

type indique le type d'éléments dans le tableau de valeurs des sommets, généralement GL_FLOAT, GL_UNSIGNED_BYTE, etc. tupleSize indique le nombre de composants par sommet : 1, 2, 3 ou 4.

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

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

Voir aussi setAttributeArray().

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

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

Voir aussi setUniformValue().

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

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

Voir aussi setUniformValue().

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

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

Voir aussi setUniformValue().

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

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

Voir aussi setUniformValue().

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

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

Voir aussi setUniformValue().

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

Définit l'attribut à location dans le contexte actuel au vecteur 2D (x, y).

Voir aussi setUniformValue().

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

Définit l'attribut à location dans le contexte actuel au vecteur 3D (x, y, z).

Voir aussi setUniformValue().

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

Définit l'attribut à location dans le contexte actuel au contenu de values, qui contient des éléments columns, chacun étant constitué d'éléments rows. La valeur de rows doit être 1, 2, 3 ou 4. Cette fonction est généralement utilisée pour définir les valeurs des matrices et des vecteurs de colonnes.

Voir aussi setUniformValue().

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

Définit l'attribut à location dans le contexte actuel au vecteur 4D (x, y, z, w).

Voir aussi setUniformValue().

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

Définit l'attribut appelé name dans le contexte actuel à value.

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

Voir aussi setUniformValue().

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

Définit l'attribut appelé name dans le contexte actuel à value.

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

Voir aussi setUniformValue().

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

Définit l'attribut appelé name dans le contexte actuel à value.

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

Voir aussi setUniformValue().

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

Définit l'attribut appelé name dans le contexte actuel à value.

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

Voir aussi setUniformValue().

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

Définit l'attribut appelé name dans le contexte actuel à value.

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

Voir aussi setUniformValue().

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

Définit l'attribut appelé name dans le contexte actuel au vecteur 2D (x, y).

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

Voir aussi setUniformValue().

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

Définit l'attribut appelé name dans le contexte actuel au vecteur 3D (x, y, z).

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

Voir aussi setUniformValue().

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

Définit l'attribut appelé name dans le contexte actuel au contenu de values, qui contient des éléments columns, chacun étant constitué d'éléments rows. La valeur de rows doit être 1, 2, 3 ou 4. Cette fonction est généralement utilisée pour définir les valeurs des matrices et les 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 appelé name dans le contexte actuel au vecteur 4D (x, y, z, w).

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

Voir aussi setUniformValue().

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

Définit les niveaux de tessellation extérieurs par défaut à utiliser par le générateur de primitives de tessellation dans le cas où le shader de contrôle de tessellation ne les transmet pas à levels. Pour plus de détails sur OpenGL et les shaders de tessellation, voir OpenGL Tessellation Shaders.

L'argument levels doit être un QList composé de 2 flottants. Toutes les valeurs n'ont pas de sens pour tous les modes de tessellation. Si vous spécifiez un vecteur avec moins de 2 éléments, les éléments restants recevront une valeur par défaut de 1.

Note : Ceci modifie l'état global d'OpenGL et n'est pas spécifique à cette instance QOpenGLShaderProgram. Vous devez l'appeler dans votre fonction de rendu lorsque c'est nécessaire, car QOpenGLShaderProgram ne l'appliquera pas pour vous. Il s'agit d'une fonction de commodité.

Note : Cette fonction n'est disponible qu'avec OpenGL >= 4.0 et n'est pas supportée avec OpenGL ES 3.2.

Voir aussi defaultInnerTessellationLevels() et setDefaultOuterTessellationLevels().

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

Définit les niveaux de tessellation extérieurs par défaut à utiliser par le générateur de primitives de tessellation dans le cas où le shader de contrôle de tessellation ne les transmet pas à levels. Pour plus de détails sur OpenGL et les shaders de tessellation, voir OpenGL Tessellation Shaders.

L'argument levels doit être un QList composé de 4 flottants. Toutes les valeurs n'ont pas de sens pour tous les modes de tessellation. Si vous spécifiez un vecteur avec moins de 4 éléments, les éléments restants recevront une valeur par défaut de 1.

Note : Ceci modifie l'état global d'OpenGL et n'est pas spécifique à cette instance QOpenGLShaderProgram. Vous devez l'appeler dans votre fonction de rendu lorsque c'est nécessaire, car QOpenGLShaderProgram ne l'appliquera pas pour vous. Il s'agit d'une fonction de commodité.

Note : Cette fonction n'est disponible qu'avec OpenGL >= 4.0 et n'est pas supportée avec OpenGL ES 3.2.

Voir aussi defaultOuterTessellationLevels() et setDefaultInnerTessellationLevels().

void QOpenGLShaderProgram::setPatchVertexCount(int count)

Utilisez cette fonction pour spécifier à OpenGL le nombre de vertices d'un patch à 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 à cette fonction n'a de sens que lors de l'utilisation d'un site QOpenGLShaderProgram contenant des shaders de tessellation. Lors de l'utilisation de la tessellation OpenGL, la seule primitive qui peut être rendue avec les fonctions glDraw*() est GL_PATCHES.

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

Note : Ceci modifie l'état global d'OpenGL et n'est pas spécifique à cette instance QOpenGLShaderProgram. Vous devez l'appeler dans votre fonction de rendu lorsque c'est nécessaire, car QOpenGLShaderProgram ne l'appliquera pas pour vous. Il s'agit d'une fonction de commodité.

Voir aussi patchVertexCount().

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

Définit la variable uniforme à location dans le contexte actuel à value.

Voir aussi setAttributeValue().

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

Définit la variable uniforme à location dans le contexte actuel à value.

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à une matrice 3x4 value.

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat3x4, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec4.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à une matrice 4x2 value.

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat4x2, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec2.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à une matrice 4x3 value.

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat4x3, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec3.

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

Voir aussi setAttributeValue().

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

Fixe la variable uniforme appelée name dans le contexte actuel à une matrice 4x4 value.

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

Voir aussi setAttributeValue().

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

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

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

Voir aussi setAttributeValue().

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

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

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

Voir aussi setAttributeValue().

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

Fixe la variable uniforme associée à name dans le contexte actuel à la largeur et à la hauteur de size.

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

Voir aussi setAttributeValue().

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

Fixe la variable uniforme associée à name dans le contexte actuel à la largeur et à la hauteur de size.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à une matrice de transformation 3x3 value qui est spécifiée comme une valeur QTransform.

Pour définir une valeur QTransform comme 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 appelée name dans le contexte actuel à value.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à value.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à value.

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

Voir aussi 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 dans l'ordre de la colonne majeure.

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

Voir aussi 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 de la colonne majeure.

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

Voir aussi 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 de la colonne majeure.

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

Voir aussi setAttributeValue().

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

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

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

Voir aussi setAttributeValue().

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

Fixe la variable uniforme appelée name dans le contexte actuel au vecteur 3D (x, y, z).

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel comme étant le vecteur 4D (x, y, z, w).

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme à location dans le contexte actuel à value. Cette fonction doit être utilisée pour définir les valeurs de l'échantillonneur.

Note : Cette fonction n'est pas consciente du support des unsigned int dans les versions modernes d'OpenGL et traite donc value comme un GLint et appelle glUniform1i.

Voir aussi setAttributeValue().

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

Définit la variable uniforme à location dans le contexte actuel aux composantes rouge, verte, bleue et alpha de color.

Voir aussi setAttributeValue().

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

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

Voir aussi setAttributeValue().

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

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

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat2x3, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec3.

Voir aussi setAttributeValue().

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

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

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat2x4, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec4.

Voir aussi setAttributeValue().

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

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

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat3x2, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec2.

Voir aussi setAttributeValue().

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

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

Voir aussi setAttributeValue().

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

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

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat3x4, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec4.

Voir aussi setAttributeValue().

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

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

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat4x2, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec2.

Voir aussi setAttributeValue().

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

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

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat4x3, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec3.

Voir aussi setAttributeValue().

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

Fixe la variable uniforme à location dans le contexte actuel à une matrice 4x4 value.

Voir aussi setAttributeValue().

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

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

Voir aussi 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 aussi setAttributeValue().

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

Fixe la variable uniforme à location dans le contexte actuel à la largeur et à la hauteur de size.

Voir aussi setAttributeValue().

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

Fixe la variable uniforme à location dans le contexte actuel à la largeur et à la hauteur de size.

Voir aussi setAttributeValue().

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

Définit la variable uniforme à location dans le contexte actuel à une matrice de transformation 3x3 value qui est spécifiée comme une valeur QTransform.

Pour définir une valeur QTransform comme une matrice 4x4 dans un shader, utilisez setUniformValue(location, QMatrix4x4(value)).

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

Définit la variable uniforme à location dans le contexte actuel à value.

Voir aussi setAttributeValue().

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

Définit la variable uniforme à location dans le contexte actuel à value.

Voir aussi setAttributeValue().

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

Définit la variable uniforme à location dans le contexte actuel à value.

Voir aussi setAttributeValue().

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

Définit la variable uniforme à location dans le contexte actuel au vecteur 2D (x, y).

Voir aussi setAttributeValue().

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

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme à location dans le contexte actuel comme étant le vecteur 4D (x, y, z, w).

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à value.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à value.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à value. Cette fonction doit être utilisée pour définir les valeurs de l'échantillonneur.

Note : Cette fonction n'est pas consciente du support des unsigned int dans les versions modernes d'OpenGL et traite donc value comme un GLint et appelle glUniform1i.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel comme une matrice 2x2 value. Les éléments de la matrice doivent être spécifiés dans l'ordre de la colonne majeure.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel comme une matrice 3x3 value. Les éléments de la matrice doivent être spécifiés dans l'ordre de la colonne majeure.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel comme une matrice 4x4 value. Les éléments de la matrice doivent être spécifiés dans l'ordre de la colonne majeure.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel aux composantes rouge, verte, bleue et alpha de color.

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

Voir aussi setAttributeValue().

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

Fixe la variable uniforme appelée name dans le contexte actuel à une matrice 2x2 value.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à une matrice 2x3 value.

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat2x3, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec3.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à une matrice 2x4 value.

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat2x4, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec4.

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

Voir aussi setAttributeValue().

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

Définit la variable uniforme appelée name dans le contexte actuel à une matrice 3x2 value.

Note : Cette fonction n'est pas consciente du support des matrices non carrées, c'est-à-dire des types GLSL comme mat3x2, qui sont présents dans les versions modernes d'OpenGL. Au lieu de cela, elle traite l'uniforme comme un tableau de vec2.

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

Voir aussi setAttributeValue().

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

Fixe la variable uniforme appelée name dans le contexte actuel à une matrice 3x3 value.

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

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes à location dans le contexte actuel aux éléments count de values.

Voir aussi setAttributeValue().

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

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

Note : Cette fonction n'est pas consciente du support des unsigned int dans les versions modernes d'OpenGL et traite donc values comme un GLint et appelle glUniform1iv.

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes à location dans le contexte actuel comme étant les éléments de la matrice count 2x2 de values.

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes à location dans le contexte actuel comme étant les éléments de la matrice count 2x3 de values.

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes à location dans le contexte actuel comme étant les éléments de la matrice count 2x4 de values.

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes à location dans le contexte actuel comme étant les éléments de la matrice count 3x2 de values.

Voir aussi setAttributeValue().

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

count Définit le tableau de variables uniformes à location dans le contexte actuel comme étant les éléments de la matrice 3x3 de values.

Voir aussi setAttributeValue().

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

count Définit le tableau de variables uniformes à location dans le contexte actuel comme étant les éléments de la matrice 3x4 de values.

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes à location dans le contexte actuel comme étant les éléments de la matrice count 4x2 de values.

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes à location dans le contexte actuel comme étant les éléments de la matrice count 4x3 de values.

Voir aussi setAttributeValue().

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

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

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes à location dans le contexte actuel à count éléments vectoriels 2D de values.

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes à location dans le contexte actuel à count éléments vectoriels 3D de values.

Voir aussi setAttributeValue().

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

count Définit le tableau de variables uniformes à location dans le contexte actuel comme étant les éléments vectoriels 4D de values.

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes à location dans le contexte actuel aux éléments count de values. Chaque élément a des composantes tupleSize. L'adresse tupleSize doit être 1, 2, 3 ou 4.

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes appelé name dans le contexte actuel aux éléments count de values.

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

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes appelé name dans le contexte actuel aux éléments count de values. Cette surcharge doit être utilisée pour définir un tableau de valeurs d'échantillonnage.

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

Voir aussi 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 comme étant les éléments de la matrice count 2x2 de values.

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

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes appelé name dans le contexte actuel comme étant les éléments de la matrice count 2x3 de values.

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

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes appelé name dans le contexte actuel comme étant les éléments de la matrice count 2x4 de values.

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

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes appelé name dans le contexte actuel comme étant les éléments de la matrice count 3x2 de values.

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

Voir aussi setAttributeValue().

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

count Définit le tableau de variables uniformes appelé name dans le contexte actuel comme étant les éléments de la matrice 3x3 de values.

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

Voir aussi 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 comme étant les éléments de la matrice count 3x4 de values.

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

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes appelé name dans le contexte actuel comme étant les éléments de la matrice count 4x2 de values.

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

Voir aussi 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 comme étant les éléments de la matrice count 4x3 de values.

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

Voir aussi 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 comme étant les éléments de la matrice count 4x4 de values.

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

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes appelé name dans le contexte actuel comme étant les éléments vectoriels 2D de count values .

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

Voir aussi 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 comme étant les éléments vectoriels 3D de count values .

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

Voir aussi setAttributeValue().

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

Définit le tableau de variables uniformes appelé name dans le contexte actuel aux éléments vectoriels 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 appelé name dans le contexte actuel aux éléments count de values. Chaque élément a des composantes tupleSize. L'adresse tupleSize doit être 1, 2, 3 ou 4.

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

Voir aussi setAttributeValue().

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

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

Voir aussi 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 nuanceur. Retourne -1 si name n'est pas une variable uniforme valide pour ce programme de nuanceur.

Voir aussi 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 nuanceur. Retourne -1 si name n'est pas une variable uniforme valide pour ce programme de nuanceur.

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 nuanceur. Retourne -1 si name n'est pas une variable uniforme valide pour ce programme de nuanceur.

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.