En esta página

QRhiGraphicsPipeline Class

Recurso de estado del conducto de gráficos. Más...

Cabecera: #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
Desde: Qt 6.6
Hereda: QRhiResource

Tipos Públicos

(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 }

Funciones Públicas

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

Funciones Públicas Reimplementadas

virtual QRhiResource::Type resourceType() const override

Descripción Detallada

Representa un canal de gráficos. Lo que esto representa exactamente en la API gráfica nativa subyacente, varía. Donde hay un concepto de objetos pipeline, por ejemplo con Vulkan, el backend QRhi creará tal objeto al llamar a create(). En otros lugares, por ejemplo con OpenGL, el QRhiGraphicsPipeline puede limitarse a recoger los distintos estados, y la tarea principal de create() es configurar el programa de sombreado correspondiente, pero aplazando la consulta de cualquiera de los estados solicitados a un momento posterior.

Como con todas las subclases de QRhiResource, se aplica el patrón de inicialización en dos fases: establecer cualquier valor a través de los setters, por ejemplo setDepthTest(), sólo es efectivo después de llamar a create(). Evite cambiar cualquier valor una vez que QRhiGraphicsPipeline haya sido inicializado a través de create(). Para cambiar algún estado, establece el nuevo valor y llama de nuevo a create(). Sin embargo, esto liberará todos los recursos nativos subyacentes y creará otros nuevos. Como resultado, puede ser una operación pesada y costosa. Mejor, prefiera crear múltiples pipelines con los diferentes estados, y switch between them cuando grabe el pase de render.

Nota: Establecer las etapas del shader es obligatorio. Debe haber al menos una etapa, y debe haber una etapa de vértices.

Nota: La configuración de los recursos del shader es obligatoria. El QRhiShaderResourceBindings referenciado debe tener ya create() llamado en el momento en que create() es llamado. La asociación con un QRhiShaderResourceBindings que no tenga ninguna vinculación también es válida, siempre y cuando ningún sombreador de ninguna etapa espere ningún recurso. Usar un objeto QRhiShaderResourceBindings que no especifique ningún recurso real (es decir, los buffers, texturas, etc. para los puntos de vinculación se establecen en nullptr) también es válido, siempre y cuando un layout-compatible QRhiShaderResourceBindings , que especifica recursos para todas las vinculaciones, vaya a establecerse a través de setShaderResources() cuando se grabe el pase de render.

Nota: Establecer el descriptor del pase de renderizado es obligatorio. Para obtener un QRhiRenderPassDescriptor que pueda ser pasado a setRenderPassDescriptor(), utilice QRhiTextureRenderTarget::newCompatibleRenderPassDescriptor() o QRhiSwapChain::newCompatibleRenderPassDescriptor().

Nota: Es obligatorio definir el diseño de entrada de vértices.

Nota :sampleCount() por defecto es 1 y debe coincidir con el número de muestras de los adjuntos de color y profundidad del patrón de renderizado.

Nota: La prueba de profundidad, la escritura de profundidad y la prueba de plantilla están desactivadas por defecto. El modo de selección de caras está desactivado por defecto.

Nota: stencilReadMask() y stencilWriteMask() se aplican a ambas caras. El valor por defecto es 0xFF.

Ejemplo de uso

Todos los ajustes de un canal gráfico tienen valores por defecto que pueden ser adecuados para muchas aplicaciones. Por lo tanto, un ejemplo mínimo de la creación de un canal de gráficos podría ser el siguiente. Esto supone que el sombreador de vértices toma una única entrada vec3 position en la posición de entrada 0. Con los objetos QRhiShaderResourceBindings y QRhiRenderPassDescriptor, más las colecciones QShader para las etapas de vértices y fragmentos, se podría crear un pipeline como el siguiente:

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(); }

El código anterior crea un objeto pipeline que utiliza los valores predeterminados para muchos ajustes y estados. Por ejemplo, se utilizará una topología Triangles, sin backface culling, la mezcla está desactivada pero la escritura de color está habilitada para los cuatro canales, la prueba de profundidad/escritura están desactivadas, las operaciones de stencil están desactivadas.

Nota: Se trata de una API RHI con garantías de compatibilidad limitadas, véase QRhi para más detalles.

Véase también QRhiCommandBuffer y QRhi.

Documentación de tipos de miembros

enum QRhiGraphicsPipeline::BlendFactor

Especifica el factor de mezcla

ConstanteValor
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

Especifica la operación de mezcla

ConstanteValor
QRhiGraphicsPipeline::Add0
QRhiGraphicsPipeline::Subtract1
QRhiGraphicsPipeline::ReverseSubtract2
QRhiGraphicsPipeline::Min3
QRhiGraphicsPipeline::Max4

enum QRhiGraphicsPipeline::ColorMaskComponent
flags QRhiGraphicsPipeline::ColorMask

Valores de bandera para especificar la máscara de escritura de color

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

El tipo ColorMask es un typedef para QFlags<ColorMaskComponent>. Almacena una combinación OR de valores ColorMaskComponent.

enum QRhiGraphicsPipeline::CompareOp

Especifica la función de comparación de profundidad o stencil

ConstanteValorDescripción
QRhiGraphicsPipeline::Never0
QRhiGraphicsPipeline::Less1(por defecto para profundidad)
QRhiGraphicsPipeline::Equal2
QRhiGraphicsPipeline::LessOrEqual3
QRhiGraphicsPipeline::Greater4
QRhiGraphicsPipeline::NotEqual5
QRhiGraphicsPipeline::GreaterOrEqual6
QRhiGraphicsPipeline::Always7(por defecto para stencil)

enum QRhiGraphicsPipeline::CullMode

Especifica el modo de selección

ConstanteValorDescripción
QRhiGraphicsPipeline::None0No culling (por defecto)
QRhiGraphicsPipeline::Front1Rellenar caras frontales
QRhiGraphicsPipeline::Back2Caras posteriores

enum QRhiGraphicsPipeline::Flag
flags QRhiGraphicsPipeline::Flags

Valores de bandera para describir el estado dinámico del pipeline, y otras opciones. El viewport es siempre dinámico.

ConstanteValorDescripción
QRhiGraphicsPipeline::UsesBlendConstants1 << 0Indica que se establecerá una constante de color de mezcla mediante QRhiCommandBuffer::setBlendConstants()
QRhiGraphicsPipeline::UsesStencilRef1 << 1Indica que se establecerá un valor de referencia del stencil a través de QRhiCommandBuffer::setStencilRef()
QRhiGraphicsPipeline::UsesScissor1 << 2Indica que se establecerá un rectángulo de tijera a través de QRhiCommandBuffer::setScissor()
QRhiGraphicsPipeline::CompileShadersWithDebugInfo1 << 3Solicita la compilación de shaders con la información de depuración activada. Esto sólo es relevante cuando se trata de compilar shaders en tiempo de ejecución a partir del código fuente, y sólo cuando la infraestructura subyacente lo soporta. Con ejemplos concretos, esto no es relevante con Vulkan y SPIR-V, porque la compilación de GLSL a SPIR-V no ocurre en tiempo de ejecución. Por otro lado, consideremos Direct3D y HLSL, donde hay múltiples opciones: cuando los paquetes QShader se entregan con bytecode precompilado (DXBC), la información de depuración debe solicitarse a través de la herramienta que genera el archivo .qsb, de forma similar al caso de Vulkan y SPIR-V. Sin embargo, cuando se dispone de código fuente HLSL en los paquetes QShader generados antes o en tiempo de ejecución, la primera fase de la compilación (de código fuente HLSL a formato intermedio) se produce también en tiempo de ejecución, teniendo en cuenta este indicador. La información de depuración es relevante en particular con herramientas como RenderDoc, ya que permite ver el código fuente original al investigar el pipeline y al realizar la depuración del vertex o fragment shader.
QRhiGraphicsPipeline::UsesShadingRate1 << 4Indica que se establecerá un valor de tasa de sombreado por dibujo (por canalización) a través de QRhiCommandBuffer::setShadingRate(). No especificar esta bandera y llamar a setShadingRate() puede llevar a resultados inesperados dependiendo de la API gráfica subyacente.

El tipo Flags es un typedef para QFlags<Flag>. Almacena una combinación OR de valores Flag.

enum QRhiGraphicsPipeline::FrontFace

Especifica el orden de bobinado de la cara frontal

ConstanteValorDescripción
QRhiGraphicsPipeline::CCW0En sentido contrario a las agujas del reloj (por defecto)
QRhiGraphicsPipeline::CW1En el sentido de las agujas del reloj

enum QRhiGraphicsPipeline::PolygonMode

Especifica el modo de rasterización de polígonos

Modo Polígono (Modo Relleno Triángulo en Metal, Modo Relleno en D3D) especifica el modo de relleno utilizado al rasterizar polígonos. Los polígonos pueden dibujarse como sólidos (Relleno), o como una malla metálica (Línea).

La compatibilidad con modos de polígono sin relleno es opcional y se indica mediante la función QRhi::NonFillPolygonMode. Con OpenGL ES y algunas implementaciones de Vulkan la característica será probablemente reportada como no soportada, lo que significa que valores diferentes a Fill no pueden ser usados.

ConstanteValorDescripción
QRhiGraphicsPipeline::Fill0Se rellena el interior del polígono (por defecto)
QRhiGraphicsPipeline::Line1Los bordes del polígono se dibujan como segmentos de línea.

enum QRhiGraphicsPipeline::StencilOp

Especifica la operación de estarcido

ConstanteValorDescripción
QRhiGraphicsPipeline::StencilZero0
QRhiGraphicsPipeline::Keep1(por defecto)
QRhiGraphicsPipeline::Replace2
QRhiGraphicsPipeline::IncrementAndClamp3
QRhiGraphicsPipeline::DecrementAndClamp4
QRhiGraphicsPipeline::Invert5
QRhiGraphicsPipeline::IncrementAndWrap6
QRhiGraphicsPipeline::DecrementAndWrap7

enum QRhiGraphicsPipeline::Topology

Especifica la topología primitiva

ConstanteValorDescripción
QRhiGraphicsPipeline::Triangles0(por defecto)
QRhiGraphicsPipeline::TriangleStrip1
QRhiGraphicsPipeline::TriangleFan2(sólo disponible si se admite QRhi::TriangleFanTopology )
QRhiGraphicsPipeline::Lines3
QRhiGraphicsPipeline::LineStrip4
QRhiGraphicsPipeline::Points5
QRhiGraphicsPipeline::Patches6(sólo disponible si QRhi::Tessellation está soportado, y requiere que las etapas de teselación estén presentes en el pipeline)

Documentación de las funciones miembro

const QRhiShaderStage *QRhiGraphicsPipeline::cbeginShaderStages() const

Devuelve un iterador constante que apunta al primer elemento de la lista de etapas de sombreado.

const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::cbeginTargetBlends() const

Devuelve un iterador constante que apunta al primer elemento de la lista de ajustes de mezcla del objetivo de renderizado.

const QRhiShaderStage *QRhiGraphicsPipeline::cendShaderStages() const

Devuelve un iterador constante que apunta justo después del último elemento de la lista de etapas de sombreado.

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

Devuelve un iterador constante que apunta justo después del último elemento de la lista de ajustes de mezcla del objetivo de renderizado.

[pure virtual] bool QRhiGraphicsPipeline::create()

Crea los recursos gráficos nativos correspondientes. Si ya hay recursos presentes debido a un create() anterior sin destroy() correspondiente, entonces destroy() se llama implícitamente primero.

Devuelve true en caso de éxito, false en caso de fallo de la operación gráfica. Independientemente del valor de retorno, llamar a destroy() es siempre seguro.

Nota: Esto puede ser, dependiendo de la API gráfica subyacente, una operación costosa, especialmente cuando los shaders se compilan/optimizan desde el código fuente o desde un formato bytecode intermedio al propio conjunto de instrucciones de la GPU. Cuando procede, el backend QRhi configura automáticamente las instalaciones no persistentes pertinentes para acelerar esta operación; por ejemplo, el backend Vulkan crea automáticamente un VkPipelineCache para mejorar la reutilización de datos durante la vida útil de la aplicación.

Nota: Los controladores también pueden emplear varias estrategias persistentes (basadas en disco) de almacenamiento en caché para los datos de shader y pipeline, que está oculto y fuera del control de Qt. En algunos casos, dependiendo de la API gráfica y del backend QRhi, existen facilidades dentro de QRhi para gestionar manualmente dicha caché, permitiendo la recuperación de un blob serializable que puede ser recargado en futuras ejecuciones de la aplicación para asegurar tiempos de creación de pipeline más rápidos. Véase QRhi::pipelineCacheData() y QRhi::setPipelineCacheData() para más detalles. Nótese también que cuando se trabaja con una instancia de QRhi gestionada por un framework Qt de nivel superior, como Qt Quick, es posible que dicha caché basada en disco se realice automáticamente, por ejemplo QQuickWindow utiliza por defecto una caché de canalización basada en disco (que se añade a cualquier caché a nivel de controlador).

QRhiGraphicsPipeline::CullMode QRhiGraphicsPipeline::cullMode() const

Devuelve el modo de ocultación de caras actualmente configurado.

Véase también setCullMode().

int QRhiGraphicsPipeline::depthBias() const

Devuelve el sesgo de profundidad establecido actualmente.

Véase también setDepthBias().

QRhiGraphicsPipeline::CompareOp QRhiGraphicsPipeline::depthOp() const

Devuelve la función de comparación de profundidad.

Véase también setDepthOp().

QRhiGraphicsPipeline::Flags QRhiGraphicsPipeline::flags() const

Devuelve las banderas configuradas actualmente.

Véase también setFlags().

QRhiGraphicsPipeline::FrontFace QRhiGraphicsPipeline::frontFace() const

Devuelve el modo de cara frontal actualmente configurado.

Véase también setFrontFace().

[since 6.11] bool QRhiGraphicsPipeline::hasDepthClamp() const

Devuelve true si la abrazadera de profundidad está activada.

Esta función se introdujo en Qt 6.11.

bool QRhiGraphicsPipeline::hasDepthTest() const

Devuelve true si la prueba de profundidad está activada.

bool QRhiGraphicsPipeline::hasDepthWrite() const

Devuelve true si la escritura en profundidad está activada.

bool QRhiGraphicsPipeline::hasStencilTest() const

Devuelve true si la prueba de esténciles está activada.

float QRhiGraphicsPipeline::lineWidth() const

Devuelve el ancho de línea actual. El valor por defecto es 1.0f.

Véase también setLineWidth().

[since 6.7] int QRhiGraphicsPipeline::multiViewCount() const

Devuelve el recuento de vistas. El valor por defecto es 0, indicando que no hay renderizado multivista.

Esta función se introdujo en Qt 6.7.

Véase también setMultiViewCount().

int QRhiGraphicsPipeline::patchControlPointCount() const

Devuelve el recuento de puntos de control de parche establecido actualmente.

Véase también setPatchControlPointCount().

QRhiGraphicsPipeline::PolygonMode QRhiGraphicsPipeline::polygonMode() const

Devuelve el modo de polígono.

Véase también setPolygonMode().

QRhiRenderPassDescriptor *QRhiGraphicsPipeline::renderPassDescriptor() const

Devuelve la dirección QRhiRenderPassDescriptor.

Véase también setRenderPassDescriptor().

[override virtual] QRhiResource::Type QRhiGraphicsPipeline::resourceType() const

Reimplementa: QRhiResource::resourceType() const.

Devuelve el tipo de recurso.

int QRhiGraphicsPipeline::sampleCount() const

Devuelve el número de muestras actual. 1 significa que no hay antialiasing multimuestra.

Véase también setSampleCount().

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

Establece la selección de caras especificada mode.

Véase también cullMode().

void QRhiGraphicsPipeline::setDepthBias(int bias)

Establece la profundidad bias. El valor por defecto es 0.

Véase también depthBias().

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

Activa la fijación de profundidad cuando enable es verdadero. Cuando la fijación de profundidad está activada, las primitivas que de otro modo serían recortadas por el plano de recorte cercano o lejano se rasterizan y sus valores de profundidad se fijan al rango de profundidad. Cuando está desactivada (por defecto), estas primitivas se recortan.

Nota: Este ajuste se ignora cuando la función QRhi::DepthClamp se indica como no soportada.

Esta función se introdujo en Qt 6.11.

Véase también hasDepthClamp().

void QRhiGraphicsPipeline::setDepthOp(QRhiGraphicsPipeline::CompareOp op)

Establece la función de comparación de profundidad op.

Véase también depthOp().

void QRhiGraphicsPipeline::setDepthTest(bool enable)

Activa o desactiva la prueba de profundidad en función de enable. Tanto la prueba de profundidad como la escritura de datos de profundidad están desactivadas por defecto.

Véase también hasDepthTest() y setDepthWrite().

void QRhiGraphicsPipeline::setDepthWrite(bool enable)

Controla la escritura de datos de profundidad en el búfer de profundidad basándose en enable. Por defecto está desactivada. La escritura en profundidad suele activarse junto con la prueba de profundidad.

Nota: Habilitar la escritura en profundidad sin tener habilitada la prueba de profundidad puede no conducir al resultado deseado, y debe evitarse.

Véase también hasDepthWrite() y setDepthTest().

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

Establece las banderas f.

Véase también flags().

void QRhiGraphicsPipeline::setFrontFace(QRhiGraphicsPipeline::FrontFace f)

Establece el modo de la cara frontal f.

Véase también frontFace().

void QRhiGraphicsPipeline::setLineWidth(float width)

Establece la línea width. Si se informa de que la función QRhi::WideLines no está soportada en tiempo de ejecución, se ignoran los valores distintos de 1.0f.

Véase también lineWidth().

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

Establece la vista count para el renderizado multivista. El valor predeterminado es 0, lo que indica que no hay representación multivista. count debe ser 2 o superior para activar la representación multivista.

Multiview sólo está disponible cuando MultiView feature está soportado. El objetivo de renderizado debe ser una matriz de texturas 2D, y el adjunto de color para el objetivo de renderizado debe tener el mismo conjunto count.

Ver QRhiColorAttachment::setMultiViewCount() para más detalles sobre el renderizado multivista.

Esta función se introdujo en Qt 6.7.

Véase también multiViewCount(), QRhi::MultiView, y QRhiColorAttachment::setMultiViewCount().

void QRhiGraphicsPipeline::setPatchControlPointCount(int count)

Establece el número de puntos de control de parche en count. El valor por defecto es 3. Esto se utiliza sólo cuando la topología se establece en Patches.

Véase también patchControlPointCount().

void QRhiGraphicsPipeline::setPolygonMode(QRhiGraphicsPipeline::PolygonMode mode)

Establece el polígono mode. El valor por defecto es Relleno.

Véase también polygonMode() y QRhi::NonFillPolygonMode.

void QRhiGraphicsPipeline::setRenderPassDescriptor(QRhiRenderPassDescriptor *desc)

Se asocia con el QRhiRenderPassDescriptor especificado desc.

Véase también renderPassDescriptor().

void QRhiGraphicsPipeline::setSampleCount(int s)

Establece el recuento de muestras. Los valores típicos para s son 1, 4 u 8. El conducto debe ser siempre compatible con el objetivo de renderizado, es decir, los recuentos de muestras deben coincidir.

Véase también sampleCount() y QRhi::supportedSampleCounts().

void QRhiGraphicsPipeline::setShaderResourceBindings(QRhiShaderResourceBindings *srb)

Se asocia a srb para describir la disposición de los recursos y los propios recursos (QRhiBuffer, QRhiTexture). Esto último es opcional, ya que sólo importa la disposición durante la creación de la canalización. Por lo tanto, el srb pasado aquí puede dejar el búfer real o los objetos de textura sin especificar (nullptr) siempre y cuando haya otro, layout-compatible QRhiShaderResourceBindings vinculado a través de setShaderResources() antes de grabar las llamadas de dibujo.

Véase también shaderResourceBindings().

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

Establece el list de las etapas de sombreado.

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

Establece la lista de etapas de sombreado a partir de los iteradores first y last.

void QRhiGraphicsPipeline::setSlopeScaledDepthBias(float bias)

Establece la profundidad escalada de la pendiente bias. El valor por defecto es 0.

Véase también slopeScaledDepthBias().

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

Establece la prueba de estarcido state para las caras posteriores.

Véase también stencilBack().

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

Establece la prueba de estarcido state para las caras frontales.

Véase también stencilFront().

void QRhiGraphicsPipeline::setStencilReadMask(quint32 mask)

Establece la lectura del esténcil mask. El valor por defecto es 0xFF.

Véase también stencilReadMask().

void QRhiGraphicsPipeline::setStencilTest(bool enable)

Activa o desactiva las pruebas de esténcil basadas en enable. Por defecto está desactivado.

Véase también hasStencilTest().

void QRhiGraphicsPipeline::setStencilWriteMask(quint32 mask)

Establece la escritura del esténcil mask. El valor por defecto es 0xFF.

Véase también stencilWriteMask().

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

Establece la list de los ajustes de mezcla del objetivo de renderizado. Se trata de una lista porque cuando se utilizan varios objetivos de renderizado (es decir, un QRhiTextureRenderTarget con más de un QRhiColorAttachment), es necesario que haya una estructura TargetBlend por objetivo de renderizado (adjunto de color).

Por defecto hay un conjunto TargetBlend construido por defecto.

Véase también QRhi::MaxColorAttachments.

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

Establece la lista de ajustes de mezcla del objetivo de renderizado de los iteradores first y last.

void QRhiGraphicsPipeline::setTopology(QRhiGraphicsPipeline::Topology t)

Establece la topología primitiva t.

Véase también topology().

void QRhiGraphicsPipeline::setVertexInputLayout(const QRhiVertexInputLayout &layout)

Especifica la entrada de vértices layout.

Véase también vertexInputLayout().

QRhiShaderResourceBindings *QRhiGraphicsPipeline::shaderResourceBindings() const

Devuelve el objeto QRhiShaderResourceBindings asociado actualmente.

Véase también setShaderResourceBindings().

const QRhiShaderStage *QRhiGraphicsPipeline::shaderStageAt(qsizetype index) const

Devuelve la etapa del sombreador en la dirección index especificada.

qsizetype QRhiGraphicsPipeline::shaderStageCount() const

Devuelve el número de etapas de sombreado en este pipeline.

float QRhiGraphicsPipeline::slopeScaledDepthBias() const

Devuelve el sesgo de profundidad a escala de pendiente actualmente establecido.

Véase también setSlopeScaledDepthBias().

QRhiGraphicsPipeline::StencilOpState QRhiGraphicsPipeline::stencilBack() const

Devuelve el estado actual de la prueba de estarcido para las caras posteriores.

Véase también setStencilBack().

QRhiGraphicsPipeline::StencilOpState QRhiGraphicsPipeline::stencilFront() const

Devuelve el estado actual de prueba del esténcil para las caras frontales.

Véase también setStencilFront().

quint32 QRhiGraphicsPipeline::stencilReadMask() const

Devuelve la máscara de lectura actual.

Véase también setStencilReadMask().

quint32 QRhiGraphicsPipeline::stencilWriteMask() const

Devuelve la máscara de escritura del esténcil actual.

Véase también setStencilWriteMask().

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

Devuelve la configuración de mezcla del objetivo de renderizado en la dirección index especificada.

qsizetype QRhiGraphicsPipeline::targetBlendCount() const

Devuelve el número de ajustes de mezcla del objetivo de renderizado.

QRhiGraphicsPipeline::Topology QRhiGraphicsPipeline::topology() const

Devuelve la topología primitiva actualmente establecida.

Véase también setTopology().

QRhiVertexInputLayout QRhiGraphicsPipeline::vertexInputLayout() const

Devuelve la especificación de diseño de entrada de vértices actualmente establecida.

Véase también 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.