QSGMaterialShader::RenderState Class
class QSGMaterialShader::RenderStateEncapsule l'état de rendu actuel lors d'un appel à la fonction ` QSGMaterialShader::updateUniformData()` et aux autres fonctions de type ` update `. En savoir plus...
Types publics
| enum | DirtyState { DirtyMatrix, DirtyOpacity, DirtyCachedMaterialData, DirtyAll } |
| flags | DirtyStates |
Fonctions publiques
| QMatrix4x4 | combinedMatrix() const |
| float | determinant() const |
| float | devicePixelRatio() const |
| QRect | deviceRect() const |
| QSGMaterialShader::RenderState::DirtyStates | dirtyStates() const |
| bool | isMatrixDirty() const |
| bool | isOpacityDirty() const |
| QMatrix4x4 | modelViewMatrix() const |
| float | opacity() const |
| QMatrix4x4 | projectionMatrix() const |
| QRhiResourceUpdateBatch * | resourceUpdateBatch() |
| QRhi * | rhi() |
| QByteArray * | uniformData() |
| QRect | viewportRect() const |
Description détaillée
L'état de rendu contient un certain nombre de méthodes d'accès que le shader doit respecter afin de se conformer à l'état actuel de l'arbre de scène.
Documentation sur les types de membres
enum RenderState::DirtyState
flags RenderState::DirtyStates
| Constante | Valeur | Description |
|---|---|---|
QSGMaterialShader::RenderState::DirtyMatrix | 0x0001 | Utilisée pour indiquer que la matrice a changé et doit être mise à jour. |
QSGMaterialShader::RenderState::DirtyOpacity | 0x0002 | Utilisé pour indiquer que l'opacité a changé et doit être mise à jour. |
QSGMaterialShader::RenderState::DirtyCachedMaterialData | 0x0004 | Utilisé pour indiquer que l'état du matériau mis en cache a changé et doit être mis à jour. |
QSGMaterialShader::RenderState::DirtyAll | 0xFFFF | Utilisé pour indiquer que tout doit être mis à jour. |
Le type DirtyStates est une définition de type (typedef) pour QFlags<DirtyState>. Il stocke une combinaison (OU) de valeurs DirtyState.
Documentation des fonctions membres
QMatrix4x4 RenderState::combinedMatrix() const
Renvoie la matrice combinée de la matrice « modelview » et de la matrice du projet.
float RenderState::determinant() const
Renvoie le déterminant ModelView à utiliser pour le rendu.
float RenderState::devicePixelRatio() const
Renvoie le rapport entre les pixels physiques et les pixels indépendants du périphérique à utiliser pour le rendu.
QRect RenderState::deviceRect() const
Renvoie le rectangle de l'appareil correspondant à la surface en cours de rendu vers
QSGMaterialShader::RenderState::DirtyStates RenderState::dirtyStates() const
Renvoie les états de rendu qui ont changé et qui doivent être mis à jour pour que la géométrie rendue avec ce matériau soit conforme à l'état de rendu actuel.
bool RenderState::isMatrixDirty() const
Renvoie ` true ` si la fonction ` dirtyStates()` contient l'état de la matrice modifiée ; sinon, renvoie ` false`.
bool RenderState::isOpacityDirty() const
Renvoie « true » si la fonction ` dirtyStates()` contient l’état d’opacité « dirty », sinon elle renvoie « false ».
QMatrix4x4 RenderState::modelViewMatrix() const
Renvoie la matrice de vue du modèle.
Si l'indicateur RequiresFullMatrix est activé pour le matériau, il est garanti que cette matrice correspond à la matrice de transformation complète calculée à partir de l'arbre de scène.
Cependant, si cet indicateur n’est pas activé, le moteur de rendu peut choisir de modifier cette matrice. Par exemple, il peut pré-transformer les sommets sur le processeur et définir cette matrice comme étant l’identité.
Dans un cas comme celui-ci, il est toujours possible de récupérer le déterminant réel de la matrice en activant l'indicateur `RequiresDeterminant` dans le matériau et en appelant la méthode d'accès ` determinant()`.
float RenderState::opacity() const
Renvoie l'opacité cumulée à utiliser pour le rendu.
QMatrix4x4 RenderState::projectionMatrix() const
Renvoie la matrice de projection.
QRhiResourceUpdateBatch *RenderState::resourceUpdateBatch()
Renvoie un lot de mise à jour de ressources dans lequel les opérations de téléchargement et de copie peuvent être mises en file d'attente. Cette fonction est généralement utilisée par la méthode QSGMaterialShader::updateSampledImage() pour mettre en file d'attente les mises à jour du contenu des textures.
QRhi *RenderState::rhi()
Renvoie l'QRhi ion actuelle.
QByteArray *RenderState::uniformData()
Renvoie un pointeur vers les données du tampon uniforme (constant) dans le shader. Les données uniformes ne doivent être mises à jour qu’à partir de la fonction ` QSGMaterialShader::updateUniformData()`. La valeur de retour est nulle dans les autres fonctions réimplémentables, telles que ` QSGMaterialShader::updateSampledImage()`.
Remarque : il est fortement recommandé de déclarer le bloc uniform à l’aide de ` std140 ()` dans le shader, et d’étudier attentivement la structure standard du bloc uniform telle que décrite dans la section 7.6.2.2 de la spécification OpenGL. Il appartient à l’implémentation de ` QSGMaterialShader ` de s’assurer que les données sont placées au bon emplacement dans cette structure ` QByteArray`, en tenant compte des exigences d’alignement. Le code de shader traduit vers d’autres langages de shading doit utiliser les mêmes décalages pour les membres du bloc, même lorsque le langage cible utilise par défaut des règles de regroupement différentes.
Remarque : évitez de copier à partir de types POD C++, tels que les structures, afin de mettre à jour plusieurs membres à la fois, à moins qu’il n’ait été vérifié que les dispositions de la structure C++ et du bloc « uniform » GLSL correspondent.
QRect RenderState::viewportRect() const
Renvoie le rectangle de la fenêtre d'affichage de la surface en cours de rendu.
© 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.