Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QSSGRenderLight Struct Reference

#include <qssgrenderlight_p.h>

+ Inheritance diagram for QSSGRenderLight:
+ Collaboration diagram for QSSGRenderLight:

Public Types

enum class  DirtyFlag : quint8 { LightDirty = 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 ,
  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 : 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 , 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
}
 
enum class  Flags : quint32 { HasGraphicsResources = 0x1 }
 
using TypeT = std::underlying_type_t<Type>
 
using FlagT = std::underlying_type_t<Flags>
 

Public Member Functions

 QSSGRenderLight (Type type=Type::DirectionalLight)
 
bool isEnabled () const
 
bool isDirty (DirtyFlag dirtyFlag=DirtyMask) const
 
void markDirty (DirtyFlag dirtyFlag)
 
void clearDirty (DirtyFlag dirtyFlag)
 
- Public Member Functions inherited from QSSGRenderNode
 QSSGRenderNode ()
 
 QSSGRenderNode (Type type)
 
 ~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 ()
 
bool calculateGlobalVariables ()
 
QSSGBounds3 getBounds (QSSGBufferManager &inManager, bool inIncludeChildren=true) const
 
QSSGBounds3 getChildBounds (QSSGBufferManager &inManager) const
 
QVector3D getGlobalPos () const
 
QVector3D getGlobalPivot () const
 
QVector3D getDirection () const
 
QVector3D getScalingCorrectDirection () const
 
void calculateMVPAndNormalMatrix (const QMatrix4x4 &inViewProjection, QMatrix4x4 &outMVP, QMatrix3x3 &outNormalMatrix) const
 
QMatrix3x3 calculateNormalMatrix () const
 
- Public Member Functions inherited from QSSGRenderGraphObject
bool hasGraphicsResources () const noexcept
 
virtual Q_QUICK3D_PROFILE_ID_ ~QSSGRenderGraphObject ()
 

Public Attributes

QSSGRenderNodem_scope
 
QVector3D m_diffuseColor
 
QVector3D m_specularColor
 
QVector3D m_ambientColor
 
float m_brightness
 
float m_constantFade
 
float m_linearFade
 
float m_quadraticFade
 
float m_coneAngle
 
float m_innerConeAngle
 
FlagT m_lightDirtyFlags = 0
 
bool m_castShadow
 
float m_shadowBias
 
float m_shadowFactor
 
quint32 m_shadowMapRes
 
float m_shadowMapFar
 
float m_shadowFilter
 
bool m_bakingEnabled
 
bool m_fullyBaked
 
- Public Attributes inherited from QSSGRenderNode
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
 
QSSGRenderNodeparent = nullptr
 
QSSGRenderNodenextSibling = nullptr
 
QSSGRenderNodepreviousSibling = nullptr
 
QSSGRenderNodeinstanceRoot = nullptr
 
quint32 dfsIndex = 0
 
ChildList children
 
QString debugObjectName
 
- Public Attributes inherited from QSSGRenderGraphObject
const Type type
 
FlagT flags { 0 }
 

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

- Static Public Member Functions inherited from QSSGRenderNode
static QMatrix4x4 calculateTransformMatrix (QVector3D position, QVector3D scale, QVector3D pivot, QQuaternion rotation)
 
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
 
- Protected Member Functions inherited from QSSGRenderGraphObject
 QSSGRenderGraphObject (QSSGRenderGraphObject::Type inType)
 
 QSSGRenderGraphObject (QSSGRenderGraphObject::Type inType, FlagT inFlags)
 

Detailed Description

Definition at line 25 of file qssgrenderlight_p.h.

Member Typedef Documentation

◆ FlagT

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

Definition at line 31 of file qssgrenderlight_p.h.

Member Enumeration Documentation

◆ DirtyFlag

enum class QSSGRenderLight::DirtyFlag : quint8
strong
Enumerator
LightDirty 

Definition at line 27 of file qssgrenderlight_p.h.

Constructor & Destructor Documentation

◆ QSSGRenderLight()

QT_BEGIN_NAMESPACE QSSGRenderLight::QSSGRenderLight ( Type type = Type::DirectionalLight)
explicit

Definition at line 9 of file qssgrenderlight.cpp.

References QSSGRenderGraphObject::isLight(), LightDirty, markDirty(), and Q_ASSERT.

+ Here is the call graph for this function:

Member Function Documentation

◆ clearDirty()

void QSSGRenderLight::clearDirty ( DirtyFlag dirtyFlag)

Definition at line 38 of file qssgrenderlight.cpp.

References QSSGRenderNode::clearDirty(), m_lightDirtyFlags, and QSSGRenderNode::SubNodeDirty.

+ Here is the call graph for this function:

◆ isDirty()

bool QSSGRenderLight::isDirty ( DirtyFlag dirtyFlag = DirtyMask) const
inline

Definition at line 66 of file qssgrenderlight_p.h.

References QSSGRenderNode::isDirty().

+ Here is the call graph for this function:

◆ isEnabled()

bool QSSGRenderLight::isEnabled ( ) const
inline

Definition at line 64 of file qssgrenderlight_p.h.

Referenced by maybeQueueNodeForRender().

+ Here is the caller graph for this function:

◆ markDirty()

void QSSGRenderLight::markDirty ( DirtyFlag dirtyFlag)

Definition at line 32 of file qssgrenderlight.cpp.

References m_lightDirtyFlags, QSSGRenderNode::markDirty(), and QSSGRenderNode::SubNodeDirty.

Referenced by QSSGRenderLight(), and QQuick3DAbstractLight::updateSpatialNode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ DirtyMask

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

Definition at line 33 of file qssgrenderlight_p.h.

◆ m_ambientColor

QVector3D QSSGRenderLight::m_ambientColor

Definition at line 38 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_bakingEnabled

bool QSSGRenderLight::m_bakingEnabled

Definition at line 58 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_brightness

float QSSGRenderLight::m_brightness

Definition at line 42 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_castShadow

bool QSSGRenderLight::m_castShadow

◆ m_coneAngle

float QSSGRenderLight::m_coneAngle

Definition at line 47 of file qssgrenderlight_p.h.

Referenced by QQuick3DSpotLight::updateSpatialNode().

◆ m_constantFade

float QSSGRenderLight::m_constantFade

◆ m_diffuseColor

QVector3D QSSGRenderLight::m_diffuseColor

Definition at line 36 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_fullyBaked

bool QSSGRenderLight::m_fullyBaked

Definition at line 59 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_innerConeAngle

float QSSGRenderLight::m_innerConeAngle

Definition at line 48 of file qssgrenderlight_p.h.

Referenced by QQuick3DSpotLight::updateSpatialNode().

◆ m_lightDirtyFlags

FlagT QSSGRenderLight::m_lightDirtyFlags = 0

Definition at line 50 of file qssgrenderlight_p.h.

Referenced by clearDirty(), and markDirty().

◆ m_linearFade

float QSSGRenderLight::m_linearFade

◆ m_quadraticFade

float QSSGRenderLight::m_quadraticFade

◆ m_scope

QSSGRenderNode* QSSGRenderLight::m_scope

Definition at line 35 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_shadowBias

float QSSGRenderLight::m_shadowBias

Definition at line 52 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_shadowFactor

float QSSGRenderLight::m_shadowFactor

Definition at line 53 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_shadowFilter

float QSSGRenderLight::m_shadowFilter

Definition at line 56 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_shadowMapFar

float QSSGRenderLight::m_shadowMapFar

Definition at line 55 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_shadowMapRes

quint32 QSSGRenderLight::m_shadowMapRes

Definition at line 54 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().

◆ m_specularColor

QVector3D QSSGRenderLight::m_specularColor

Definition at line 37 of file qssgrenderlight_p.h.

Referenced by QQuick3DAbstractLight::updateSpatialNode().


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