QSGGeometryNode Class
QSGGeometryNode クラスは、シーングラフ内のすべてのレンダリングコンテンツに使用されます。詳細...
ヘッダー | #include <QSGGeometryNode> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Quick) target_link_libraries(mytarget PRIVATE Qt6::Quick) |
qmake: | QT += quick |
を継承する: | QSGBasicGeometryNode |
によって継承される: | QSGImageNode,QSGRectangleNode,QSGSimpleRectNode, およびQSGSimpleTextureNode |
- 継承メンバを含むすべてのメンバの一覧
- QSGGeometryNode はQt Quick Scene Graph Node クラスの一部です。
パブリック関数
QSGGeometryNode() | |
virtual | ~QSGGeometryNode() override |
QSGMaterial * | material() const |
QSGMaterial * | opaqueMaterial() const |
void | setMaterial(QSGMaterial *material) |
void | setOpaqueMaterial(QSGMaterial *material) |
詳細説明
QSGGeometryNode はジオメトリとマテリアルで構成される。ジオメトリは、描画されるメッシュ、頂点とその構造を定義します。マテリアルは、形状がどのように塗りつぶされるかを定義します。
以下は、QSGGeometryNode を使用して赤い線を作成する方法を示すコード・スニペットです:
QSGGeometry *geometry = new QSGGeometry(QSGGeometry::defaultAttributes_Point2D(), 2); geometry->setDrawingMode(GL_LINES); geometry->setLineWidth(3); geometry->vertexDataAsPoint2D()[0].set(0, 0); geometry->vertexDataAsPoint2D()[1].set(width(), height()); QSGFlatColorMaterial *material = new QSGFlatColorMaterial; material->setColor(QColor(255, 0, 0)); QSGGeometryNode *node = new QSGGeometryNode; node->setGeometry(geometry); node->setFlag(QSGNode::OwnsGeometry); node->setMaterial(material); node->setFlag(QSGNode::OwnsMaterial);
ジオメトリノードは、シーングラフに追加される前に、ジオメトリと通常のマテリアルの両方を持つ必要があります。ノードがシーングラフに追加された後にジオメトリとマテリアルが変更された場合、ユーザはQSGNode::markDirty() を使用してそれらをダーティとしてマークする必要があります。
ジオメトリ・ノードは、opaqueMaterial とノーマルの 2 種類のマテリアルをサポートしています。opaqueMaterial は、レンダリング時のシーングラフの累積不透明度が 1 の場合に使用されます。主な使用ケースは、フラグメントシェーダの余分な操作が組み込みグラフィックスチップのパフォーマンスに大きな影響を与えることを避けるために、不透明なレンダリングを特別に行うことです。不透明マテリアルはオプションです。
注意: QSG 接頭辞を持つすべてのクラスは、シーングラフのレンダリングスレッドでのみ使用する必要があります。詳しくはシーングラフとレンダリングを参照してください。
QSGGeometry およびQSGMaterialも参照して ください。
メンバー関数ドキュメント
QSGGeometryNode::QSGGeometryNode()
ジオメトリとマテリアルを含まない新しいジオメトリ・ノードを作成します。
[override virtual noexcept]
QSGGeometryNode::~QSGGeometryNode()
このジオメトリノードを削除します。
フラグQSGNode::OwnsMaterial 、QSGNode::OwnsOpaqueMaterial 、QSGNode::OwnsGeometry は、ジオメトリ ノードがマテリアルとジオメトリも削除するかどうかを決定します。デフォルトでは、これらのフラグは無効になっています。
QSGMaterial *QSGGeometryNode::material() const
QSGGeometryNode の素材を返す。
setMaterial()も参照 。
QSGMaterial *QSGGeometryNode::opaqueMaterial() const
QSGGeometryNode の不透明素材を返します。
setOpaqueMaterial()も参照 。
void QSGGeometryNode::setMaterial(QSGMaterial *material)
このジオメトリ ノードのマテリアルをmaterial に設定します。
ジオメトリ ノードは、シーン グラフに追加する前にマテリアルを持つ必要があります。
setMaterial() を再度呼び出さずにマテリアルを変更する場合は、QSGNode::markDirty() を使用してマテリアルをダーティとしてマークする必要があります。
material()も参照してください 。
void QSGGeometryNode::setOpaqueMaterial(QSGMaterial *material)
このジオメトリの不透明マテリアルをmaterial に設定します。
不透明マテリアルは、material() 関数によって返されるデフォルトのマテリアルよりもレンダラーによって優先されます(それが NULL でなく、ジオメトリ アイテムの不透明度が継承されて 1 である場合)。
不透明度はシーングラフの不透明度を指し、マテリアルはQSGMaterial::Blending を true に設定して透明ピクセルを描画することができます。
setOpaqueMaterial() を再度呼び出さずにマテリアルを変更した場合は、QSGNode::markDirty() を使用して不透明マテリアルをダーティとしてマークする必要があります。
opaqueMaterial()も参照してください 。
© 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.