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
QSSGRenderLight Struct Reference

#include <qssgrenderlight_p.h>

Inheritance diagram for QSSGRenderLight:
Collaboration diagram for QSSGRenderLight:

Public Types

enum class  DirtyFlag : quint8 { LightDirty = 0x1 }
enum class  SoftShadowQuality {
  Hard = 0 , PCF4 , PCF8 , PCF16 ,
  PCF32 , PCF64
}
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

 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, 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 ()

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
SoftShadowQuality m_softShadowQuality = SoftShadowQuality::PCF4
float m_pcfFactor = 2.0f
bool m_use32BitShadowmap = false
bool m_bakingEnabled = false
bool m_fullyBaked = false
float m_csmSplit1 = 0.1f
float m_csmSplit2 = 0.25f
float m_csmSplit3 = 0.5f
int m_csmNumSplits = 0
float m_csmBlendRatio = 0.05f
bool m_lockShadowmapTexels = false
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 }

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 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
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.

◆ SoftShadowQuality

Enumerator
Hard 
PCF4 
PCF8 
PCF16 
PCF32 
PCF64 

Definition at line 34 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.

Member Function Documentation

◆ clearDirty()

void QSSGRenderLight::clearDirty ( DirtyFlag dirtyFlag)

Definition at line 38 of file qssgrenderlight.cpp.

◆ isDirty()

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

Definition at line 88 of file qssgrenderlight_p.h.

◆ isEnabled()

bool QSSGRenderLight::isEnabled ( ) const
inlinenodiscard

Definition at line 86 of file qssgrenderlight_p.h.

◆ markDirty()

void QSSGRenderLight::markDirty ( DirtyFlag dirtyFlag)

Definition at line 32 of file qssgrenderlight.cpp.

Member Data Documentation

◆ DirtyMask

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

Definition at line 43 of file qssgrenderlight_p.h.

◆ m_ambientColor

QVector3D QSSGRenderLight::m_ambientColor

Definition at line 48 of file qssgrenderlight_p.h.

◆ m_bakingEnabled

bool QSSGRenderLight::m_bakingEnabled = false

Definition at line 72 of file qssgrenderlight_p.h.

◆ m_brightness

float QSSGRenderLight::m_brightness

Definition at line 52 of file qssgrenderlight_p.h.

◆ m_castShadow

bool QSSGRenderLight::m_castShadow

Definition at line 61 of file qssgrenderlight_p.h.

◆ m_coneAngle

float QSSGRenderLight::m_coneAngle

Definition at line 57 of file qssgrenderlight_p.h.

◆ m_constantFade

float QSSGRenderLight::m_constantFade

Definition at line 53 of file qssgrenderlight_p.h.

◆ m_csmBlendRatio

float QSSGRenderLight::m_csmBlendRatio = 0.05f

Definition at line 80 of file qssgrenderlight_p.h.

◆ m_csmNumSplits

int QSSGRenderLight::m_csmNumSplits = 0

Definition at line 79 of file qssgrenderlight_p.h.

◆ m_csmSplit1

float QSSGRenderLight::m_csmSplit1 = 0.1f

Definition at line 76 of file qssgrenderlight_p.h.

◆ m_csmSplit2

float QSSGRenderLight::m_csmSplit2 = 0.25f

Definition at line 77 of file qssgrenderlight_p.h.

◆ m_csmSplit3

float QSSGRenderLight::m_csmSplit3 = 0.5f

Definition at line 78 of file qssgrenderlight_p.h.

◆ m_diffuseColor

QVector3D QSSGRenderLight::m_diffuseColor

Definition at line 46 of file qssgrenderlight_p.h.

◆ m_fullyBaked

bool QSSGRenderLight::m_fullyBaked = false

Definition at line 73 of file qssgrenderlight_p.h.

◆ m_innerConeAngle

float QSSGRenderLight::m_innerConeAngle

Definition at line 58 of file qssgrenderlight_p.h.

◆ m_lightDirtyFlags

FlagT QSSGRenderLight::m_lightDirtyFlags = 0

Definition at line 60 of file qssgrenderlight_p.h.

◆ m_linearFade

float QSSGRenderLight::m_linearFade

Definition at line 54 of file qssgrenderlight_p.h.

◆ m_lockShadowmapTexels

bool QSSGRenderLight::m_lockShadowmapTexels = false

Definition at line 81 of file qssgrenderlight_p.h.

◆ m_pcfFactor

float QSSGRenderLight::m_pcfFactor = 2.0f

Definition at line 69 of file qssgrenderlight_p.h.

◆ m_quadraticFade

float QSSGRenderLight::m_quadraticFade

Definition at line 55 of file qssgrenderlight_p.h.

◆ m_scope

QSSGRenderNode* QSSGRenderLight::m_scope

Definition at line 45 of file qssgrenderlight_p.h.

◆ m_shadowBias

float QSSGRenderLight::m_shadowBias

Definition at line 62 of file qssgrenderlight_p.h.

◆ m_shadowFactor

float QSSGRenderLight::m_shadowFactor

Definition at line 63 of file qssgrenderlight_p.h.

◆ m_shadowFilter

float QSSGRenderLight::m_shadowFilter

Definition at line 66 of file qssgrenderlight_p.h.

◆ m_shadowMapFar

float QSSGRenderLight::m_shadowMapFar

Definition at line 65 of file qssgrenderlight_p.h.

◆ m_shadowMapRes

quint32 QSSGRenderLight::m_shadowMapRes

Definition at line 64 of file qssgrenderlight_p.h.

◆ m_softShadowQuality

SoftShadowQuality QSSGRenderLight::m_softShadowQuality = SoftShadowQuality::PCF4

Definition at line 67 of file qssgrenderlight_p.h.

◆ m_specularColor

QVector3D QSSGRenderLight::m_specularColor

Definition at line 47 of file qssgrenderlight_p.h.

◆ m_use32BitShadowmap

bool QSSGRenderLight::m_use32BitShadowmap = false

Definition at line 70 of file qssgrenderlight_p.h.


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