このページでは

QSGMaterialShader::GraphicsPipelineState Struct

struct QSGMaterialShader::GraphicsPipelineState

このマテリアルが、現在アクティブなグラフィックスパイプラインの状態に適用しようとする状態の変更について説明します。詳細...

パブリック型

enum BlendFactor { Zero, One, SrcColor, OneMinusSrcColor, DstColor, …, OneMinusSrc1Alpha }
(since 6.8) enum class BlendOp { Add, Subtract, ReverseSubtract, Min, Max }
flags ColorMask
enum ColorMaskComponent { R, G, B, A }
enum CullMode { CullNone, CullFront, CullBack }
(since 6.4) enum PolygonMode { Fill, Line }

パブリック変数

QColor blendConstant
bool blendEnable
QSGMaterialShader::GraphicsPipelineState::ColorMask colorWrite
QSGMaterialShader::GraphicsPipelineState::CullMode cullMode
(since 6.5) QSGMaterialShader::GraphicsPipelineState::BlendFactor dstAlpha
QSGMaterialShader::GraphicsPipelineState::BlendFactor dstColor
(since 6.8) QSGMaterialShader::GraphicsPipelineState::BlendOp opAlpha
(since 6.8) QSGMaterialShader::GraphicsPipelineState::BlendOp opColor
(since 6.4) QSGMaterialShader::GraphicsPipelineState::PolygonMode polygonMode
(since 6.5) bool separateBlendFactors
(since 6.5) QSGMaterialShader::GraphicsPipelineState::BlendFactor srcAlpha
QSGMaterialShader::GraphicsPipelineState::BlendFactor srcColor

詳細な説明

QSGMaterialShader とは異なり、QSGMaterialShader では、基盤となるグラフィックスAPIを使用して状態変更コマンドを直接発行することはできません。これは主に、個別に変更可能な状態という概念が非推奨と見なされており、最新のグラフィックスAPIではサポートされていないためです。

したがって、サポートされている状態のセットを含むデータ構造を公開するのは `QSGMaterialShader ` の役割であり、マテリアルは(実装がある場合)、`updatePipelineState()` 内でその状態を変更することができます。その後、シーングラフは内部的にこれらの変更をアクティブなグラフィックス・パイプラインの状態に適用し、必要に応じてそれらをロールバックします。

updateGraphicsPipelineState() が呼び出されると、この構造体のすべてのメンバーは、レンダラーの現在の状態を反映する有効な値に設定されます。値を一切変更しない(またはこの関数を再実装しない)場合は、マテリアルがデフォルト値で問題ないことを示します(ただし、デフォルト値は、例えば `QSGMaterial ` フラグなどに応じて動的に変化します)。

メンバ型のドキュメント

enum GraphicsPipelineState::BlendFactor

定数定数
QSGMaterialShader::GraphicsPipelineState::Zero0
QSGMaterialShader::GraphicsPipelineState::One1
QSGMaterialShader::GraphicsPipelineState::SrcColor2
QSGMaterialShader::GraphicsPipelineState::OneMinusSrcColor3
QSGMaterialShader::GraphicsPipelineState::DstColor4
QSGMaterialShader::GraphicsPipelineState::OneMinusDstColor5
QSGMaterialShader::GraphicsPipelineState::SrcAlpha6
QSGMaterialShader::GraphicsPipelineState::OneMinusSrcAlpha7
QSGMaterialShader::GraphicsPipelineState::DstAlpha8
QSGMaterialShader::GraphicsPipelineState::OneMinusDstAlpha9
QSGMaterialShader::GraphicsPipelineState::ConstantColor10
QSGMaterialShader::GraphicsPipelineState::OneMinusConstantColor11
QSGMaterialShader::GraphicsPipelineState::ConstantAlpha12
QSGMaterialShader::GraphicsPipelineState::OneMinusConstantAlpha13
QSGMaterialShader::GraphicsPipelineState::SrcAlphaSaturate14
QSGMaterialShader::GraphicsPipelineState::Src1Color15
QSGMaterialShader::GraphicsPipelineState::OneMinusSrc1Color16
QSGMaterialShader::GraphicsPipelineState::Src1Alpha17
QSGMaterialShader::GraphicsPipelineState::OneMinusSrc1Alpha18

[since 6.8] enum class GraphicsPipelineState::BlendOp

定数値
QSGMaterialShader::GraphicsPipelineState::BlendOp::Add0
QSGMaterialShader::GraphicsPipelineState::BlendOp::Subtract1
QSGMaterialShader::GraphicsPipelineState::BlendOp::ReverseSubtract2
QSGMaterialShader::GraphicsPipelineState::BlendOp::Min3
QSGMaterialShader::GraphicsPipelineState::BlendOp::Max4

この列挙型はQt 6.8で導入されました。

enum GraphicsPipelineState::ColorMaskComponent
flags GraphicsPipelineState::ColorMask

定数値
QSGMaterialShader::GraphicsPipelineState::R1 << 0
QSGMaterialShader::GraphicsPipelineState::G1 << 1
QSGMaterialShader::GraphicsPipelineState::B1 << 2
QSGMaterialShader::GraphicsPipelineState::A1 << 3

ColorMask型は、QFlags<ColorMaskComponent>のtypedefです。この型は、ColorMaskComponent値の論理和(OR)を格納します。

enum GraphicsPipelineState::CullMode

定数定数
QSGMaterialShader::GraphicsPipelineState::CullNone0
QSGMaterialShader::GraphicsPipelineState::CullFront1
QSGMaterialShader::GraphicsPipelineState::CullBack2

[since 6.4] enum GraphicsPipelineState::PolygonMode

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

ポリゴンモード(Metal では「Triangle Fill Mode」、D3D では「Fill Mode」)は、ポリゴンをラスタライズする際に使用される塗りつぶしモードを指定します。ポリゴンは、塗りつぶし(Fill)として、またはワイヤーフレーム(Line)として描画されます。

警告:OpenGL ESはLine ポリゴンモードをサポートしていません。OpenGL ESでは、設定されているポリゴンモードにかかわらず、すべてのポリゴンが塗りつぶされた状態でラスタライズされます。Line を使用すると、アプリケーションの移植性が失われます。

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

この列挙型は Qt 6.4 で導入されました。

メンバ変数のドキュメント

QColor GraphicsPipelineState::blendConstant

ブレンド係数が定数値を使用するように設定されている場合に適用されるブレンド定数。

bool GraphicsPipelineState::blendEnable

ブレンディングを有効にします。

注:このフラグの変更は 慎重に行う必要があり、できれば避けるべきです。むしろ、マテリアルでは常に QSGMaterial::Blend フラグを使用して、ブレンディングを使用することを指定する必要があります。QSGMaterial::Blend を宣言していないマテリアルでこの値を false から true に変更すると、予期しない視覚的な結果が生じる可能性があります。

QSGMaterialShader::GraphicsPipelineState::ColorMask GraphicsPipelineState::colorWrite

カラー書き込みマスク。

QSGMaterialShader::GraphicsPipelineState::CullMode GraphicsPipelineState::cullMode

選別モード。

[since 6.5] QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::dstAlpha

アルファブレンディング係数の算出元。

separateBlendFactors がtrueに設定されている場合にのみ適用されます。

この変数はQt 6.5で導入されました。

QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::dstColor

宛先ブレンド係数。separateBlendFactors の設定に応じて、RGBまたはRGBAのいずれかになります。

[since 6.8] QSGMaterialShader::GraphicsPipelineState::BlendOp GraphicsPipelineState::opAlpha

アルファブレンディング演算。

この変数はQt 6.8で導入されました。

[since 6.8] QSGMaterialShader::GraphicsPipelineState::BlendOp GraphicsPipelineState::opColor

RGBのブレンド演算。

この変数は Qt 6.8 で導入されました。

[since 6.4] QSGMaterialShader::GraphicsPipelineState::PolygonMode GraphicsPipelineState::polygonMode

ポリゴンのラスタライズモード。

この変数は Qt 6.4 で導入されました。

[since 6.5] bool GraphicsPipelineState::separateBlendFactors

アルファブレンディング係数が個別に指定されていることを示します。

デフォルトでは false であり、RGB およびアルファのブレンディング係数は、srcColor およびdstColor によって定義されます。true に設定すると、アルファのブレンディング係数は代わりにsrcAlpha およびdstAlpha から取得され、srcColor およびdstColor は RGB にのみ適用されます。

この変数は Qt 6.5 で導入されました。

[since 6.5] QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::srcAlpha

ソースのアルファブレンディング係数。

separateBlendFactors がtrueに設定されている場合にのみ適用されます。

この変数はQt 6.5で導入されました。

QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::srcColor

ソースのブレンド係数。separateBlendFactors の設定に応じて、RGBまたはRGBAのいずれかとなります。

© 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.