QRhiGraphicsPipeline Class
Ressource d'état du pipeline graphique. En savoir plus...
| En-tête : | #include <rhi/qrhi.h> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS GuiPrivate) target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate) |
| qmake : | QT += gui-private |
| Depuis : | Qt 6.6 |
| Hérite de : | QRhiResource |
Types publics
(since 6.6) struct | StencilOpState |
(since 6.6) struct | TargetBlend |
| enum | BlendFactor { Zero, One, SrcColor, OneMinusSrcColor, DstColor, …, OneMinusSrc1Alpha } |
| enum | BlendOp { Add, Subtract, ReverseSubtract, Min, Max } |
| flags | ColorMask |
| enum | ColorMaskComponent { R, G, B, A } |
| enum | CompareOp { Never, Less, Equal, LessOrEqual, Greater, …, Always } |
| enum | CullMode { None, Front, Back } |
| enum | Flag { UsesBlendConstants, UsesStencilRef, UsesScissor, CompileShadersWithDebugInfo, UsesShadingRate, UsesIndirectDraws } |
| flags | Flags |
| enum | FrontFace { CCW, CW } |
| enum | PolygonMode { Fill, Line } |
| enum | StencilOp { StencilZero, Keep, Replace, IncrementAndClamp, DecrementAndClamp, …, DecrementAndWrap } |
| enum | Topology { Triangles, TriangleStrip, TriangleFan, Lines, LineStrip, …, Patches } |
Fonctions publiques
| const QRhiShaderStage * | cbeginShaderStages() const |
| const QRhiGraphicsPipeline::TargetBlend * | cbeginTargetBlends() const |
| const QRhiShaderStage * | cendShaderStages() const |
| const QRhiGraphicsPipeline::TargetBlend * | cendTargetBlends() const |
| virtual bool | create() = 0 |
| QRhiGraphicsPipeline::CullMode | cullMode() const |
| int | depthBias() const |
| QRhiGraphicsPipeline::CompareOp | depthOp() const |
| QRhiGraphicsPipeline::Flags | flags() const |
| QRhiGraphicsPipeline::FrontFace | frontFace() const |
(since 6.11) bool | hasDepthClamp() const |
| bool | hasDepthTest() const |
| bool | hasDepthWrite() const |
| bool | hasStencilTest() const |
| float | lineWidth() const |
(since 6.7) int | multiViewCount() const |
| int | patchControlPointCount() const |
| QRhiGraphicsPipeline::PolygonMode | polygonMode() const |
| QRhiRenderPassDescriptor * | renderPassDescriptor() const |
| int | sampleCount() const |
| void | setCullMode(QRhiGraphicsPipeline::CullMode mode) |
| void | setDepthBias(int bias) |
(since 6.11) void | setDepthClamp(bool enable) |
| void | setDepthOp(QRhiGraphicsPipeline::CompareOp op) |
| void | setDepthTest(bool enable) |
| void | setDepthWrite(bool enable) |
| void | setFlags(QRhiGraphicsPipeline::Flags f) |
| void | setFrontFace(QRhiGraphicsPipeline::FrontFace f) |
| void | setLineWidth(float width) |
(since 6.7) void | setMultiViewCount(int count) |
| void | setPatchControlPointCount(int count) |
| void | setPolygonMode(QRhiGraphicsPipeline::PolygonMode mode) |
| void | setRenderPassDescriptor(QRhiRenderPassDescriptor *desc) |
| void | setSampleCount(int s) |
| void | setShaderResourceBindings(QRhiShaderResourceBindings *srb) |
| void | setShaderStages(std::initializer_list<QRhiShaderStage> list) |
| void | setShaderStages(InputIterator first, InputIterator last) |
| void | setSlopeScaledDepthBias(float bias) |
| void | setStencilBack(const QRhiGraphicsPipeline::StencilOpState &state) |
| void | setStencilFront(const QRhiGraphicsPipeline::StencilOpState &state) |
| void | setStencilReadMask(quint32 mask) |
| void | setStencilTest(bool enable) |
| void | setStencilWriteMask(quint32 mask) |
| void | setTargetBlends(std::initializer_list<QRhiGraphicsPipeline::TargetBlend> list) |
| void | setTargetBlends(InputIterator first, InputIterator last) |
| void | setTopology(QRhiGraphicsPipeline::Topology t) |
| void | setVertexInputLayout(const QRhiVertexInputLayout &layout) |
| QRhiShaderResourceBindings * | shaderResourceBindings() const |
| const QRhiShaderStage * | shaderStageAt(qsizetype index) const |
| qsizetype | shaderStageCount() const |
| float | slopeScaledDepthBias() const |
| QRhiGraphicsPipeline::StencilOpState | stencilBack() const |
| QRhiGraphicsPipeline::StencilOpState | stencilFront() const |
| quint32 | stencilReadMask() const |
| quint32 | stencilWriteMask() const |
| const QRhiGraphicsPipeline::TargetBlend * | targetBlendAt(qsizetype index) const |
| qsizetype | targetBlendCount() const |
| QRhiGraphicsPipeline::Topology | topology() const |
| QRhiVertexInputLayout | vertexInputLayout() const |
Fonctions publiques réimplémentées
| virtual QRhiResource::Type | resourceType() const override |
Description détaillée
Représente un pipeline graphique. La manière dont cela se traduit exactement dans l’API graphique native sous-jacente varie. Lorsqu’il existe un concept d’objets de pipeline, par exemple avec Vulkan, le backend QRhi créera un tel objet lors de l’appel de create(). Ailleurs, par exemple avec OpenGL, QRhiGraphicsPipeline peut se contenter de collecter les différents états, et la tâche principale de la fonction create() consiste à configurer le programme de shader correspondant, tout en reportant à un moment ultérieur l’examen des états demandés.
Comme pour toutes les sous-classes de ` QRhiResource `, le modèle d’initialisation en deux phases s’applique : la définition de valeurs via les accesseurs, par exemple ` setDepthTest()`, ne prend effet qu’après l’appel de ` create()`. Évitez de modifier des valeurs une fois que le `QRhiGraphicsPipeline` a été initialisé via ` create()`. Pour modifier un état, définissez la nouvelle valeur et appelez à nouveau ` create()`. Cependant, cela libérera effectivement toutes les ressources natives sous-jacentes et en créera de nouvelles. Par conséquent, cela peut s’avérer être une opération lourde et coûteuse. Préférez plutôt créer plusieurs pipelines avec des états différents, puis appeler ` switch between them ` lors de l’enregistrement du passage de rendu.
Remarque : la configuration des étapes de shader est obligatoire. Il doit y avoir au moins une étape, et il doit y avoir une étape de sommets.
Remarque : la configuration des liaisons de ressources de shader est obligatoire. L’ QRhiShaderResourceBindings e référencée doit déjà avoir fait l’objet d’un appel à ` create()` au moment où ` create()` est appelé. L’association à un ` QRhiShaderResourceBindings ` ne comportant aucune liaison est également valide, à condition qu’aucun shader, à aucun étage, n’attende de ressources. L’utilisation d’un objet ` QRhiShaderResourceBindings ` qui ne spécifie aucune ressource réelle (c’est-à-dire que les tampons, textures, etc. pour les points de liaison sont définis sur ` nullptr`) est également valide, à condition qu’un ` layout-compatible ` QRhiShaderResourceBindings, qui spécifie les ressources pour toutes les liaisons, soit défini via ` setShaderResources()` lors de l’enregistrement du passage de rendu.
Remarque : la définition du descripteur de passe de rendu est obligatoire. Pour obtenir un QRhiRenderPassDescriptor pouvant être transmis à setRenderPassDescriptor(), utilisez soit QRhiTextureRenderTarget::newCompatibleRenderPassDescriptor(), soit QRhiSwapChain::newCompatibleRenderPassDescriptor().
Remarque : la configuration de la disposition des entrées de sommets est obligatoire.
Remarque : la valeur par défaut de` sampleCount()` est 1 et doit correspondre au nombre d’échantillons des annexes de couleur et de stencil de profondeur de la cible de rendu.
Remarque : le test de profondeur, l'écriture de profondeur et le test de stencil sont désactivés par défaut. Le mode de culling des faces est par défaut « sans culling ».
Remarque : les paramètres ` stencilReadMask()` et ` stencilWriteMask()` s’appliquent aux deux faces. Leur valeur par défaut est 0xFF.
Exemple d’utilisation
Tous les paramètres d’un pipeline graphique ont des valeurs par défaut qui peuvent convenir à de nombreuses applications. Par conséquent, un exemple minimal de création d’un pipeline graphique pourrait être le suivant. Cela suppose que le shader de sommets prenne une seule entrée « vec3 position » à l’emplacement d’entrée 0. À l’aide des objets « QRhiShaderResourceBindings » et « QRhiRenderPassDescriptor », ainsi que des collections « QShader » pour les étapes de sommets et de fragments, un pipeline pourrait être créé comme suit :
QRhiShaderResourceBindings *srb;
QRhiRenderPassDescriptor *rpDesc;
QShader vs, fs;
// ...
QRhiVertexInputLayout inputLayout;
inputLayout.setBindings({ { 3 * sizeof(float) } });
inputLayout.setAttributes({ { 0, 0, QRhiVertexInputAttribute::Float3, 0 } });
QRhiGraphicsPipeline *ps = rhi->newGraphicsPipeline();
ps->setShaderStages({ { QRhiShaderStage::Vertex, vs }, { QRhiShaderStage::Fragment, fs } });
ps->setVertexInputLayout(inputLayout);
ps->setShaderResourceBindings(srb);
ps->setRenderPassDescriptor(rpDesc);
if (!ps->create()) { error(); }Le code ci-dessus crée un objet pipeline qui utilise les valeurs par défaut pour de nombreux paramètres et états. Par exemple, il utilisera une topologie de type « Triangles », sans culling des faces arrière ; le mélange sera désactivé, mais l’écriture de couleur sera activée pour les quatre canaux ; les tests et écritures de profondeur seront désactivés, tout comme les opérations de stencil.
Remarque : il s'agit d'une API RHI dont la compatibilité n'est pas entièrement garantie ; consultez QRhi pour plus de détails.
Voir également QRhiCommandBuffer et QRhi.
Documentation sur les types de membres
enum QRhiGraphicsPipeline::BlendFactor
Définit le facteur de mélange
| Constante | Valeur |
|---|---|
QRhiGraphicsPipeline::Zero | 0 |
QRhiGraphicsPipeline::One | 1 |
QRhiGraphicsPipeline::SrcColor | 2 |
QRhiGraphicsPipeline::OneMinusSrcColor | 3 |
QRhiGraphicsPipeline::DstColor | 4 |
QRhiGraphicsPipeline::OneMinusDstColor | 5 |
QRhiGraphicsPipeline::SrcAlpha | 6 |
QRhiGraphicsPipeline::OneMinusSrcAlpha | 7 |
QRhiGraphicsPipeline::DstAlpha | 8 |
QRhiGraphicsPipeline::OneMinusDstAlpha | 9 |
QRhiGraphicsPipeline::ConstantColor | 10 |
QRhiGraphicsPipeline::OneMinusConstantColor | 11 |
QRhiGraphicsPipeline::ConstantAlpha | 12 |
QRhiGraphicsPipeline::OneMinusConstantAlpha | 13 |
QRhiGraphicsPipeline::SrcAlphaSaturate | 14 |
QRhiGraphicsPipeline::Src1Color | 15 |
QRhiGraphicsPipeline::OneMinusSrc1Color | 16 |
QRhiGraphicsPipeline::Src1Alpha | 17 |
QRhiGraphicsPipeline::OneMinusSrc1Alpha | 18 |
enum QRhiGraphicsPipeline::BlendOp
Spécifie l'opération de fusion
| Constante | Valeur |
|---|---|
QRhiGraphicsPipeline::Add | 0 |
QRhiGraphicsPipeline::Subtract | 1 |
QRhiGraphicsPipeline::ReverseSubtract | 2 |
QRhiGraphicsPipeline::Min | 3 |
QRhiGraphicsPipeline::Max | 4 |
enum QRhiGraphicsPipeline::ColorMaskComponent
flags QRhiGraphicsPipeline::ColorMask
Valeurs des indicateurs permettant de définir le masque d'écriture des couleurs
| Constante | Valeur |
|---|---|
QRhiGraphicsPipeline::R | 1 << 0 |
QRhiGraphicsPipeline::G | 1 << 1 |
QRhiGraphicsPipeline::B | 1 << 2 |
QRhiGraphicsPipeline::A | 1 << 3 |
Le type ColorMask est une définition de type (typedef) pour QFlags<ColorMaskComponent>. Il stocke une combinaison (ou) de valeurs ColorMaskComponent.
enum QRhiGraphicsPipeline::CompareOp
Spécifie la fonction de comparaison de profondeur ou de stencil
| Constante | Valeur | Description |
|---|---|---|
QRhiGraphicsPipeline::Never | 0 | |
QRhiGraphicsPipeline::Less | 1 | (valeur par défaut pour la profondeur) |
QRhiGraphicsPipeline::Equal | 2 | |
QRhiGraphicsPipeline::LessOrEqual | 3 | |
QRhiGraphicsPipeline::Greater | 4 | |
QRhiGraphicsPipeline::NotEqual | 5 | |
QRhiGraphicsPipeline::GreaterOrEqual | 6 | |
QRhiGraphicsPipeline::Always | 7 | (valeur par défaut pour le pochoir) |
enum QRhiGraphicsPipeline::CullMode
Spécifie le mode de culling
| Constante | Valeur | Description |
|---|---|---|
QRhiGraphicsPipeline::None | 0 | Pas de culling (par défaut) |
QRhiGraphicsPipeline::Front | 1 | Éliminer les faces avant |
QRhiGraphicsPipeline::Back | 2 | Éliminer les faces arrière |
enum QRhiGraphicsPipeline::Flag
flags QRhiGraphicsPipeline::Flags
Paramètres permettant de décrire l'état dynamique du pipeline, ainsi que d'autres options. La fenêtre d'affichage est toujours dynamique.
| Constante | Valeur | Description |
|---|---|---|
QRhiGraphicsPipeline::UsesBlendConstants | 1 << 0 | Indique qu’une constante de couleur de mélange sera définie via QRhiCommandBuffer::setBlendConstants() |
QRhiGraphicsPipeline::UsesStencilRef | 1 << 1 | Indique qu’une valeur de référence de stencil sera définie via QRhiCommandBuffer::setStencilRef() |
QRhiGraphicsPipeline::UsesScissor | 1 << 2 | Indique qu'un rectangle de ciseaux sera défini via QRhiCommandBuffer::setScissor() |
QRhiGraphicsPipeline::CompileShadersWithDebugInfo | 1 << 3 | Demande la compilation des shaders avec les informations de débogage activées. Cela n’est pertinent que dans le cas d’une compilation de shaders à l’exécution à partir du code source, et uniquement si l’infrastructure sous-jacente le prend en charge. Concrètement, cela ne s’applique pas à Vulkan et SPIR-V, car la compilation GLSL vers SPIR-V ne s’effectue pas à l’exécution. En revanche, prenons l’exemple de Direct3D et HLSL, où plusieurs options sont possibles : lorsque les paquets « QShader » sont fournis avec du bytecode précompilé (DXBC), les informations de débogage doivent être demandées via l’outil qui génère le fichier « .qsb », de la même manière que pour Vulkan et SPIR-V. Cependant, lorsque le code source HLSL est présent dans les paquets « QShader » générés à l’avance ou au moment de l’exécution, la première phase de compilation (du code source HLSL vers le format intermédiaire) s’effectue également au moment de l’exécution, en tenant compte de cet indicateur. Les informations de débogage sont particulièrement utiles avec des outils tels que RenderDoc, car elles permettent de visualiser le code source d’origine lors de l’analyse du pipeline et lors du débogage des shaders de sommets ou de fragments. |
QRhiGraphicsPipeline::UsesShadingRate | 1 << 4 | Indique qu’une valeur de taux de shading par dessin (par pipeline) sera définie via ` QRhiCommandBuffer::setShadingRate()`. Ne pas spécifier cet indicateur tout en appelant `setShadingRate()` peut entraîner des résultats variables et inattendus selon l’API graphique sous-jacente. |
QRhiGraphicsPipeline::UsesIndirectDraws (since Qt 6.12) | 1 << 5 | Indique que ce pipeline sera utilisé avec des appels de dessin indirects (QRhiCommandBuffer::drawIndirect() ou QRhiCommandBuffer::drawIndexedIndirect()). L’activation de cet indicateur permet au backend Metal d’utiliser des tampons de commande indirects (ICB) pour le rendu piloté par le GPU, ce qui réduit considérablement la charge du CPU en cas de grand nombre de dessins. Ne pas définir cet indicateur lors de l'utilisation de dessins indirects reste fonctionnel, mais peut entraîner des performances moins optimales sur Metal. Cet indicateur n'a aucun effet sur les autres backends. |
Le type Flags est une définition de type (typedef) pour QFlags<Flag>. Il stocke une combinaison OR de valeurs de drapeau.
enum QRhiGraphicsPipeline::FrontFace
Spécifie l'ordre d'enroulement de la face avant
| Constante | Valeur | Description |
|---|---|---|
QRhiGraphicsPipeline::CCW | 0 | Dans le sens inverse des aiguilles d'une montre (par défaut) |
QRhiGraphicsPipeline::CW | 1 | Dans le sens des aiguilles d'une montre |
enum QRhiGraphicsPipeline::PolygonMode
Définit le mode de rastérisation des polygones
Le mode polygonal (mode de remplissage des triangles dans Metal, mode de remplissage dans D3D) spécifie le mode de remplissage utilisé lors de la rastérisation des polygones. Les polygones peuvent être dessinés sous forme de solides (Fill) ou de fil de fer (Line).
La prise en charge des modes de polygones sans remplissage est facultative et est indiquée par la fonctionnalité « QRhi::NonFillPolygonMode ». Avec OpenGL ES et certaines implémentations de Vulkan, cette fonctionnalité sera probablement signalée comme non prise en charge, ce qui signifie alors que les valeurs autres que «Fill» ne peuvent pas être utilisées.
| Constante | Valeur | Description |
|---|---|---|
QRhiGraphicsPipeline::Fill | 0 | L'intérieur du polygone est rempli (par défaut) |
QRhiGraphicsPipeline::Line | 1 | Les arêtes du périmètre du polygone sont dessinées sous forme de segments de droite. |
enum QRhiGraphicsPipeline::StencilOp
Spécifie l'opération de pochoir
| Constante | Valeur | Description |
|---|---|---|
QRhiGraphicsPipeline::StencilZero | 0 | |
QRhiGraphicsPipeline::Keep | 1 | (par défaut) |
QRhiGraphicsPipeline::Replace | 2 | |
QRhiGraphicsPipeline::IncrementAndClamp | 3 | |
QRhiGraphicsPipeline::DecrementAndClamp | 4 | |
QRhiGraphicsPipeline::Invert | 5 | |
QRhiGraphicsPipeline::IncrementAndWrap | 6 | |
QRhiGraphicsPipeline::DecrementAndWrap | 7 |
enum QRhiGraphicsPipeline::Topology
Spécifie la topologie primitive
| Constante | Valeur | Description |
|---|---|---|
QRhiGraphicsPipeline::Triangles | 0 | (par défaut) |
QRhiGraphicsPipeline::TriangleStrip | 1 | |
QRhiGraphicsPipeline::TriangleFan | 2 | (disponible uniquement si la fonction « QRhi::TriangleFanTopology » est prise en charge) |
QRhiGraphicsPipeline::Lines | 3 | |
QRhiGraphicsPipeline::LineStrip | 4 | |
QRhiGraphicsPipeline::Points | 5 | |
QRhiGraphicsPipeline::Patches | 6 | (disponible uniquement si la fonction « QRhi::Tessellation » est prise en charge, et nécessite la présence d'étapes de tessellation dans le pipeline) |
Documentation des fonctions membres
const QRhiShaderStage *QRhiGraphicsPipeline::cbeginShaderStages() const
Renvoie un itérateur `const` pointant vers le premier élément de la liste des étapes de shader.
const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::cbeginTargetBlends() const
Renvoie un itérateur constant pointant vers le premier élément de la liste des paramètres de fusion de la cible de rendu.
const QRhiShaderStage *QRhiGraphicsPipeline::cendShaderStages() const
Renvoie un itérateur constant pointant juste après le dernier élément de la liste des étapes de shader.
const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::cendTargetBlends() const
Renvoie un itérateur const pointant juste après le dernier élément de la liste des paramètres de fusion de la cible de rendu.
[pure virtual] bool QRhiGraphicsPipeline::create()
Crée les ressources graphiques natives correspondantes. Si des ressources existent déjà à la suite d’un appel antérieur à `create()` sans ` destroy()` correspondant, alors la fonction ` destroy()` est d’abord appelée implicitement.
Renvoie ` true ` en cas de réussite, et ` false ` lorsqu’une opération graphique a échoué. Quelle que soit la valeur renvoyée, l’appel à ` destroy()` est toujours sans risque.
Remarque : selon l’API graphique sous-jacente,cette opération peut s’avérer coûteuse, en particulier lorsque les shaders sont compilés/optimisés à partir du code source ou d’un format de bytecode intermédiaire vers le jeu d’instructions propre au GPU. Le cas échéant, le backend QRhi configure automatiquement les mécanismes non persistants appropriés pour accélérer ce processus ; par exemple, le backend Vulkan crée automatiquement un VkPipelineCache pour améliorer la réutilisation des données pendant la durée de vie de l’application.
Remarque : les pilotes peuvent également recourir à diverses stratégies de mise en cache persistante (sur disque) pour les données de shaders et de pipeline, ce qui est invisible pour Qt et échappe à son contrôle. Dans certains cas, en fonction de l’API graphique et du backend d’ QRhi, l’ QRhi propose des fonctionnalités permettant de gérer manuellement ce cache, ce qui permet de récupérer un blob sérialisable pouvant ensuite être rechargé lors des exécutions ultérieures de l’application afin de garantir des temps de création de pipeline plus courts. Voir QRhi::pipelineCacheData() et QRhi::setPipelineCacheData() pour plus de détails. Notez également que lorsque vous travaillez avec une instance QRhi gérée par un framework Qt de niveau supérieur, tel que Qt Quick, il est possible que cette mise en cache sur disque soit gérée automatiquement ; par exemple, QQuickWindow utilise par défaut un cache de pipeline sur disque (qui s’ajoute à toute mise en cache au niveau du pilote).
QRhiGraphicsPipeline::CullMode QRhiGraphicsPipeline::cullMode() const
Renvoie le mode de culling des faces actuellement défini.
Voir aussi setCullMode().
int QRhiGraphicsPipeline::depthBias() const
Renvoie la correction de profondeur actuellement définie.
Voir également setDepthBias().
QRhiGraphicsPipeline::CompareOp QRhiGraphicsPipeline::depthOp() const
Renvoie la fonction de comparaison de profondeur.
Voir également setDepthOp().
QRhiGraphicsPipeline::Flags QRhiGraphicsPipeline::flags() const
Renvoie les indicateurs actuellement activés.
Voir aussi setFlags().
QRhiGraphicsPipeline::FrontFace QRhiGraphicsPipeline::frontFace() const
Renvoie le mode de face avant actuellement défini.
Voir aussi setFrontFace().
[since 6.11] bool QRhiGraphicsPipeline::hasDepthClamp() const
Renvoie « true » si le plafonnement de profondeur est activé.
Cette fonction a été introduite dans Qt 6.11.
bool QRhiGraphicsPipeline::hasDepthTest() const
Renvoie « true » si le test de profondeur est activé.
bool QRhiGraphicsPipeline::hasDepthWrite() const
Renvoie « true » si l'écriture en profondeur est activée.
bool QRhiGraphicsPipeline::hasStencilTest() const
Renvoie « true » si le test de stencil est activé.
float QRhiGraphicsPipeline::lineWidth() const
Renvoie la largeur de ligne actuellement définie. La valeur par défaut est 1,0f.
Voir également setLineWidth().
[since 6.7] int QRhiGraphicsPipeline::multiViewCount() const
Renvoie le nombre de vues. La valeur par défaut est 0, ce qui indique qu'il n'y a pas de rendu multivue.
Cette fonction a été introduite dans Qt 6.7.
Voir également ` setMultiViewCount()`.
int QRhiGraphicsPipeline::patchControlPointCount() const
Renvoie le nombre de points de contrôle de patch actuellement défini.
Voir également setPatchControlPointCount().
QRhiGraphicsPipeline::PolygonMode QRhiGraphicsPipeline::polygonMode() const
Renvoie le mode polygonal.
Voir aussi setPolygonMode().
QRhiRenderPassDescriptor *QRhiGraphicsPipeline::renderPassDescriptor() const
Renvoie l'QRhiRenderPassDescriptor actuellement définie.
Voir aussi setRenderPassDescriptor().
[override virtual] QRhiResource::Type QRhiGraphicsPipeline::resourceType() const
Réimplémente : ` QRhiResource::resourceType()` const.
Renvoie le type de ressource.
int QRhiGraphicsPipeline::sampleCount() const
Renvoie le nombre d'échantillons actuellement défini. La valeur 1 signifie qu'il n'y a pas d'anticrénelage par suréchantillonnage.
Voir également setSampleCount().
void QRhiGraphicsPipeline::setCullMode(QRhiGraphicsPipeline::CullMode mode)
Définit l'mode de culling des faces spécifiée.
Voir également cullMode().
void QRhiGraphicsPipeline::setDepthBias(int bias)
Définit la profondeur bias. La valeur par défaut est 0.
Voir aussi depthBias().
[since 6.11] void QRhiGraphicsPipeline::setDepthClamp(bool enable)
Active le « depth clamping » lorsque la valeur de enable est « true ». Lorsque le « depth clamping » est activé, les primitives qui seraient normalement rognées par le plan de rognage proche ou lointain sont rastérisées et leurs valeurs de profondeur sont limitées à la plage de profondeur définie. Lorsqu’il est désactivé (valeur par défaut), ces primitives sont rognées.
Remarque : ce paramètre est ignoré lorsque la fonctionnalité « QRhi::DepthClamp » est signalée comme non prise en charge.
Cette fonction a été introduite dans Qt 6.11.
Voir aussi hasDepthClamp().
void QRhiGraphicsPipeline::setDepthOp(QRhiGraphicsPipeline::CompareOp op)
Définit la fonction de comparaison de profondeur op.
Voir également depthOp().
void QRhiGraphicsPipeline::setDepthTest(bool enable)
Active ou désactive la vérification de la profondeur en fonction de enable. Par défaut, la vérification de la profondeur et l'écriture des données de profondeur sont désactivées.
Voir également hasDepthTest() et setDepthWrite().
void QRhiGraphicsPipeline::setDepthWrite(bool enable)
Contrôle l'écriture des données de profondeur dans le tampon de profondeur en fonction de enable. Par défaut, cette option est désactivée. L'écriture de profondeur est généralement activée en même temps que le test de profondeur.
Remarque : l'activation de l'écriture de profondeur sans que le test de profondeur soit activé peut ne pas donner le résultat escompté et doit être évitée.
Voir également hasDepthWrite() et setDepthTest().
void QRhiGraphicsPipeline::setFlags(QRhiGraphicsPipeline::Flags f)
Définit les indicateurs « f ».
Voir également flags().
void QRhiGraphicsPipeline::setFrontFace(QRhiGraphicsPipeline::FrontFace f)
Définit le mode de la face avant f.
Voir également frontFace().
void QRhiGraphicsPipeline::setLineWidth(float width)
Définit l'width de ligne. Si la fonctionnalité « QRhi::WideLines » est signalée comme non prise en charge lors de l'exécution, les valeurs autres que 1.0f sont ignorées.
Voir également ` lineWidth()`.
[since 6.7] void QRhiGraphicsPipeline::setMultiViewCount(int count)
Définit l'count de la vue pour le rendu multivue. La valeur par défaut est 0, ce qui indique qu'il n'y a pas de rendu multivue. La valeur de « count » doit être égale ou supérieure à 2 pour activer le rendu multivue.
Le rendu multi-vue n'est disponible que lorsque l'MultiView feature est signalée comme prise en charge. La cible de rendu doit être un tableau de textures 2D, et l'attachement de couleur associé à cette cible doit avoir la même valeur définie pour ` count `.
Voir QRhiColorAttachment::setMultiViewCount() pour plus de détails sur le rendu multivue.
Cette fonction a été introduite dans Qt 6.7.
Voir également multiViewCount(), QRhi::MultiView et QRhiColorAttachment::setMultiViewCount().
void QRhiGraphicsPipeline::setPatchControlPointCount(int count)
Définit le nombre de points de contrôle du patch sur count. La valeur par défaut est 3. Ce paramètre n'est utilisé que lorsque la topologie est définie sur Patches.
Voir également patchControlPointCount().
void QRhiGraphicsPipeline::setPolygonMode(QRhiGraphicsPipeline::PolygonMode mode)
Définit l'mode du polygone. La valeur par défaut est « Fill ».
Voir également polygonMode() et QRhi::NonFillPolygonMode.
void QRhiGraphicsPipeline::setRenderPassDescriptor(QRhiRenderPassDescriptor *desc)
Renvoie l'QRhiRenderPassDescriptor spécifiée desc.
Voir également renderPassDescriptor().
void QRhiGraphicsPipeline::setSampleCount(int s)
Définit le nombre d'échantillons. Les valeurs courantes pour « s » sont 1, 4 ou 8. Le pipeline doit toujours être compatible avec la cible de rendu, c'est-à-dire que le nombre d'échantillons doit correspondre.
Voir également sampleCount() et QRhi::supportedSampleCounts().
void QRhiGraphicsPipeline::setShaderResourceBindings(QRhiShaderResourceBindings *srb)
Associé à ` srb `, qui décrit la disposition des liaisons de ressources et les ressources elles-mêmes (QRhiBuffer, QRhiTexture). Ce dernier élément est facultatif, car seule la disposition importe lors de la création du pipeline. Par conséquent, l’ srb transmis ici peut ne pas spécifier les objets de tampon ou de texture réels (nullptr), à condition qu’il existe un autre ` layout-compatible ` QRhiShaderResourceBindings lié via ` setShaderResources()` avant l’enregistrement des appels de dessin.
Voir également shaderResourceBindings().
void QRhiGraphicsPipeline::setShaderStages(std::initializer_list<QRhiShaderStage> list)
Définit l'list e des étapes de shader.
template <typename InputIterator> void QRhiGraphicsPipeline::setShaderStages(InputIterator first, InputIterator last)
Définit la liste des étapes de shader à partir des itérateurs first et last.
void QRhiGraphicsPipeline::setSlopeScaledDepthBias(float bias)
Définit la profondeur mise à l'échelle en fonction de la pente bias. La valeur par défaut est 0.
Voir également slopeScaledDepthBias().
void QRhiGraphicsPipeline::setStencilBack(const QRhiGraphicsPipeline::StencilOpState &state)
Définit l’ state de test de stencil pour les faces arrière.
Voir aussi stencilBack().
void QRhiGraphicsPipeline::setStencilFront(const QRhiGraphicsPipeline::StencilOpState &state)
Définit l'state de test de pochoir pour les faces avant.
Voir aussi stencilFront().
void QRhiGraphicsPipeline::setStencilReadMask(quint32 mask)
Définit l'mask de lecture du pochoir. La valeur par défaut est 0xFF.
Voir également stencilReadMask().
void QRhiGraphicsPipeline::setStencilTest(bool enable)
Active ou désactive les tests de stencil en fonction de enable. Par défaut, cette option est désactivée.
Voir également hasStencilTest().
void QRhiGraphicsPipeline::setStencilWriteMask(quint32 mask)
Définit l'mask d'écriture du pochoir. La valeur par défaut est 0xFF.
Voir également la fonction stencilWriteMask().
void QRhiGraphicsPipeline::setTargetBlends(std::initializer_list<QRhiGraphicsPipeline::TargetBlend> list)
Définit l'list des paramètres de fusion des cibles de rendu. Il s'agit d'une liste car, lorsque plusieurs cibles de rendu sont utilisées (c'est-à-dire une « QRhiTextureRenderTarget » comportant plusieurs « QRhiColorAttachment »), il doit y avoir une structure « TargetBlend » par cible de rendu (attachement de couleur).
Par défaut, il existe un ensemble TargetBlend construit par défaut.
Voir également QRhi::MaxColorAttachments.
template <typename InputIterator> void QRhiGraphicsPipeline::setTargetBlends(InputIterator first, InputIterator last)
Définit la liste des paramètres de fusion de la cible de rendu à partir des itérateurs first et last.
void QRhiGraphicsPipeline::setTopology(QRhiGraphicsPipeline::Topology t)
Définit la topologie de la primitive t.
Voir également topology().
void QRhiGraphicsPipeline::setVertexInputLayout(const QRhiVertexInputLayout &layout)
Spécifie l'layout d'entrée des sommets.
Voir également vertexInputLayout().
QRhiShaderResourceBindings *QRhiGraphicsPipeline::shaderResourceBindings() const
Renvoie l'objet ` QRhiShaderResourceBindings ` actuellement associé.
Voir aussi setShaderResourceBindings().
const QRhiShaderStage *QRhiGraphicsPipeline::shaderStageAt(qsizetype index) const
Renvoie l'étape de shader à l'index spécifiée.
qsizetype QRhiGraphicsPipeline::shaderStageCount() const
Renvoie le nombre d'étapes de shader dans ce pipeline.
float QRhiGraphicsPipeline::slopeScaledDepthBias() const
Renvoie le biais de profondeur mis à l'échelle de la pente actuellement défini.
Voir également setSlopeScaledDepthBias().
QRhiGraphicsPipeline::StencilOpState QRhiGraphicsPipeline::stencilBack() const
Renvoie l'état actuel du test de stencil pour les faces arrière.
Voir également setStencilBack().
QRhiGraphicsPipeline::StencilOpState QRhiGraphicsPipeline::stencilFront() const
Renvoie l'état actuel du test de stencil pour les faces avant.
Voir également setStencilFront().
quint32 QRhiGraphicsPipeline::stencilReadMask() const
Renvoie le masque de lecture de stencil actuel.
Voir aussi setStencilReadMask().
quint32 QRhiGraphicsPipeline::stencilWriteMask() const
Renvoie le masque d'écriture stencil actuel.
Voir également setStencilWriteMask().
const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::targetBlendAt(qsizetype index) const
Renvoie le paramètre de fusion de la cible de rendu à l'index spécifiée.
qsizetype QRhiGraphicsPipeline::targetBlendCount() const
Renvoie le nombre de paramètres de fusion de la cible de rendu.
QRhiGraphicsPipeline::Topology QRhiGraphicsPipeline::topology() const
Renvoie la topologie primitive actuellement définie.
Voir également setTopology().
QRhiVertexInputLayout QRhiGraphicsPipeline::vertexInputLayout() const
Renvoie la spécification de disposition des entrées de sommets actuellement définie.
Voir également setVertexInputLayout().
© 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.