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

この enum は 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

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

ポリゴンモード(メタルでは三角形塗りつぶしモード、D3Dでは塗りつぶしモード)は、ポリゴンのラスタライズ時に使用する塗りつぶしモードを指定します。ポリゴンはソリッド(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 とアルファブレンド係数の両方がsrcColordstColor で定義されることを意味します。true に設定すると、アルファブレンド係数はsrcAlphadstAlpha から取得され、srcColordstColor は 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のいずれかとなる。

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