QSGMaterialShader::RenderState Class
class QSGMaterialShader::RenderStateEncapsule l'état actuel du rendu lors d'un appel à QSGMaterialShader::updateUniformData() et aux autres fonctions de type update. Plus d'informations...
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 d'accesseurs que le shader doit respecter afin de se conformer à l'état actuel du graphe de scène.
Documentation des types de membres
enum RenderState::DirtyState
flags RenderState::DirtyStates
| Constante | Valeur | Description |
|---|---|---|
QSGMaterialShader::RenderState::DirtyMatrix | 0x0001 | Utilisé 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 | Indique que l'état du matériau mis en cache a changé et doit être mis à jour. |
QSGMaterialShader::RenderState::DirtyAll | 0xFFFF | Indique que tout doit être mis à jour. |
Le type DirtyStates est un typedef pour QFlags<DirtyState>. Il stocke une combinaison OR de valeurs DirtyState.
Documentation des fonctions membres
QMatrix4x4 RenderState::combinedMatrix() const
Renvoie la matrice combinée de la matrice de la vue du modèle et de la matrice du projet.
float RenderState::determinant() const
Renvoie le déterminant de la vue du modèle à 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 de la surface sur laquelle le rendu est effectué
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 dirtyStates() contient l'état de la matrice sale, sinon renvoie false.
bool RenderState::isOpacityDirty() const
Renvoie true si dirtyStates() contient l'état d'opacité sale, sinon renvoie false.
QMatrix4x4 RenderState::modelViewMatrix() const
Renvoie la matrice de vue du modèle.
Si l'option RequiresFullMatrix est activée pour le matériau, il est garanti qu'il s'agit de la matrice de transformation complète calculée à partir du graphe de scène.
Cependant, si cette option n'est pas activée, le moteur de rendu peut choisir de modifier cette matrice. Par exemple, il peut pré-transformer les sommets sur l'unité centrale et définir cette matrice comme étant une matrice d'identité.
Dans une situation telle que celle décrite ci-dessus, 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 l'accesseur 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 QSGMaterialShader::updateSampledImage() pour mettre en file d'attente les mises à jour du contenu des images de texture.
QRhi *RenderState::rhi()
Renvoie l'adresse actuelle QRhi.
QByteArray *RenderState::uniformData()
Renvoie un pointeur sur les données du tampon uniforme (constant) dans le shader. Les données uniformes ne doivent être mises à jour qu'à partir de QSGMaterialShader::updateUniformData(). La valeur de retour est nulle dans les autres fonctions réimplémentables, telles que QSGMaterialShader::updateSampledImage().
Note : Il est fortement recommandé de déclarer le bloc uniforme avec std140 dans le shader, et d'étudier attentivement la disposition standard du bloc uniforme comme décrit 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 endroit dans QByteArray, en tenant compte des exigences d'alignement. Le code des shaders traduit dans d'autres langages d'ombrage doit utiliser les mêmes décalages pour les membres du bloc, même si le langage cible utilise par défaut des règles d'empaquetage différentes.
Remarque : évitez de copier des 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 uniforme GLSL correspondent.
QRect RenderState::viewportRect() const
Renvoie le rectangle de visualisation de la surface sur laquelle le rendu est effectué.
© 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.