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()
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 및 일반 머티리얼의 두 가지 유형의 머티리얼을 지원합니다. opaqueMaterial 는 렌더링 시 누적된 씬 그래프 불투명도가 1일 때 사용됩니다. 주요 사용 사례는 불투명 렌더링을 특수 처리하여 조각 셰이더의 추가 연산이 내장 그래픽 칩에 상당한 성능 영향을 미칠 수 있는 경우를 방지하는 것입니다. 불투명 머티리얼은 선택 사항입니다.

참고: 접두사가 QSG인 모든 클래스는 씬 그래프의 렌더링 스레드에서만 사용해야 합니다. 자세한 내용은 씬 그래프 및 렌더링을 참조하십시오.

QSGGeometryQSGMaterial참조하세요 .

멤버 함수 문서

QSGGeometryNode::QSGGeometryNode()

지오메트리와 머티리얼 없이 새 지오메트리 노드를 생성합니다.

[override virtual noexcept] QSGGeometryNode::~QSGGeometryNode()

이 지오메트리 노드를 삭제합니다.

QSGNode::OwnsMaterial, QSGNode::OwnsOpaqueMaterialQSGNode::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 로 설정합니다.

불투명 머티리얼이 null이 아니고 지오메트리 항목의 상속 불투명도가 1이면 material() 함수에서 반환된 기본 머티리얼보다 렌더러가 불투명 머티리얼을 우선시합니다.

불투명도는 씬 그래프 불투명도를 의미하며, 머티리얼은 여전히 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.