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 시나리오 그래프 노드 클래스의 일부입니다.
공개 함수
| 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(QSGGeometry::DrawLines);
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 접두사가 붙은모든 클래스는 오로지 씬 그래프의 렌더링 스레드에서만 사용해야 합니다. 자세한 내용은 씬 그래프 및 렌더링을 참조하십시오.
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()을 사용하여 해당 머티리얼을 '변경됨(dirty)' 상태로 표시해야 합니다.
material()도 참조하십시오 .
void QSGGeometryNode::setOpaqueMaterial(QSGMaterial *material)
이 지오메트리의 불투명 머티리얼을 ` material`로 설정합니다.
이 불투명 머티리얼이 null이 아니고 지오메트리 항목의 상속된 불투명도가 1인 경우, 렌더러는 material() 함수가 반환하는 기본 머티리얼보다 이 불투명 머티리얼을 우선적으로 사용합니다.
이 불투명도는 씬 그래프의 불투명도를 의미하며, 머티리얼은 여전히 QSGMaterial::Blending 을 true로 설정하여 투명한 픽셀을 렌더링할 수 있습니다.
setOpaqueMaterial()을 다시 호출하지 않고 머티리얼이 변경된 경우, 사용자는 QSGNode::markDirty()을 사용하여 불투명 머티리얼을 변경됨(dirty)으로 표시해야 합니다.
opaqueMaterial()도 참조하십시오 .
© 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.