Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QSSGRenderRoot Class Referencefinal

#include <qssgrenderroot_p.h>

Inheritance diagram for QSSGRenderRoot:
Collaboration diagram for QSSGRenderRoot:

Public Types

enum class  DirtyFlag : quint8 { TreeDirty = 0x1 }
using FlagT = std::underlying_type_t<DirtyFlag>
Public Types inherited from QSSGRenderNode
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 ,
  TagDirty = 1 << 8 , SubNodeDirty = 1 << 9 , 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 : quint32 {
  Node = 0x1000 , Light = 0x2000 , Camera = 0x4000 , Renderable = 0x8000 ,
  Resource = 0x10000 , Material = 0x20000 , Texture = 0x40000 , Extension = 0x80000 ,
  User = 0x80000000
}
enum class  Type : quint32 {
  Unknown = 0 , Node = BaseType::Node , Root , 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 , TextureProvider
}
enum class  Flags : quint32 { HasGraphicsResources = 0x1 }
using TypeT = std::underlying_type_t<Type>
using FlagT = std::underlying_type_t<Flags>

Public Member Functions

 QSSGRenderRoot ()
 ~QSSGRenderRoot ()
bool isDirty (DirtyFlag dirtyFlag=DirtyMask) const
void markDirty (DirtyFlag dirtyFlag)
void clearDirty (DirtyFlag dirtyFlag)
const std::shared_ptr< QSSGGlobalRenderNodeData > & globalNodeData () const
void setStartVersion (quint32 startVersion)
quint32 startVersion () const
void reindex ()
Public Member Functions inherited from QSSGRenderNode
 QSSGRenderNode ()
 QSSGRenderNode (Type type, FlagT flags=0)
 ~QSSGRenderNode () override
void markDirty (DirtyFlag dirtyFlag)
void clearDirty (DirtyFlag dirtyFlag)
constexpr bool isDirty (DirtyFlag dirtyFlag=DirtyFlag::DirtyMask) const
void setState (LocalState state, bool on=true)
constexpr bool getLocalState (LocalState stateFlag) const
constexpr bool getGlobalState (GlobalState stateFlag) const
void addChild (QSSGRenderNode &inChild)
void removeChild (QSSGRenderNode &inChild)
void removeFromGraph ()
QSSGBounds3 getBounds (QSSGBufferManager &inManager, bool inIncludeChildren=true) const
QSSGBounds3 getChildBounds (QSSGBufferManager &inManager) const
Public Member Functions inherited from QSSGRenderGraphObject
bool hasGraphicsResources () const noexcept
virtual Q_QUICK3D_PROFILE_ID_ ~QSSGRenderGraphObject ()

Static Public Member Functions

static QSSGRenderRootget (QSSGRenderRoot **ref)
Static Public Member Functions inherited from QSSGRenderNode
static QMatrix4x4 calculateTransformMatrix (QVector3D position, QVector3D scale, QVector3D pivot, QQuaternion rotation)
static QVector3D getGlobalPos (const QMatrix4x4 &globalTransform)
static QVector3D getDirection (const QMatrix4x4 &globalTransform)
static QVector3D getScalingCorrectDirection (const QMatrix4x4 &globalTransform)
static void calculateMVP (const QMatrix4x4 &globalTransform, const QMatrix4x4 &inViewProjection, QMatrix4x4 &outMVP)
static void calculateNormalMatrix (const QMatrix4x4 &globalTransform, QMatrix3x3 &outNormalMatrix)
static void calculateMVPAndNormalMatrix (const QMatrix4x4 &globalTransfor, const QMatrix4x4 &inViewProjection, QMatrix4x4 &outMVP, QMatrix3x3 &outNormalMatrix)
static float signedSquared (float val)
Static Public Member Functions inherited from QSSGRenderGraphObject
static constexpr bool isNodeType (Type type) noexcept
static constexpr bool isLight (Type type) noexcept
static constexpr bool isCamera (Type type) noexcept
static constexpr bool isMaterial (Type type) noexcept
static constexpr bool isTexture (Type type) noexcept
static constexpr bool isRenderable (Type type) noexcept
static constexpr bool isResource (Type type) noexcept
static constexpr bool isExtension (Type type) noexcept
static constexpr bool isUserType (Type type) noexcept

Static Public Attributes

static constexpr DirtyFlag DirtyMask { std::numeric_limits<FlagT>::max() }
Static Public Attributes inherited from QSSGRenderNode
static constexpr QVector3D initScale { 1.0f, 1.0f, 1.0f }

Additional Inherited Members

Public Attributes inherited from QSSGRenderNode
QVector3D pivot
int staticFlags = 0
float localOpacity = 1.0f
FlagT flags { FlagT(DirtyFlag::GlobalValuesDirty) | FlagT(LocalState::Active) }
QMatrix4x4 localTransform
QSSGRenderRoot ** rootNodeRef = nullptr
QSSGRenderNodeparent = nullptr
QSSGRenderNodenextSibling = nullptr
QSSGRenderNodepreviousSibling = nullptr
QSSGRenderNodeinstanceRoot = nullptr
QSSGRenderNodeHandle h
QSSGRenderNodeTag tag
ChildList children
QString debugObjectName
Public Attributes inherited from QSSGRenderGraphObject
const Type type
FlagT flags { 0 }
Protected Member Functions inherited from QSSGRenderGraphObject
 QSSGRenderGraphObject (QSSGRenderGraphObject::Type inType)
 QSSGRenderGraphObject (QSSGRenderGraphObject::Type inType, FlagT inFlags)

Detailed Description

Definition at line 28 of file qssgrenderroot_p.h.

Member Typedef Documentation

◆ FlagT

using QSSGRenderRoot::FlagT = std::underlying_type_t<DirtyFlag>

Definition at line 38 of file qssgrenderroot_p.h.

Member Enumeration Documentation

◆ DirtyFlag

enum class QSSGRenderRoot::DirtyFlag : quint8
strong
Enumerator
TreeDirty 

Definition at line 34 of file qssgrenderroot_p.h.

Constructor & Destructor Documentation

◆ QSSGRenderRoot()

QT_BEGIN_NAMESPACE QSSGRenderRoot::QSSGRenderRoot ( )

Definition at line 10 of file qssgrenderroot.cpp.

◆ ~QSSGRenderRoot()

QSSGRenderRoot::~QSSGRenderRoot ( )

Definition at line 18 of file qssgrenderroot.cpp.

Member Function Documentation

◆ clearDirty()

void QSSGRenderRoot::clearDirty ( DirtyFlag dirtyFlag)

Definition at line 26 of file qssgrenderroot.cpp.

◆ get()

QSSGRenderRoot * QSSGRenderRoot::get ( QSSGRenderRoot ** ref)
inlinestaticnodiscard

Definition at line 73 of file qssgrenderroot_p.h.

◆ globalNodeData()

const std::shared_ptr< QSSGGlobalRenderNodeData > & QSSGRenderRoot::globalNodeData ( ) const
inlinenodiscard

Definition at line 50 of file qssgrenderroot_p.h.

◆ isDirty()

bool QSSGRenderRoot::isDirty ( DirtyFlag dirtyFlag = DirtyMask) const
inlinenodiscard

Definition at line 42 of file qssgrenderroot_p.h.

◆ markDirty()

void QSSGRenderRoot::markDirty ( DirtyFlag dirtyFlag)

Definition at line 20 of file qssgrenderroot.cpp.

◆ reindex()

void QSSGRenderRoot::reindex ( )

Definition at line 32 of file qssgrenderroot.cpp.

◆ setStartVersion()

void QSSGRenderRoot::setStartVersion ( quint32 startVersion)
inline

Definition at line 63 of file qssgrenderroot_p.h.

◆ startVersion()

quint32 QSSGRenderRoot::startVersion ( ) const
inlinenodiscard

Definition at line 68 of file qssgrenderroot_p.h.

Member Data Documentation

◆ DirtyMask

DirtyFlag QSSGRenderRoot::DirtyMask { std::numeric_limits<FlagT>::max() }
staticconstexpr

Definition at line 40 of file qssgrenderroot_p.h.


The documentation for this class was generated from the following files: