QtBase
v6.3.1
|
#include <qrhi_p.h>
Classes | |
class | StencilOpState |
class | TargetBlend |
Protected Member Functions | |
QRhiGraphicsPipeline (QRhiImplementation *rhi) | |
Protected Member Functions inherited from QRhiResource | |
QRhiResource (QRhiImplementation *rhi) | |
Protected Attributes | |
Flags | m_flags |
Topology | m_topology = Triangles |
CullMode | m_cullMode = None |
FrontFace | m_frontFace = CCW |
QVarLengthArray< TargetBlend, 8 > | m_targetBlends |
bool | m_depthTest = false |
bool | m_depthWrite = false |
CompareOp | m_depthOp = Less |
bool | m_stencilTest = false |
StencilOpState | m_stencilFront |
StencilOpState | m_stencilBack |
quint32 | m_stencilReadMask = 0xFF |
quint32 | m_stencilWriteMask = 0xFF |
int | m_sampleCount = 1 |
float | m_lineWidth = 1.0f |
int | m_depthBias = 0 |
float | m_slopeScaledDepthBias = 0.0f |
QVarLengthArray< QRhiShaderStage, 4 > | m_shaderStages |
QRhiVertexInputLayout | m_vertexInputLayout |
QRhiShaderResourceBindings * | m_shaderResourceBindings = nullptr |
QRhiRenderPassDescriptor * | m_renderPassDesc = nullptr |
Protected Attributes inherited from QRhiResource | |
QRhiImplementation * | m_rhi = nullptr |
quint64 | m_id |
QByteArray | m_objectName |
Specifies the blend factor
\value Zero \value One \value SrcColor \value OneMinusSrcColor \value DstColor \value OneMinusDstColor \value SrcAlpha \value OneMinusSrcAlpha \value DstAlpha \value OneMinusDstAlpha \value ConstantColor \value OneMinusConstantColor \value ConstantAlpha \value OneMinusConstantAlpha \value SrcAlphaSaturate \value Src1Color \value OneMinusSrc1Color \value Src1Alpha \value OneMinusSrc1Alpha
Flag values for describing the dynamic state of the pipeline, and other options. The viewport is always dynamic.
\value UsesBlendConstants Indicates that a blend color constant will be set via QRhiCommandBuffer::setBlendConstants()
\value UsesStencilRef Indicates that a stencil reference value will be set via QRhiCommandBuffer::setStencilRef()
\value UsesScissor Indicates that a scissor rectangle will be set via QRhiCommandBuffer::setScissor()
\value CompileShadersWithDebugInfo Requests compiling shaders with debug information enabled. This is relevant only when runtime shader compilation from source code is involved, and only when the underlying infrastructure supports this. With concrete examples, this is not relevant with Vulkan and SPIR-V, because the GLSL-to-SPIR-V compilation does not happen at run time. On the other hand, consider Direct3D and HLSL, where there are multiple options: when the QShader packages ship with pre-compiled bytecode (DXBC
), debug information is to be requested through the tool that generates the {.qsb} file, similarly to the case of Vulkan and SPIR-V. However, when having HLSL source code in the pre- or runtime-generated QShader packages, the first phase of compilation (HLSL source to intermediate format) happens at run time too, with this flag taken into account. Debug information is relevant in particular with tools like RenderDoc since it allows seeing the original source code when investigating the pipeline and when performing vertex or fragment shader debugging.
Enumerator | |
---|---|
UsesBlendConstants | |
UsesStencilRef | |
UsesScissor | |
CompileShadersWithDebugInfo |
Specifies the stencil operation
\value StencilZero \value Keep (default) \value Replace \value IncrementAndClamp \value DecrementAndClamp \value Invert \value IncrementAndWrap \value DecrementAndWrap
Enumerator | |
---|---|
StencilZero | |
Keep | |
Replace | |
IncrementAndClamp | |
DecrementAndClamp | |
Invert | |
IncrementAndWrap | |
DecrementAndWrap |
Specifies the primitive topology
\value Triangles (default) \value TriangleStrip \value TriangleFan (only available if QRhi::TriangleFanTopology is supported) \value Lines \value LineStrip \value Points
Enumerator | |
---|---|
Triangles | |
TriangleStrip | |
TriangleFan | |
Lines | |
LineStrip | |
Points |
|
protected |
|
inline |
|
inline |
|
inline |
|
inline |
|
pure virtual |
Creates the corresponding native graphics resources. If there are already resources present due to an earlier create() with no corresponding destroy(), then destroy() is called implicitly first.
true
when successful, false
when a graphics operation failed. Regardless of the return value, calling destroy() is always safe. Implemented in QVkGraphicsPipeline, QNullGraphicsPipeline, QMetalGraphicsPipeline, QGles2GraphicsPipeline, and QD3D11GraphicsPipeline.
|
inline |
|
inline |
|
inline |
|
overridevirtual |
|
inline |
|
inline |
Enables or disables depth testing. Both depth test and the writing out of depth data are disabled by default.
|
inline |
Controls the writing out of depth data into the depth buffer. By default this is disabled. Depth write is typically enabled together with the depth test.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |