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()の実装で変更できる、サポートされているステートのセットを持つデータ構造を公開する必要があります。scenegraphは内部的に、これらの変更をアクティブなグラフィックス・パイプラインのステートに適用し、必要に応じてロールバックします。
updateGraphicsPipelineState() が呼び出されると、構造体には、レンダラーの現在の状態を反映するために、すべてのメンバが有効な値に設定されます。値を変更しない(または関数を再実装しない)場合は、マテリアルがデフォルトのままで問題ないことを示します(ただし、マテリアルはQSGMaterial フラグなどによって動的に変化します)。
メンバ型の説明
enum GraphicsPipelineState::BlendFactor
定数 | 値 |
---|---|
QSGMaterialShader::GraphicsPipelineState::Zero | 0 |
QSGMaterialShader::GraphicsPipelineState::One | 1 |
QSGMaterialShader::GraphicsPipelineState::SrcColor | 2 |
QSGMaterialShader::GraphicsPipelineState::OneMinusSrcColor | 3 |
QSGMaterialShader::GraphicsPipelineState::DstColor | 4 |
QSGMaterialShader::GraphicsPipelineState::OneMinusDstColor | 5 |
QSGMaterialShader::GraphicsPipelineState::SrcAlpha | 6 |
QSGMaterialShader::GraphicsPipelineState::OneMinusSrcAlpha | 7 |
QSGMaterialShader::GraphicsPipelineState::DstAlpha | 8 |
QSGMaterialShader::GraphicsPipelineState::OneMinusDstAlpha | 9 |
QSGMaterialShader::GraphicsPipelineState::ConstantColor | 10 |
QSGMaterialShader::GraphicsPipelineState::OneMinusConstantColor | 11 |
QSGMaterialShader::GraphicsPipelineState::ConstantAlpha | 12 |
QSGMaterialShader::GraphicsPipelineState::OneMinusConstantAlpha | 13 |
QSGMaterialShader::GraphicsPipelineState::SrcAlphaSaturate | 14 |
QSGMaterialShader::GraphicsPipelineState::Src1Color | 15 |
QSGMaterialShader::GraphicsPipelineState::OneMinusSrc1Color | 16 |
QSGMaterialShader::GraphicsPipelineState::Src1Alpha | 17 |
QSGMaterialShader::GraphicsPipelineState::OneMinusSrc1Alpha | 18 |
[since 6.8]
enum class GraphicsPipelineState::BlendOp
定数 | 値 |
---|---|
QSGMaterialShader::GraphicsPipelineState::BlendOp::Add | 0 |
QSGMaterialShader::GraphicsPipelineState::BlendOp::Subtract | 1 |
QSGMaterialShader::GraphicsPipelineState::BlendOp::ReverseSubtract | 2 |
QSGMaterialShader::GraphicsPipelineState::BlendOp::Min | 3 |
QSGMaterialShader::GraphicsPipelineState::BlendOp::Max | 4 |
この enum は Qt 6.8 で導入されました。
enum GraphicsPipelineState::ColorMaskComponent
flags GraphicsPipelineState::ColorMask
定数 | 値 |
---|---|
QSGMaterialShader::GraphicsPipelineState::R | 1 << 0 |
QSGMaterialShader::GraphicsPipelineState::G | 1 << 1 |
QSGMaterialShader::GraphicsPipelineState::B | 1 << 2 |
QSGMaterialShader::GraphicsPipelineState::A | 1 << 3 |
ColorMask 型はQFlags<ColorMaskComponent> の typedef です。ColorMaskComponent の値の OR の組み合わせを格納します。
enum GraphicsPipelineState::CullMode
定数 | 値 |
---|---|
QSGMaterialShader::GraphicsPipelineState::CullNone | 0 |
QSGMaterialShader::GraphicsPipelineState::CullFront | 1 |
QSGMaterialShader::GraphicsPipelineState::CullBack | 2 |
[since 6.4]
enum GraphicsPipelineState::PolygonMode
ポリゴンのラスタライズモードを指定します。
ポリゴンモード(メタルでは三角形塗りつぶしモード、D3Dでは塗りつぶしモード)は、ポリゴンをラスタライズするときに使用する塗りつぶしモードを指定します。ポリゴンはソリッド(Fill)、またはワイヤーメッシュ(Line)として描画されます。
警告 OpenGL ESはLine
ポリゴンモードをサポートしていません。OpenGL ESは、どのポリゴンモードが設定されていても、すべてのポリゴンを塗りつぶしとしてラスタライズします。Line
を使用すると、アプリケーションは移植不可能になります。
定数 | 値 | 説明 |
---|---|---|
QSGMaterialShader::GraphicsPipelineState::Fill | 0 | ポリゴンの内部は塗りつぶされる(デフォルト) |
QSGMaterialShader::GraphicsPipelineState::Line | 1 | 多角形の境界は線分として描画されます。 |
この列挙型は 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 のどちらかになります。
このドキュメントは、Qt 6.5 で導入されました。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。