![]() |
Qt 6.x
The Qt SDK
|
#include <qssgrendernode_p.h>
Inheritance diagram for QSSGRenderNode:
Collaboration diagram for QSSGRenderNode:Public Types | |
| enum class | LocalState : quint8 { Active = 1 << 0 , Pickable = 1 << 1 } |
| enum class | GlobalState : quint8 { Active = 1 << 2 , Pickable = 1 << 3 } |
| enum class | DirtyFlag : quint32 { TransformDirty = 1 << 4 , OpacityDirty = 1 << 5 , ActiveDirty = 1 << 6 , PickableDirty = 1 << 7 , SubNodeDirty = 1 << 8 , GlobalValuesDirty = TransformDirty | OpacityDirty | ActiveDirty | PickableDirty , DirtyMask = GlobalValuesDirty | SubNodeDirty } |
| using | FlagT = std::underlying_type_t< DirtyFlag > |
| using | ChildList = QSSGInvasiveLinkedList< QSSGRenderNode, &QSSGRenderNode::previousSibling, &QSSGRenderNode::nextSibling > |
Public Types inherited from QSSGRenderGraphObject | |
| enum | BaseType : quint16 { Node = 0x10 , Light = 0x20 , Camera = 0x40 , Renderable = 0x80 , Resource = 0x100 , Material = 0x200 , Texture = 0x400 , Extension = 0x800 } |
| enum class | Type : quint16 { Unknown = 0 , Node = BaseType::Node , Layer , Joint , Skeleton , ImportScene , ReflectionProbe , DirectionalLight = BaseType::Light | BaseType::Node , PointLight , SpotLight , OrthographicCamera = BaseType::Camera | BaseType::Node , PerspectiveCamera , CustomFrustumCamera , CustomCamera , Model = BaseType::Renderable | BaseType::Node , Item2D , Particles , SceneEnvironment = BaseType::Resource , Effect , Geometry , TextureData , MorphTarget , ModelInstance , ModelBlendParticle , ResourceLoader , DefaultMaterial = BaseType::Material | BaseType::Resource , PrincipledMaterial , CustomMaterial , SpecularGlossyMaterial , Skin , Image2D = BaseType::Texture | BaseType::Resource , ImageCube , RenderExtension = BaseType::Extension } |
Public Attributes | |
| QVector3D | pivot |
| int | staticFlags = 0 |
| float | localOpacity = 1.0f |
| FlagT | flags { FlagT(DirtyFlag::GlobalValuesDirty) | FlagT(LocalState::Active) } |
| QMatrix4x4 | localTransform |
| QMatrix4x4 | globalTransform |
| QMatrix4x4 | localInstanceTransform |
| QMatrix4x4 | globalInstanceTransform |
| float | globalOpacity = 1.0f |
| QSSGRenderNode * | parent = nullptr |
| QSSGRenderNode * | nextSibling = nullptr |
| QSSGRenderNode * | previousSibling = nullptr |
| QSSGRenderNode * | instanceRoot = nullptr |
| quint32 | dfsIndex = 0 |
| ChildList | children |
| QString | debugObjectName |
Public Attributes inherited from QSSGRenderGraphObject | |
| Type | type |
Static Public Attributes | |
| static constexpr QVector3D | initScale { 1.0f, 1.0f, 1.0f } |
Definition at line 36 of file qssgrendernode_p.h.
| using QSSGRenderNode::ChildList = QSSGInvasiveLinkedList<QSSGRenderNode, &QSSGRenderNode::previousSibling, &QSSGRenderNode::nextSibling> |
Definition at line 92 of file qssgrendernode_p.h.
| using QSSGRenderNode::FlagT = std::underlying_type_t<DirtyFlag> |
Definition at line 61 of file qssgrendernode_p.h.
|
strong |
| Enumerator | |
|---|---|
| TransformDirty | |
| OpacityDirty | |
| ActiveDirty | |
| PickableDirty | |
| SubNodeDirty | |
| GlobalValuesDirty | |
| DirtyMask | |
Definition at line 50 of file qssgrendernode_p.h.
|
strong |
| Enumerator | |
|---|---|
| Active | |
| Pickable | |
Definition at line 44 of file qssgrendernode_p.h.
|
strong |
| Enumerator | |
|---|---|
| Active | |
| Pickable | |
Definition at line 38 of file qssgrendernode_p.h.
| QT_BEGIN_NAMESPACE QSSGRenderNode::QSSGRenderNode | ( | ) |
Definition at line 18 of file qssgrendernode.cpp.
Referenced by QSSGRenderLayer::setImportScene().
Here is the caller graph for this function:
|
explicit |
Definition at line 23 of file qssgrendernode.cpp.
References calculateTransformMatrix(), globalTransform, initScale, and localTransform.
Here is the call graph for this function:
|
overridedefault |
| void QSSGRenderNode::addChild | ( | QSSGRenderNode & | inChild | ) |
Definition at line 164 of file qssgrendernode.cpp.
References children, GlobalValuesDirty, markDirty(), parent, QSSGInvasiveLinkedList< T, Previous, Next >::push_back(), and removeChild().
Referenced by QQuick3DSceneManager::updateDirtySpatialNode().
Here is the call graph for this function:
Here is the caller graph for this function:| bool QSSGRenderNode::calculateGlobalVariables | ( | ) |
Definition at line 72 of file qssgrendernode.cpp.
References Active, calculateGlobalVariables(), clearDirty(), QMatrix4x4::data(), getGlobalState(), getLocalState(), globalInstanceTransform, globalOpacity, globalTransform, GlobalValuesDirty, instanceRoot, isDirty(), localInstanceTransform, localOpacity, localTransform, parent, Pickable, QMatrix4x4::translate(), and QSSGRenderGraphObject::type.
Referenced by calculateGlobalVariables(), QSSGRenderCamera::calculateGlobalVariables(), collectBoneTransforms(), and maybeQueueNodeForRender().
Here is the call graph for this function:
Here is the caller graph for this function:| void QSSGRenderNode::calculateMVPAndNormalMatrix | ( | const QMatrix4x4 & | inViewProjection, |
| QMatrix4x4 & | outMVP, | ||
| QMatrix3x3 & | outNormalMatrix | ||
| ) | const |
Definition at line 263 of file qssgrendernode.cpp.
References calculateNormalMatrix(), and globalTransform.
Referenced by QSSGModelContext::QSSGModelContext().
Here is the call graph for this function:
Here is the caller graph for this function:| QMatrix3x3 QSSGRenderNode::calculateNormalMatrix | ( | ) | const |
Definition at line 269 of file qssgrendernode.cpp.
References globalTransform, and QMatrix4x4::normalMatrix().
Referenced by calculateMVPAndNormalMatrix(), and QSSGRenderCamera::unproject().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 136 of file qssgrendernode.cpp.
References pivot, position(), and QQuaternion::toRotationMatrix().
Referenced by QSSGRenderNode(), QQuick3DNodePrivate::calculateGlobalVariables(), calculateKinematicNodeTransform(), QSSGRenderCamera::lookAt(), setupCameraForShadowMap(), setupCubeReflectionCameras(), setupCubeShadowCameras(), and QQuick3DNode::updateSpatialNode().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 44 of file qssgrendernode.cpp.
Referenced by calculateGlobalVariables(), QSSGRenderCamera::clearDirty(), and QSSGRenderLight::clearDirty().
Here is the caller graph for this function:| QSSGBounds3 QSSGRenderNode::getBounds | ( | QSSGBufferManager & | inManager, |
| bool | inIncludeChildren = true |
||
| ) | const |
Definition at line 202 of file qssgrendernode.cpp.
References getChildBounds(), QSSGBufferManager::getModelBounds(), QSSGBounds3::include(), and model.
Here is the call graph for this function:| QSSGBounds3 QSSGRenderNode::getChildBounds | ( | QSSGBufferManager & | inManager | ) | const |
Definition at line 216 of file qssgrendernode.cpp.
References child, children, QSSGBounds3::include(), QSSGBounds3::isEmpty(), and QSSGBounds3::transform().
Referenced by getBounds().
Here is the call graph for this function:
Here is the caller graph for this function:| QVector3D QSSGRenderNode::getDirection | ( | ) | const |
Definition at line 231 of file qssgrendernode.cpp.
References QMatrix4x4::data(), globalTransform, and QVector3D::normalize().
Referenced by QSSGRenderer::intersectRayWithItem2D(), setupCameraForShadowMap(), and QSSGRenderCamera::unprojectToPosition().
Here is the call graph for this function:
Here is the caller graph for this function:| QVector3D QSSGRenderNode::getGlobalPivot | ( | ) | const |
Definition at line 249 of file qssgrendernode.cpp.
References direction, mat44::getPosition(), globalTransform, localTransform, parent, QVector3D::setZ(), QSSGRenderGraphObject::type, QVector3D::x(), QVector3D::y(), and QVector3D::z().
Here is the call graph for this function:
|
inline |
Definition at line 134 of file qssgrendernode_p.h.
Referenced by QSSGRenderer::intersectRayWithItem2D(), QSSGLayerRenderData::prepareModelsForRender(), QSSGLayerRenderData::prepareReflectionProbesForRender(), RenderHelpers::rhiPrepareRenderable(), QSSGMaterialShaderGenerator::setRhiMaterialProperties(), setupCameraForShadowMap(), setupCubeReflectionCameras(), setupCubeShadowCameras(), and QSSGParticleRenderer::updateUniformsForParticles().
Here is the caller graph for this function:
|
inlineconstexpr |
Definition at line 108 of file qssgrendernode_p.h.
Referenced by calculateGlobalVariables(), maybeQueueNodeForRender(), and QSSGLayerRenderData::prepareForRender().
Here is the caller graph for this function:
|
inlineconstexpr |
Definition at line 107 of file qssgrendernode_p.h.
Referenced by calculateGlobalVariables(), and setState().
Here is the caller graph for this function:| QVector3D QSSGRenderNode::getScalingCorrectDirection | ( | ) | const |
Definition at line 239 of file qssgrendernode.cpp.
References globalTransform, QVector3D::normalize(), QMatrix4x4::normalMatrix(), and mat33::transform().
Referenced by QSSGRenderCamera::lookAt(), QSSGLayerRenderData::prepareForRender(), QSSGLayerRenderData::prepareModelsForRender(), and RenderHelpers::rhiPrepareRenderable().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineconstexpr |
Definition at line 105 of file qssgrendernode_p.h.
Referenced by calculateGlobalVariables(), hasDirtyNonJointNodes(), QSSGRenderCamera::isDirty(), QSSGRenderLight::isDirty(), and maybeQueueNodeForRender().
Here is the caller graph for this function:Definition at line 32 of file qssgrendernode.cpp.
References children, and GlobalValuesDirty.
Referenced by addChild(), QSSGRenderCamera::lookAt(), QSSGRenderCamera::markDirty(), QSSGRenderLight::markDirty(), removeChild(), setState(), and QQuick3DModel::updateSpatialNode().
Here is the caller graph for this function:| void QSSGRenderNode::removeChild | ( | QSSGRenderNode & | inChild | ) |
Definition at line 177 of file qssgrendernode.cpp.
References children, GlobalValuesDirty, markDirty(), parent, Q_ASSERT, Q_UNLIKELY, and QSSGInvasiveLinkedList< T, Previous, Next >::remove().
Referenced by addChild(), removeFromGraph(), and QQuick3DSceneManager::updateDirtySpatialNode().
Here is the call graph for this function:
Here is the caller graph for this function:| void QSSGRenderNode::removeFromGraph | ( | ) |
Definition at line 189 of file qssgrendernode.cpp.
References QSSGInvasiveLinkedList< T, Previous, Next >::begin(), children, QSSGInvasiveLinkedList< T, Previous, Next >::end(), it, parent, QSSGInvasiveLinkedList< T, Previous, Next >::remove(), and removeChild().
Referenced by QQuick3DSceneManager::cleanupNodes().
Here is the call graph for this function:
Here is the caller graph for this function:| void QSSGRenderNode::setState | ( | LocalState | state, |
| bool | on = true |
||
| ) |
Definition at line 49 of file qssgrendernode.cpp.
References Active, ActiveDirty, getLocalState(), markDirty(), Pickable, PickableDirty, and state.
Here is the call graph for this function:
|
inlinestatic |
Definition at line 152 of file qssgrendernode_p.h.
References sign().
Referenced by QQuick3DParticleSpriteParticle::updateParticleNode(), and QQuick3DModel::updateSpatialNode().
Here is the call graph for this function:
Here is the caller graph for this function:| ChildList QSSGRenderNode::children |
Definition at line 93 of file qssgrendernode_p.h.
Referenced by addChild(), collectBoneTransforms(), dfs(), getChildBounds(), hasDirtyNonJointNodes(), markDirty(), maybeQueueNodeForRender(), removeChild(), removeFromGraph(), QSSGRenderLayer::removeImportScene(), and QSSGRenderLayer::setImportScene().
| QString QSSGRenderNode::debugObjectName |
Definition at line 95 of file qssgrendernode_p.h.
Referenced by QSSGRenderReflectionMap::addReflectionMapEntry().
| quint32 QSSGRenderNode::dfsIndex = 0 |
Definition at line 90 of file qssgrendernode_p.h.
Referenced by maybeQueueNodeForRender().
| FlagT QSSGRenderNode::flags { FlagT(DirtyFlag::GlobalValuesDirty) | FlagT(LocalState::Active) } |
Definition at line 75 of file qssgrendernode_p.h.
| QMatrix4x4 QSSGRenderNode::globalInstanceTransform |
Definition at line 80 of file qssgrendernode_p.h.
Referenced by calculateGlobalVariables().
| float QSSGRenderNode::globalOpacity = 1.0f |
Definition at line 81 of file qssgrendernode_p.h.
Referenced by calculateGlobalVariables(), and QSSGLayerRenderData::prepareParticlesForRender().
| QMatrix4x4 QSSGRenderNode::globalTransform |
Definition at line 78 of file qssgrendernode_p.h.
Referenced by QSSGRenderNode(), calculateGlobalVariables(), calculateMVPAndNormalMatrix(), calculateNormalMatrix(), QSSGRenderCamera::calculateViewProjectionMatrix(), QSSGRenderCamera::calculateViewProjectionWithoutTranslation(), collectBoneTransforms(), getDirection(), getGlobalPivot(), getScalingCorrectDirection(), QSSGRenderer::intersectRayWithItem2D(), QSSGRenderCamera::lookAt(), QSSGSubsetRenderable::prepareInstancing(), QSSGLayerRenderData::prepareParticlesForRender(), RenderHelpers::rhiRenderShadowMap(), QSSGMaterialShaderGenerator::setRhiMaterialProperties(), sortParticles(), QSSGRenderCamera::unproject(), and QSSGParticleRenderer::updateUniformsForParticles().
|
staticconstexpr |
Definition at line 63 of file qssgrendernode_p.h.
Referenced by QSSGRenderNode(), QSSGRenderCamera::lookAt(), setupCameraForShadowMap(), setupCubeReflectionCameras(), and setupCubeShadowCameras().
| QSSGRenderNode* QSSGRenderNode::instanceRoot = nullptr |
Definition at line 87 of file qssgrendernode_p.h.
Referenced by calculateGlobalVariables(), and QQuick3DModel::updateSpatialNode().
| QMatrix4x4 QSSGRenderNode::localInstanceTransform |
Definition at line 79 of file qssgrendernode_p.h.
Referenced by calculateGlobalVariables().
| float QSSGRenderNode::localOpacity = 1.0f |
Definition at line 72 of file qssgrendernode_p.h.
Referenced by calculateGlobalVariables().
| QMatrix4x4 QSSGRenderNode::localTransform |
Definition at line 77 of file qssgrendernode_p.h.
Referenced by QSSGRenderNode(), calculateGlobalVariables(), getGlobalPivot(), QSSGRenderCamera::lookAt(), setupCameraForShadowMap(), setupCubeReflectionCameras(), and setupCubeShadowCameras().
| QSSGRenderNode* QSSGRenderNode::nextSibling = nullptr |
Definition at line 85 of file qssgrendernode_p.h.
| QSSGRenderNode* QSSGRenderNode::parent = nullptr |
Definition at line 84 of file qssgrendernode_p.h.
Referenced by addChild(), calculateGlobalVariables(), getGlobalPivot(), removeChild(), removeFromGraph(), scopeLight(), setupCameraForShadowMap(), setupCubeReflectionCameras(), setupCubeShadowCameras(), and QQuick3DSceneManager::updateDirtySpatialNode().
| QVector3D QSSGRenderNode::pivot |
Definition at line 67 of file qssgrendernode_p.h.
Referenced by calculateTransformMatrix(), QSSGRenderCamera::lookAt(), setupCameraForShadowMap(), setupCubeReflectionCameras(), setupCubeShadowCameras(), and QQuick3DNode::updateSpatialNode().
| QSSGRenderNode* QSSGRenderNode::previousSibling = nullptr |
Definition at line 86 of file qssgrendernode_p.h.
| int QSSGRenderNode::staticFlags = 0 |
Definition at line 68 of file qssgrendernode_p.h.