Sur cette page

QRhiGraphicsPipeline Class

Ressource d'état du pipeline graphique. Plus d'informations...

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 : 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 }
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. Ce à quoi cela correspond exactement dans l'API graphique native sous-jacente varie. Lorsqu'il existe un concept d'objets pipeline, par exemple avec Vulkan, le backend QRhi créera un tel objet lors de l'appel à create(). Ailleurs, par exemple avec OpenGL, le QRhiGraphicsPipeline peut simplement collecter les différents états, et la tâche principale de create() est de mettre en place le programme de shader correspondant, mais en reportant l'examen de l'état demandé à un moment ultérieur.

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 setters, par exemple setDepthTest(), n'est effective qu'après l'appel à create(). Évitez de modifier des valeurs une fois que la QRhiGraphicsPipeline a été initialisée via create(). Pour modifier un état, définissez la nouvelle valeur et appelez à nouveau create(). Cependant, cela aura pour effet de libérer toutes les ressources natives sous-jacentes et d'en créer de nouvelles. Par conséquent, il peut s'agir d'une opération lourde et coûteuse. Préférez plutôt créer plusieurs pipelines avec les différents états, et switch between them lors de l'enregistrement de la passe de rendu.

Remarque : il est obligatoire de définir les étapes du shader. Il doit y avoir au moins un étage et un étage de vertex.

Remarque : il est obligatoire de définir les liens avec les ressources du shader. Le site QRhiShaderResourceBindings référencé doit déjà avoir fait l'objet d'un appel à create() au moment où create() est appelé. L'association avec un objet QRhiShaderResourceBindings qui n'a pas de liaison est également valable, à condition qu'aucun shader d'aucune étape n'attende de ressources. L'utilisation d'un objet QRhiShaderResourceBindings qui ne spécifie aucune ressource réelle (c'est-à-dire que les tampons, les textures, etc. pour les points de liaison sont définis à nullptr) est également valable, tant qu'un objet layout-compatible QRhiShaderResourceBindings , qui spécifie les ressources pour toutes les liaisons, sera défini via setShaderResources() lors de l'enregistrement de la passe de rendu.

Remarque : la définition du descripteur de la passe de rendu est obligatoire. Pour obtenir un QRhiRenderPassDescriptor qui peut être transmis à setRenderPassDescriptor(), utilisez QRhiTextureRenderTarget::newCompatibleRenderPassDescriptor() ou QRhiSwapChain::newCompatibleRenderPassDescriptor().

Remarque : il est obligatoire de définir la disposition des vertex à l'entrée.

Note : sampleCount() vaut par défaut 1 et doit correspondre au nombre d'échantillons de la couleur de la cible de rendu et des pièces jointes du stencil de profondeur.

Remarque : le test de profondeur, l'écriture de profondeur et le test de stencil sont désactivés par défaut. Le mode d'atténuation des visages est défini par défaut sur pas d'atténuation.

Remarque : stencilReadMask() et stencilWriteMask() s'appliquent aux deux faces. La 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 nuanceur de sommets prenne une seule entrée vec3 position à l'emplacement d'entrée 0. Avec les objets QRhiShaderResourceBindings et QRhiRenderPassDescriptor, plus les 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 Triangles, pas de backface culling, le mélange est désactivé mais l'écriture des couleurs est activée pour les quatre canaux, le test/écriture de la profondeur est désactivé, les opérations de pochoir sont désactivées.

Remarque : il s'agit d'une API RHI avec des garanties de compatibilité limitées, voir QRhi pour plus de détails.

Voir également QRhiCommandBuffer et QRhi.

Documentation sur les types de membres

enum QRhiGraphicsPipeline::BlendFactor

Spécifie le facteur de mélange

ConstanteValeur
QRhiGraphicsPipeline::Zero0
QRhiGraphicsPipeline::One1
QRhiGraphicsPipeline::SrcColor2
QRhiGraphicsPipeline::OneMinusSrcColor3
QRhiGraphicsPipeline::DstColor4
QRhiGraphicsPipeline::OneMinusDstColor5
QRhiGraphicsPipeline::SrcAlpha6
QRhiGraphicsPipeline::OneMinusSrcAlpha7
QRhiGraphicsPipeline::DstAlpha8
QRhiGraphicsPipeline::OneMinusDstAlpha9
QRhiGraphicsPipeline::ConstantColor10
QRhiGraphicsPipeline::OneMinusConstantColor11
QRhiGraphicsPipeline::ConstantAlpha12
QRhiGraphicsPipeline::OneMinusConstantAlpha13
QRhiGraphicsPipeline::SrcAlphaSaturate14
QRhiGraphicsPipeline::Src1Color15
QRhiGraphicsPipeline::OneMinusSrc1Color16
QRhiGraphicsPipeline::Src1Alpha17
QRhiGraphicsPipeline::OneMinusSrc1Alpha18

enum QRhiGraphicsPipeline::BlendOp

Spécifie l'opération de mélange

ConstanteValeur
QRhiGraphicsPipeline::Add0
QRhiGraphicsPipeline::Subtract1
QRhiGraphicsPipeline::ReverseSubtract2
QRhiGraphicsPipeline::Min3
QRhiGraphicsPipeline::Max4

enum QRhiGraphicsPipeline::ColorMaskComponent
flags QRhiGraphicsPipeline::ColorMask

Valeurs des drapeaux permettant de spécifier le masque d'écriture des couleurs

ConstanteValeur
QRhiGraphicsPipeline::R1 << 0
QRhiGraphicsPipeline::G1 << 1
QRhiGraphicsPipeline::B1 << 2
QRhiGraphicsPipeline::A1 << 3

Le type ColorMask est un typedef pour QFlags<ColorMaskComponent>. Il stocke une combinaison OU de valeurs ColorMaskComponent.

enum QRhiGraphicsPipeline::CompareOp

Spécifie la fonction de comparaison de la profondeur ou du pochoir

ConstanteValeurDescription de la constante
QRhiGraphicsPipeline::Never0
QRhiGraphicsPipeline::Less1(par défaut pour la profondeur)
QRhiGraphicsPipeline::Equal2
QRhiGraphicsPipeline::LessOrEqual3
QRhiGraphicsPipeline::Greater4
QRhiGraphicsPipeline::NotEqual5
QRhiGraphicsPipeline::GreaterOrEqual6
QRhiGraphicsPipeline::Always7(par défaut pour le stencil)

enum QRhiGraphicsPipeline::CullMode

Spécifie le mode d'abattage

ConstanteValeurDescription du mode d'abattage
QRhiGraphicsPipeline::None0Pas d'abattage (par défaut)
QRhiGraphicsPipeline::Front1Extraction des faces avant
QRhiGraphicsPipeline::Back2Eliminer les faces arrière

enum QRhiGraphicsPipeline::Flag
flags QRhiGraphicsPipeline::Flags

Valeurs des drapeaux pour décrire l'état dynamique du pipeline et d'autres options. La fenêtre de visualisation est toujours dynamique.

ConstanteValeurDescription
QRhiGraphicsPipeline::UsesBlendConstants1 << 0Indique qu'une constante de couleur de mélange sera définie via QRhiCommandBuffer::setBlendConstants()
QRhiGraphicsPipeline::UsesStencilRef1 << 1Indique qu'une valeur de référence du pochoir sera définie via QRhiCommandBuffer::setStencilRef()
QRhiGraphicsPipeline::UsesScissor1 << 2Indique qu'un rectangle de ciseaux sera défini via QRhiCommandBuffer::setScissor()
QRhiGraphicsPipeline::CompileShadersWithDebugInfo1 << 3Demande la compilation des shaders avec les informations de débogage activées. Ceci n'est pertinent que lorsque la compilation des shaders à partir du code source est impliquée, et seulement si l'infrastructure sous-jacente le supporte. Avec des exemples concrets, ce n'est pas pertinent avec Vulkan et SPIR-V, parce que la compilation GLSL vers SPIR-V ne se produit pas au moment de l'exécution. D'un autre côté, considérons Direct3D et HLSL, pour lesquels il existe plusieurs options : lorsque les paquets QShader sont livrés 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, comme dans le cas de Vulkan et SPIR-V. Cependant, lorsque le code source HLSL se trouve dans les paquets QShader générés avant ou pendant l'exécution, la première phase de compilation (source HLSL vers format intermédiaire) se produit également pendant l'exécution, avec cet indicateur pris en compte. Les informations de débogage sont particulièrement importantes pour des outils tels que RenderDoc, car elles permettent de voir le code source original lors de l'examen du pipeline et du débogage des vertex ou des fragment shaders.
QRhiGraphicsPipeline::UsesShadingRate1 << 4Indique qu'une valeur de taux d'ombrage par dessin (par pipeline) sera définie via QRhiCommandBuffer::setShadingRate(). Ne pas spécifier ce drapeau et appeler setShadingRate() peut conduire à des résultats variables et inattendus en fonction de l'API graphique sous-jacente.

Le type Flags est un typedef pour QFlags<Flag>. Il stocke une combinaison OU de valeurs de drapeaux.

enum QRhiGraphicsPipeline::FrontFace

Spécifie l'ordre d'enroulement de la face avant

ConstanteValeurDescription de la constante
QRhiGraphicsPipeline::CCW0Sens inverse des aiguilles d'une montre (par défaut)
QRhiGraphicsPipeline::CW1Dans le sens des aiguilles d'une montre

enum QRhiGraphicsPipeline::PolygonMode

Spécifie le mode de tramage des polygones

Polygon Mode (Triangle Fill Mode dans Metal, Fill Mode dans D3D) spécifie le mode de remplissage utilisé lors du tramage des polygones. Les polygones peuvent être dessinés comme des solides (Fill) ou comme un treillis métallique (Line).

La prise en charge des modes de polygone sans remplissage est facultative et est indiquée par la fonctionnalité QRhi::NonFillPolygonMode. Avec OpenGL ES et certaines implémentations Vulkan, la 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.

ConstanteValeurDescription
QRhiGraphicsPipeline::Fill0L'intérieur du polygone est rempli (par défaut).
QRhiGraphicsPipeline::Line1Les bords du polygone sont dessinés comme des segments de ligne.

enum QRhiGraphicsPipeline::StencilOp

Spécifie l'opération de pochoir

ConstanteValeurDescription (par défaut)
QRhiGraphicsPipeline::StencilZero0
QRhiGraphicsPipeline::Keep1(par défaut)
QRhiGraphicsPipeline::Replace2
QRhiGraphicsPipeline::IncrementAndClamp3
QRhiGraphicsPipeline::DecrementAndClamp4
QRhiGraphicsPipeline::Invert5
QRhiGraphicsPipeline::IncrementAndWrap6
QRhiGraphicsPipeline::DecrementAndWrap7

enum QRhiGraphicsPipeline::Topology

Spécifie la topologie primitive

ConstanteValeurDescription
QRhiGraphicsPipeline::Triangles0(par défaut)
QRhiGraphicsPipeline::TriangleStrip1
QRhiGraphicsPipeline::TriangleFan2(disponible uniquement si QRhi::TriangleFanTopology est pris en charge)
QRhiGraphicsPipeline::Lines3
QRhiGraphicsPipeline::LineStrip4
QRhiGraphicsPipeline::Points5
QRhiGraphicsPipeline::Patches6(disponible uniquement si QRhi::Tessellation est pris en charge, et nécessite que les étapes de tessellation soient présentes dans le pipeline)

Documentation des fonctions membres

const QRhiShaderStage *QRhiGraphicsPipeline::cbeginShaderStages() const

Renvoie un itérateur constant pointant vers le premier élément de la liste des étapes du 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 mélange 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 du shader.

const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::cendTargetBlends() const

Renvoie un itérateur constant pointant juste après le dernier élément de la liste des paramètres de mélange de la cible de rendu.

[pure virtual] bool QRhiGraphicsPipeline::create()

Crée les ressources graphiques natives correspondantes. Si des ressources sont déjà présentes en raison d'un create() antérieur sans destroy() correspondant, alors destroy() est appelé implicitement en premier.

Retourne true en cas de succès, false en cas d'échec de l'opération graphique. Quelle que soit la valeur de retour, l'appel à destroy() est toujours sûr.

Remarque : selon l'API graphique sous-jacente, il peut s'agir d'une opération coûteuse, en particulier lorsque les shaders sont compilés/optimisés à partir de la source ou d'un format de bytecode intermédiaire vers le jeu d'instructions propre au GPU. Le cas échéant, le backend QRhi met automatiquement en place les installations non persistantes appropriées pour accélérer cette opération. Par exemple, le backend Vulkan crée automatiquement un site VkPipelineCache pour améliorer la réutilisation des données pendant la durée de vie de l'application.

Remarque : les pilotes peuvent également utiliser diverses stratégies de mise en cache persistante (sur disque) pour les données de shader et de pipeline, qui sont cachées et hors du contrôle de Qt. Dans certains cas, en fonction de l'API graphique et du backend QRhi, il existe des facilités dans QRhi pour gérer manuellement un tel cache, permettant la récupération d'un blob sérialisable qui peut ensuite être rechargé dans les futures exécutions de l'application pour assurer des temps de création de pipeline plus rapides. Voir QRhi::pipelineCacheData() et QRhi::setPipelineCacheData() pour plus de détails. Notez également que lorsque vous travaillez avec une instance de QRhi gérée par un cadre Qt de niveau supérieur, tel que Qt Quick, il est possible que cette mise en cache sur disque soit prise en charge automatiquement, par exemple QQuickWindow utilise un cache de pipeline sur disque par défaut (qui vient en plus de toute mise en cache au niveau du pilote).

QRhiGraphicsPipeline::CullMode QRhiGraphicsPipeline::cullMode() const

Renvoie le mode d'abattage des visages actuellement défini.

Voir aussi setCullMode().

int QRhiGraphicsPipeline::depthBias() const

Renvoie le biais de profondeur actuellement défini.

Voir également setDepthBias().

QRhiGraphicsPipeline::CompareOp QRhiGraphicsPipeline::depthOp() const

Renvoie la fonction de comparaison de profondeur.

Voir aussi setDepthOp().

QRhiGraphicsPipeline::Flags QRhiGraphicsPipeline::flags() const

Renvoie les drapeaux actuellement définis.

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

Retourne vrai si la pince de profondeur est activée.

Cette fonction a été introduite dans Qt 6.11.

bool QRhiGraphicsPipeline::hasDepthTest() const

Retourne true si le test de profondeur est activé.

bool QRhiGraphicsPipeline::hasDepthWrite() const

Retourne vrai si l'écriture en profondeur est activée.

bool QRhiGraphicsPipeline::hasStencilTest() const

Retourne true si le test des pochoirs est activé.

float QRhiGraphicsPipeline::lineWidth() const

Renvoie la largeur de ligne actuellement définie. La valeur par défaut est 1.0f.

Voir aussi 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 multivues.

Cette fonction a été introduite dans Qt 6.7.

Voir aussi setMultiViewCount().

int QRhiGraphicsPipeline::patchControlPointCount() const

Renvoie le nombre de points de contrôle du patch actuellement défini.

Voir aussi setPatchControlPointCount().

QRhiGraphicsPipeline::PolygonMode QRhiGraphicsPipeline::polygonMode() const

Renvoie le mode polygone.

Voir aussi setPolygonMode().

QRhiRenderPassDescriptor *QRhiGraphicsPipeline::renderPassDescriptor() const

Renvoie l'adresse 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. 1 signifie qu'il n'y a pas d'anti-crénelage multi-échantillon.

Voir aussi setSampleCount().

void QRhiGraphicsPipeline::setCullMode(QRhiGraphicsPipeline::CullMode mode)

Définit l'élimination des visages spécifiée mode.

Voir également cullMode().

void QRhiGraphicsPipeline::setDepthBias(int bias)

Définit la profondeur bias. La valeur par défaut est 0.

Voir également depthBias().

[since 6.11] void QRhiGraphicsPipeline::setDepthClamp(bool enable)

Active la compression de la profondeur lorsque enable est vrai. Lorsque la compression de profondeur est activée, les primitives qui seraient autrement coupées par le plan de coupe proche ou lointain sont tramées et leurs valeurs de profondeur sont restreintes à la plage de profondeur. Lorsqu'il est désactivé (par défaut), ces primitives sont écrêtées.

Remarque : ce paramètre est ignoré lorsque la fonction QRhi::DepthClamp est signalée comme n'étant pas 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 aussi depthOp().

void QRhiGraphicsPipeline::setDepthTest(bool enable)

Active ou désactive la vérification de la profondeur sur la base de enable. Le test de profondeur et l'écriture des données de profondeur sont désactivés par défaut.

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. Cette fonction est désactivée par défaut. 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 en profondeur sans avoir activé le test de profondeur peut ne pas conduire au résultat souhaité et doit être évitée.

Voir également hasDepthWrite() et setDepthTest().

void QRhiGraphicsPipeline::setFlags(QRhiGraphicsPipeline::Flags f)

Définit les drapeaux f.

Voir aussi 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 la ligne width. Si la fonctionnalité QRhi::WideLines est signalée comme non prise en charge à l'exécution, les valeurs autres que 1.0f sont ignorées.

Voir aussi lineWidth().

[since 6.7] void QRhiGraphicsPipeline::setMultiViewCount(int count)

Définit la vue count pour le rendu multi-vues. La valeur par défaut est 0, ce qui indique qu'il n'y a pas de rendu multivue. count doit être égal ou supérieur à 2 pour déclencher le rendu multivue.

Le rendu multi-vues n'est disponible que si l'adresse MultiView feature est signalée comme étant prise en charge. La cible de rendu doit être un tableau de textures 2D et l'attachement de couleur pour la cible de rendu doit avoir le même ensemble count.

Voir QRhiColorAttachment::setMultiViewCount() pour plus de détails sur le rendu multi-vues.

Cette fonction a été introduite dans Qt 6.7.

Voir aussi multiViewCount(), QRhi::MultiView, et QRhiColorAttachment::setMultiViewCount().

void QRhiGraphicsPipeline::setPatchControlPointCount(int count)

Définit le nombre de points de contrôle de patch à 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 le polygone mode. La valeur par défaut est Fill.

Voir également polygonMode() et QRhi::NonFillPolygonMode.

void QRhiGraphicsPipeline::setRenderPassDescriptor(QRhiRenderPassDescriptor *desc)

S'associe au site spécifié QRhiRenderPassDescriptor desc .

Voir aussi renderPassDescriptor().

void QRhiGraphicsPipeline::setSampleCount(int s)

Définit le nombre d'échantillons. Les valeurs typiques 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)

Associe à srb la description de la structure de liaison des ressources et les ressources (QRhiBuffer, QRhiTexture) elles-mêmes. Ce dernier point est facultatif, car seule la disposition importe lors de la création du pipeline. Par conséquent, le srb passé ici peut laisser les objets de tampon ou de texture non spécifiés (nullptr) tant qu'il y a un autre layout-compatible QRhiShaderResourceBindings lié via setShaderResources() avant d'enregistrer les appels de dessin.

Voir aussi shaderResourceBindings().

void QRhiGraphicsPipeline::setShaderStages(std::initializer_list<QRhiShaderStage> list)

Définit l'adresse list des étapes du shader.

template <typename InputIterator> void QRhiGraphicsPipeline::setShaderStages(InputIterator first, InputIterator last)

Définit la liste des étapes du shader à partir des itérateurs first et last.

void QRhiGraphicsPipeline::setSlopeScaledDepthBias(float bias)

Définit la profondeur à l'échelle de la pente bias. La valeur par défaut est 0.

Voir également slopeScaledDepthBias().

void QRhiGraphicsPipeline::setStencilBack(const QRhiGraphicsPipeline::StencilOpState &state)

Définit le test du pochoir state pour les faces arrière.

Voir également stencilBack().

void QRhiGraphicsPipeline::setStencilFront(const QRhiGraphicsPipeline::StencilOpState &state)

Définit le test du pochoir state pour les faces avant.

Voir également stencilFront().

void QRhiGraphicsPipeline::setStencilReadMask(quint32 mask)

Définit la lecture du stencil mask. La valeur par défaut est 0xFF.

Voir aussi stencilReadMask().

void QRhiGraphicsPipeline::setStencilTest(bool enable)

Active ou désactive les tests de pochoirs basés sur enable. Par défaut, cette option est désactivée.

Voir également hasStencilTest().

void QRhiGraphicsPipeline::setStencilWriteMask(quint32 mask)

Définit l'écriture du stencil mask. La valeur par défaut est 0xFF.

Voir également stencilWriteMask().

void QRhiGraphicsPipeline::setTargetBlends(std::initializer_list<QRhiGraphicsPipeline::TargetBlend> list)

Définit l'adresse 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 (par exemple, un site QRhiTextureRenderTarget avec plus d'un site QRhiColorAttachment), il doit y avoir une structure TargetBlend par cible de rendu (attachement de couleur).

Par défaut, il n'y a qu'un seul ensemble TargetBlend construit par défaut.

Voir aussi 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 primitive t.

Voir aussi topology().

void QRhiGraphicsPipeline::setVertexInputLayout(const QRhiVertexInputLayout &layout)

Spécifie l'entrée vertex layout.

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 du shader à l'adresse index spécifiée.

qsizetype QRhiGraphicsPipeline::shaderStageCount() const

Renvoie le nombre d'étages de shaders 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 du pochoir pour les faces arrière.

Voir aussi setStencilBack().

QRhiGraphicsPipeline::StencilOpState QRhiGraphicsPipeline::stencilFront() const

Renvoie l'état actuel du test du pochoir pour les faces avant.

Voir aussi setStencilFront().

quint32 QRhiGraphicsPipeline::stencilReadMask() const

Renvoie le masque de lecture actuel du stencil.

Voir aussi setStencilReadMask().

quint32 QRhiGraphicsPipeline::stencilWriteMask() const

Renvoie le masque d'écriture actuel du stencil.

Voir aussi setStencilWriteMask().

const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::targetBlendAt(qsizetype index) const

Renvoie le paramètre de mélange de la cible de rendu à l'adresse index.

qsizetype QRhiGraphicsPipeline::targetBlendCount() const

Renvoie le nombre de paramètres de mélange de la cible de rendu.

QRhiGraphicsPipeline::Topology QRhiGraphicsPipeline::topology() const

Renvoie la topologie primitive actuellement définie.

Voir aussi setTopology().

QRhiVertexInputLayout QRhiGraphicsPipeline::vertexInputLayout() const

Renvoie la spécification de disposition d'entrée des vertex actuellement définie.

Voir aussi 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.