QRhiGraphicsPipeline Class

グラフィックスパイプラインの状態リソース。詳細...

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

パブリックタイプ

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

パブリック関数

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
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)
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

再実装パブリック関数

virtual QRhiResource::Type resourceType() const override

詳細説明

グラフィックス・パイプラインを表します。基礎となるネイティブ・グラフィックスAPIにおいて、これが具体的に何にマッピングされるかはさまざまです。パイプラインオブジェクトの概念がある場合、例えばVulkanでは、create ()を呼び出すと、QRhi バックエンドがそのようなオブジェクトを作成します。その他の場所、たとえばOpenGLでは、QRhiGraphicsPipelineは単にさまざまな状態を収集するだけで、create ()の主なタスクは対応するシェーダープログラムをセットアップすることですが、要求された状態を見るのは後の時点に延期されます。

すべてのQRhiResource サブクラスと同様に、2 段階の初期化パターンが適用されます。たとえば、setDepthTest() のように、セッターを介して値を設定することは、create() を呼び出した後にのみ有効です。QRhiGraphicsPipeline がcreate() で初期化された後は、値を変更しないでください。状態を変更するには、新しい値を設定し、create() を再度呼び出します。しかし、この操作では、すべてのネイティブ・リソースが解放され、新しいリソースが作成されます。その結果、重く高価な操作になる可能性がある。むしろ、異なるステートを持つ複数のパイプラインを作成し、レンダー パスを記録するときにswitch between them を使用することをお勧めします。

注意: シェーダステージの設定は必須です。少なくとも 1 つのステージがあり、頂点ステージがなければなりません。

注: シェーダーリソースバインディングの設定は必須です。参照されるQRhiShaderResourceBindings は、create() が呼び出されるまでに、create() がすでに呼び出されている必要があります。どのステージのどのシェーダもリソースを期待していない限り、バインディングを持たないQRhiShaderResourceBindings との関連付けも有効です。実際のリソースを指定しないQRhiShaderResourceBindings オブジェクト(すなわち、バイン ディングポイントのためのバッファ、テクスチャなどがnullptr に設定され ている)を使用することも、すべてのバインディングのリソースを指定するlayout-compatible QRhiShaderResourceBindings が、レンダーパスを記録するときにsetShaderResources() を介して設定される限り、有効です。

注: レンダーパス記述子の設定は必須です。setRenderPassDescriptor() に渡せるQRhiRenderPassDescriptor を取得するには、QRhiTextureRenderTarget::newCompatibleRenderPassDescriptor() またはQRhiSwapChain::newCompatibleRenderPassDescriptor() を使用します。

:頂点入力レイアウトの設定は必須です。

:sampleCount() のデフォルトは 1 であり、レンダーターゲットのカラーおよび深度ステンシルアタッチメントのサンプルカウントと一致する必要があります。

: デフォルトでは、深度テスト、深度書き込み、ステンシル テストは無効になっています。フェース カリング モードのデフォルトは、カリングなしです。

注: stencilReadMask() とstencilWriteMask() は両方の面に適用されます。どちらもデフォルトは0xFFです。

使用例

グラフィックスパイプラインのすべての設定には、多くのアプリケーションに適したデフォルト値があります。したがって、グラフィックスパイプラインを作成する最小限の例は次のようになります。これは、頂点シェーダが入力位置 0 で単一のvec3 position 入力を取ると仮定しています。QRhiShaderResourceBindings およびQRhiRenderPassDescriptor オブジェクトと、頂点およびフラグメントステージ用のQShader コレクションを使用すると、次のようなパイプラインを作成できます:

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

上記のコードは、多くの設定とステートにデフォルトを使用するパイプラインオブジェクトを作成します。たとえば、Triangles トポロジーを使用し、バックフェイスカリングは使用せず、ブレンディングは無効ですが、カラー書き込みは4つのチャンネルすべてで有効で、深度テスト/書き込みは無効で、ステンシル操作は無効です。

注: これは互換性保証に制限のある RHI API である。詳細はQRhi を参照。

QRhiCommandBuffer およびQRhiも参照の こと。

メンバータイプ ドキュメント

enum QRhiGraphicsPipeline::BlendFactor

ブレンド係数を指定する

定数
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

ブレンド操作を指定する

定数
QRhiGraphicsPipeline::Add0
QRhiGraphicsPipeline::Subtract1
QRhiGraphicsPipeline::ReverseSubtract2
QRhiGraphicsPipeline::Min3
QRhiGraphicsPipeline::Max4

enum QRhiGraphicsPipeline::ColorMaskComponent
flags QRhiGraphicsPipeline::ColorMask

色書き込みマスクを指定するためのフラグ値

定数
QRhiGraphicsPipeline::R1 << 0
QRhiGraphicsPipeline::G1 << 1
QRhiGraphicsPipeline::B1 << 2
QRhiGraphicsPipeline::A1 << 3

ColorMask 型はQFlags<ColorMaskComponent> の typedef です。ColorMaskComponentの値のORの組み合わせを格納します。

enum QRhiGraphicsPipeline::CompareOp

深度またはステンシル比較関数を指定します。

定数説明
QRhiGraphicsPipeline::Never0
QRhiGraphicsPipeline::Less1(深度のデフォルト)
QRhiGraphicsPipeline::Equal2
QRhiGraphicsPipeline::LessOrEqual3
QRhiGraphicsPipeline::Greater4
QRhiGraphicsPipeline::NotEqual5
QRhiGraphicsPipeline::GreaterOrEqual6
QRhiGraphicsPipeline::Always7(ステンシルのデフォルト)

enum QRhiGraphicsPipeline::CullMode

カリングモードを指定します。

定数説明
QRhiGraphicsPipeline::None0カリングなし(デフォルト)
QRhiGraphicsPipeline::Front1前面をカリング
QRhiGraphicsPipeline::Back2裏面をカリング

enum QRhiGraphicsPipeline::Flag
flags QRhiGraphicsPipeline::Flags

パイプラインの動的状態やその他のオプションを記述するためのフラグ値。ビューポートは常に動的です。

定数説明
QRhiGraphicsPipeline::UsesBlendConstants1 << 0ブレンドカラー定数がQRhiCommandBuffer::setBlendConstants() によって設定されることを示します。
QRhiGraphicsPipeline::UsesStencilRef1 << 1ステンシル参照値がQRhiCommandBuffer::setStencilRef() によって設定されることを示します。
QRhiGraphicsPipeline::UsesScissor1 << 2シザー矩形がQRhiCommandBuffer::setScissor() によって設定されることを示します。
QRhiGraphicsPipeline::CompileShadersWithDebugInfo1 << 3デバッグ情報を有効にしてシェーダーをコンパイルすることを要求します。これは、ソースコードからのランタイムシェーダコンパイルが関係し、基礎となるインフラストラクチャがこれをサポートする場合にのみ関連します。具体的な例では、GLSL から SPIR-V へのコンパイルは実行時に行われないため、Vulkan と SPIR-V では関係ありません。一方、Direct3DとHLSLについては、複数の選択肢があります。QShader パッケージがコンパイル済みのバイトコード(DXBC )と共に出荷される場合、デバッグ情報は、VulkanとSPIR-Vの場合と同様に、.qsb ファイルを生成するツールを通じて要求されます。しかし、HLSL ソースコードが事前または実行時に生成されるQShader パッケージに含まれている場合、コンパイルの第 1 段階(HLSL ソースから中間フォーマットへの変換)は、このフラグを考慮した上で実行時にも行われます。デバッグ情報は、パイプラインを調査するときや、頂点シェーダーやフラグメントシェーダーのデバッグを実行するときに元のソースコードを見ることができるので、特に RenderDoc のようなツールに関連します。

Flags 型はQFlags<Flag> の typedef です。Flag値のORの組み合わせを格納します。

enum QRhiGraphicsPipeline::FrontFace

前面の巻き順を指定する

定数説明
QRhiGraphicsPipeline::CCW0反時計回り(デフォルト)
QRhiGraphicsPipeline::CW1時計回り

enum QRhiGraphicsPipeline::PolygonMode

ポリゴンのラスタライズモードを指定します

ポリゴンモード(メタルでは三角形塗りつぶしモード、D3Dでは塗りつぶしモード)は、ポリゴンのラスタライズ時に使用する塗りつぶしモードを指定します。ポリゴンはソリッド(Fill)またはワイヤーメッシュ(Line)として描画されます。

非塗りつぶしポリゴンモードのサポートはオプションで、QRhi::NonFillPolygonMode 機能で示されます。OpenGL ESと一部のVulkan実装では、この機能はサポートされていないと報告される可能性が高く、これはFill以外の値を使用できないことを意味します。

定数説明
QRhiGraphicsPipeline::Fill0ポリゴンの内部が塗りつぶされます(デフォルト)。
QRhiGraphicsPipeline::Line1ポリゴンの境界は線分として描画されます。

enum QRhiGraphicsPipeline::StencilOp

ステンシル操作を指定します。

定数説明
QRhiGraphicsPipeline::StencilZero0
QRhiGraphicsPipeline::Keep1(デフォルト)
QRhiGraphicsPipeline::Replace2
QRhiGraphicsPipeline::IncrementAndClamp3
QRhiGraphicsPipeline::DecrementAndClamp4
QRhiGraphicsPipeline::Invert5
QRhiGraphicsPipeline::IncrementAndWrap6
QRhiGraphicsPipeline::DecrementAndWrap7

enum QRhiGraphicsPipeline::Topology

プリミティブトポロジーを指定

定数説明
QRhiGraphicsPipeline::Triangles0(デフォルト)
QRhiGraphicsPipeline::TriangleStrip1
QRhiGraphicsPipeline::TriangleFan2(QRhi::TriangleFanTopology がサポートされている場合のみ使用可能)
QRhiGraphicsPipeline::Lines3
QRhiGraphicsPipeline::LineStrip4
QRhiGraphicsPipeline::Points5
QRhiGraphicsPipeline::Patches6(QRhi::Tessellation がサポートされている場合にのみ利用可能で、パイプラインにテッセレーションステージが存在する必要があります)

メンバ関数ドキュメント

const QRhiShaderStage *QRhiGraphicsPipeline::cbeginShaderStages() const

シェーダーステージリストの最初の項目を指す const イテレータを返します。

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

レンダーターゲットブレンド設定リストの最初の項目を指すconstイテレータを返します。

const QRhiShaderStage *QRhiGraphicsPipeline::cendShaderStages() const

シェーダステージリストの最後の項目の直後を指す const イテレータを返します。

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

レンダーターゲットブレンド設定リストの最後の項目の直後を指すconstイテレータを返します。

[pure virtual] bool QRhiGraphicsPipeline::create()

対応するネイティブグラフィックスリソースを作成します。対応するdestroy() がない以前の create() によってすでにリソースが存在する場合は、destroy() が最初に暗黙的に呼び出されます。

グラフィックス操作に成功した場合はtrue を、失敗した場合はfalse を返します。返り値にかかわらず、destroy ()を呼び出すと常に安全である。

注意: 特に、シェーダがソースからコンパイル/最適化されたり、中間バイトコード フォーマットから GPU 独自の命令セットにコンパイル/最適化されたりする場合、基礎となるグ ラフィックス API によっては、これは高価な操作になる可能性があります。該当する場合、QRhi バックエンドは、これを加速するために関連する非パーシステント機能を自動的にセットアップします。たとえば、Vulkan バックエンドは、アプリケーションのライフタイム中にデータの再利用を改善するためにVkPipelineCache を自動的に作成します。

注意: ドライバは、シェーダとパイプラインデータのために様々な永続的な(ディスクベースの)キャッシング戦略を採用することがあります。グラフィックス API とQRhi バックエンドによっては、QRhi 内にそのようなキャッシュを手動で管理する機能があり、パイプラインの作成時間を短縮するために、アプリケーションの将来の実行で再ロードできるシリアライズ可能なブロブを取得できます。詳細はQRhi::pipelineCacheData() とQRhi::setPipelineCacheData() を参照のこと。また、Qt Quick のような、より高いレベルの Qt フレームワークによって管理されるQRhi インスタンスで作業する場合、そのようなディスクベースのキャッシュが自動的に処理される可能性があることに注意してください。例えば、QQuickWindow は、デフォルトでディスクベースのパイプラインキャッシュを使用します(これは、ドライバレベルのキャッシュに加えて行われます)。

QRhiGraphicsPipeline::CullMode QRhiGraphicsPipeline::cullMode() const

現在設定されている顔のカリングモードを返します。

setCullMode()も参照

int QRhiGraphicsPipeline::depthBias() const

現在設定されている深度バイアスを返します。

setDepthBias()も参照

QRhiGraphicsPipeline::CompareOp QRhiGraphicsPipeline::depthOp() const

深度比較関数を返します。

setDepthOp()も参照して ください。

QRhiGraphicsPipeline::Flags QRhiGraphicsPipeline::flags() const

現在設定されているフラグを返します。

setFlags()も参照

QRhiGraphicsPipeline::FrontFace QRhiGraphicsPipeline::frontFace() const

現在設定されている前面モードを返します。

setFrontFace() も参照して ください。

bool QRhiGraphicsPipeline::hasDepthTest() const

深度テストが有効な場合に true を返します。

bool QRhiGraphicsPipeline::hasDepthWrite() const

深度書き込みが有効な場合に true を返します。

bool QRhiGraphicsPipeline::hasStencilTest() const

ステンシルテストが有効な場合は true を返します。

float QRhiGraphicsPipeline::lineWidth() const

現在設定されている線幅を返します。デフォルトは 1.0f です。

setLineWidth()も参照してください

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

ビューカウントを返します。デフォルトは 0 で、マルチビューレンダリングがないことを示します。

この関数は Qt 6.7 で導入されました。

setMultiViewCount()も参照して ください。

int QRhiGraphicsPipeline::patchControlPointCount() const

現在設定されているパッチコントロールポイントカウントを返します。

setPatchControlPointCount() も参照して ください。

QRhiGraphicsPipeline::PolygonMode QRhiGraphicsPipeline::polygonMode() const

ポリゴンモードを返します。

setPolygonMode()も参照して ください。

QRhiRenderPassDescriptor *QRhiGraphicsPipeline::renderPassDescriptor() const

現在設定されているQRhiRenderPassDescriptor を返します。

setRenderPassDescriptor()も参照して ください。

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

再インプリメント:QRhiResource::resourceType() const.

リソースタイプを返します。

int QRhiGraphicsPipeline::sampleCount() const

現在設定されているサンプル数を返します。1 は、マルチサンプルアンチエイリアスを行わないことを意味します。

setSampleCount()も参照してください

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

指定された顔のカリングmode を設定します。

cullMode()も参照して ください。

void QRhiGraphicsPipeline::setDepthBias(int bias)

深度bias を設定します。デフォルト値は 0。

depthBias()も参照して ください。

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

深度比較関数を設定しますop.

depthOp() も参照

void QRhiGraphicsPipeline::setDepthTest(bool enable)

enable に基づいて深度テストを有効または無効にします。デフォルトでは、深度テストも深度データの書き出しも無効になっている。

hasDepthTest() およびsetDepthWrite() も参照

void QRhiGraphicsPipeline::setDepthWrite(bool enable)

enable に基づいて、深度バッファへの深度データの書き出しを制御します。デフォルトでは無効。深度書き込みは通常、深度テストとともに有効にされる。

注意: 深度テストが有効になっていない状態で深度書き込みを有効にすると、望ましい結果にならない可能性があるので、避けるべきである。

hasDepthWrite() およびsetDepthTest()も参照のこと

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

f フラグを設定する。

flags()も参照

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

前面モードを設定するf

frontFace()も参照

void QRhiGraphicsPipeline::setLineWidth(float width)

行を設定しますwidth.実行時にQRhi::WideLines 機能がサポートされていないと報告された場合、1.0f 以外の値は無視されます。

lineWidth() も参照して ください。

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

マルチビュー・レンダリングのためのビューcount を設定します。デフォルトは0であり、マルチビューレンダリングを行わないことを示す。マルチビューレンダリングをトリガするには、count が2以上でなければならない。

マルチビューは、MultiView feature がサポートされていると報告された場合にのみ利用可能です。レンダーターゲットは 2D テクスチャ配列でなければならず、レンダーターゲットのカラーアタッチメントは同じcount セットでなければなりません。

マルチビューレンダリングの詳細についてはQRhiColorAttachment::setMultiViewCount() を参照してください。

この関数は Qt 6.7 で導入されました。

multiViewCount()、QRhi::MultiView 、およびQRhiColorAttachment::setMultiViewCount()も参照してください

void QRhiGraphicsPipeline::setPatchControlPointCount(int count)

パッチ制御点の数をcount に設定します。デフォルト値は 3 です。これは、トポロジーがPatches に設定されている場合にのみ使用されます。

patchControlPointCount()も参照して ください。

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

ポリゴンmode を設定します。デフォルトは Fill です。

polygonMode() およびQRhi::NonFillPolygonModeも参照のこと

void QRhiGraphicsPipeline::setRenderPassDescriptor(QRhiRenderPassDescriptor *desc)

指定されたQRhiRenderPassDescriptor desc に関連付けます。

renderPassDescriptor()も参照して ください。

void QRhiGraphicsPipeline::setSampleCount(int s)

サンプル数を設定します。s の代表的な値は、1、4、または 8 です。パイプラインは常にレンダーターゲットと互換性がなければならない。

sampleCount() およびQRhi::supportedSampleCounts()も参照

void QRhiGraphicsPipeline::setShaderResourceBindings(QRhiShaderResourceBindings *srb)

リソースバインディングレイアウトを記述するsrb とリソース (QRhiBuffer,QRhiTexture) 自体を関連付けます。パイプライン作成時に重要なのはレイアウトだけなので、後者はオプションです。したがって、ここで渡されるsrb は、描画コールを記録する前にsetShaderResources() を介して別のlayout-compatible QRhiShaderResourceBindings がバインドされている限り、実際のバッファまたはテクスチャオブジェクトを指定しないまま (nullptr) にすることができます。

shaderResourceBindings()も参照

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

シェーダステージのlist を設定します。

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

イテレータfirst およびlast からシェーダステージのリストを設定します。

void QRhiGraphicsPipeline::setSlopeScaledDepthBias(float bias)

スロープのスケーリングされた深さを設定しますbias 。デフォルト値は 0 です。

slopeScaledDepthBias()も参照

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

裏面のステンシルテストstate を設定します。

stencilBack()も参照して ください。

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

前面に対するステンシルテストstate を設定します。

stencilFront() も参照

void QRhiGraphicsPipeline::setStencilReadMask(quint32 mask)

ステンシル・リードmask を設定します。デフォルト値は 0xFF です。

stencilReadMask() も参照

void QRhiGraphicsPipeline::setStencilTest(bool enable)

enable に基づくステンシル・テストを有効または無効にします。デフォルトでは無効。

hasStencilTest()も参照

void QRhiGraphicsPipeline::setStencilWriteMask(quint32 mask)

ステンシル書き込みmask を設定します。デフォルト値は 0xFF です。

stencilWriteMask() も参照

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

レンダーターゲットのブレンド設定のlist を設定します。これは、複数のレンダーターゲットが使用される場合(すなわち、複数のQRhiColorAttachment を持つQRhiTextureRenderTarget )、レンダーターゲット(カラーアタッチメント)ごとにTargetBlend 構造体が必要であるため、リストである。

デフォルトでは、デフォルト構造のTargetBlend セットは1つです。

QRhi::MaxColorAttachmentsも参照してください

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

イテレータfirst およびlast から、レンダーターゲットのブレンド設定のリストを設定します。

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

プリミティブトポロジーを設定するt

topology()も参照して ください。

void QRhiGraphicsPipeline::setVertexInputLayout(const QRhiVertexInputLayout &layout)

頂点入力を指定しますlayout.

vertexInputLayout()も参照して ください。

QRhiShaderResourceBindings *QRhiGraphicsPipeline::shaderResourceBindings() const

現在関連付けられているQRhiShaderResourceBindings オブジェクトを返します。

setShaderResourceBindings()も参照して ください。

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

指定されたindex のシェーダ・ステージを返します。

qsizetype QRhiGraphicsPipeline::shaderStageCount() const

このパイプライン内のシェーダステージの数を返します。

float QRhiGraphicsPipeline::slopeScaledDepthBias() const

現在設定されている傾斜スケーリングされた深度バイアスを返します。

setSlopeScaledDepthBias()も参照してください

QRhiGraphicsPipeline::StencilOpState QRhiGraphicsPipeline::stencilBack() const

バックフェースの現在のステンシルテスト状態を返します。

setStencilBack() も参照して ください。

QRhiGraphicsPipeline::StencilOpState QRhiGraphicsPipeline::stencilFront() const

前面に対する現在のステンシル テスト状態を返します。

setStencilFront()も参照

quint32 QRhiGraphicsPipeline::stencilReadMask() const

現在のステンシル読み取りマスクを返します。

setStencilReadMask() も参照

quint32 QRhiGraphicsPipeline::stencilWriteMask() const

現在のステンシル書き込みマスクを返す。

setStencilWriteMask() も参照して ください。

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

指定されたindex におけるレンダーターゲットブレンド設定を返します。

qsizetype QRhiGraphicsPipeline::targetBlendCount() const

レンダーターゲットブレンド設定の数を返します。

QRhiGraphicsPipeline::Topology QRhiGraphicsPipeline::topology() const

現在設定されているプリミティブトポロジーを返します。

setTopology() も参照して ください。

QRhiVertexInputLayout QRhiGraphicsPipeline::vertexInputLayout() const

現在設定されている頂点入力レイアウト仕様を返します。

setVertexInputLayout() も参照して ください。

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。