|
Cogs.Core
|
Holds all LightComponent instances in the system. More...
#include <LightSystem.h>
Public Member Functions | |
| LightSystem (Memory::Allocator *allocator, SizeType capacity) | |
| void | initialize (Context *context) override |
| Initialize the system. | |
| void | update (Context *context) override |
| Update the light system. | |
| void | preRender (Context *context) |
| Cull light system. | |
Public Member Functions inherited from Cogs::Core::ComponentSystemWithDataPool< LightComponent, LightData > | |
| ComponentSystemWithDataPool (Memory::Allocator *allocator, SizeType size=1024) | |
| LightData & | getData (const LightComponent *component) |
| const LightData & | getData (const LightComponent *component) const |
Public Member Functions inherited from Cogs::Core::ComponentSystemWithDataPools< ComponentType, DataTypes > | |
| ComponentSystemWithDataPools (Memory::Allocator *allocator, SizeType size=1024, MemBlockType componentMemType=MemBlockType::Component, MemBlockType dataMemType=MemBlockType::ComponentData) | |
| ComponentHandle | createComponent () override |
| void | destroyComponent (ComponentHandle component) override |
| template<typename T > | |
| T & | getData (const ComponentType *component) |
| Get the data stored for the given component from the data pool storing objects of the specified template type. | |
| template<typename T > | |
| const T & | getData (const ComponentType *component) const |
| Get the const data stored for the given component from the data pool storing objects of the specified template type. | |
Public Member Functions inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| ComponentSystem (Memory::Allocator *allocator, SizeType size=16384, MemBlockType componentMemType=MemBlockType::Component) | |
| void | instrumentedPreUpdate () override |
| Provided for tagged engine instrumentation. | |
| void | instrumentedUpdate () override |
| Provided for tagged engine instrumentation. | |
| void | instrumentedPostUpdate () override |
| Provided for tagged engine instrumentation. | |
| ComponentHandle | createComponent () override |
| Create a new component instance. | |
| void | destroyComponent (ComponentHandle component) override |
| Destroy the component held by the given handle. | |
| SizeType | getComponentIndex (const Component *component) const |
| Get the index of the given component in the component pool. | |
| size_t | size () |
| Returns the number of active components. | |
| void | clearCarryFlags () |
| Clear carry flags of all active components. | |
| void | resetFlags () |
| Reset the flags of all active components. | |
| void | prepareUpdate (Context *) override |
| void | postUpdate (Context *) override |
| ComponentHandle | getHandle (const ComponentType *component) |
| Get a handle to the given Component instance. | |
| virtual void | addEntitiesWithComponent (std::vector< EntityId > &entities, Reflection::TypeId componentTypeId) override |
| Return all entities with a given. | |
Public Member Functions inherited from Cogs::Core::ComponentSystemBase | |
| virtual | ~ComponentSystemBase () |
| Provided for destruction via pointer to base. | |
| ComponentSystemBase (Reflection::TypeId componentType) | |
| Constructs a ComponentSystemBase to manage components of the given componentType. | |
| virtual void | initialize (Context *context) |
| Initialize the system. | |
| void | preUpdate () |
| Run the pre-update method of the system. | |
| void | update () |
| Updates the system state to that of the current frame. | |
| void | postUpdate () |
| Perform post update logic in the system. | |
| virtual void | preUpdate (Context *) |
| Provided for custom pre update logic in derived systems. | |
| virtual void | prepareUpdate (Context *) |
| Provided for custom update preparation logic in derived systems. | |
| virtual void | update (Context *) |
| Provided for custom update logic in derived systems. | |
| virtual void | postUpdate (Context *) |
| Provided for custom post update logic in derived systems. | |
| virtual void | instrumentedPreUpdate () |
| Provided for tagged engine instrumentation. | |
| virtual void | instrumentedUpdate () |
| Provided for tagged engine instrumentation. | |
| virtual void | instrumentedPostUpdate () |
| Provided for tagged engine instrumentation. | |
| virtual void | addEntitiesWithComponent (std::vector< EntityId > &, Reflection::TypeId) |
| Return all entities with a given. | |
| virtual void | cleanup (Context *) |
| Provided for custom cleanup logic in derived systems. | |
| virtual ComponentHandle | createComponent () |
| Create a new component instance. | |
| virtual void | destroyComponent (ComponentHandle) |
| Destroy the component held by the given handle. | |
| Reflection::TypeId | getComponentType () const |
| Get the reflected type of the components managed by this system. | |
Public Attributes | |
| TextureHandle | cascadeArray = {} |
| uint32_t | currentLayerCount = 0 |
| uint32_t | currentTextureSize = 0 |
| Cogs::TextureFormat | currentShadowFormat = TextureFormat::Unknown |
| TextureHandle | cubeArray = {} |
| uint32_t | currentCubeCount = 0 |
| uint32_t | currentPointShadowResolution = 0 |
| Cogs::TextureFormat | currentPointShadowFormat = TextureFormat::Unknown |
| SoftShadows | softShadows = SoftShadows::High |
| bool | lightsChanged = true |
Public Attributes inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| ComponentPool< ComponentType > | pool |
| Pool of components managed by the system. | |
Public Attributes inherited from Cogs::Core::ComponentSystemBase | |
| Reflection::TypeId | componentType |
| The type of components managed by this instance. | |
| Context * | context = nullptr |
| Pointer to the Context instance the system lives in. | |
Additional Inherited Members | |
Public Types inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| typedef ComponentType | component_type |
Static Public Member Functions inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| static Reflection::TypeId | getTypeId () |
| Get the type id of the component type used by the system. | |
Holds all LightComponent instances in the system.
Calculates derived light data such as directions, light volumes etc.
Definition at line 77 of file LightSystem.h.
|
inline |
Definition at line 80 of file LightSystem.h.
|
overridevirtual |
Initialize the system.
Initialization is performed after all systems are created and a renderer initialized, but before the first time anything is rendered.
| context | Pointer to the context the system lives in. |
Reimplemented from Cogs::Core::ComponentSystemBase.
Definition at line 505 of file LightSystem.cpp.
References Cogs::Core::ComponentSystemBase::context, Cogs::Core::ComponentSystemBase::initialize(), and Cogs::Core::Context::variables.
| void Cogs::Core::LightSystem::preRender | ( | Context * | context | ) |
Cull light system.
Definition at line 517 of file LightSystem.cpp.
References Cogs::Core::LightComponent::castShadows, Cogs::TextureFlags::CubeMap, Cogs::Core::Context::cullingManager, Cogs::TextureFlags::DepthBuffer, Cogs::Core::Directional, Cogs::Core::LightComponent::dynamicCascadeCount, Cogs::Core::LightComponent::enabled, Cogs::Core::Context::engine, Cogs::ComponentModel::Component::getComponent(), Cogs::Core::IRenderer::getProjectionMatrix(), Cogs::ComponentModel::Component::hasChanged(), Cogs::Core::LightComponent::lightColor, Cogs::Core::LightComponent::lightType, Cogs::Core::Point, Cogs::Core::LightComponent::range, Cogs::Core::CameraData::rawProjectionMatrix, Cogs::Core::Context::renderer, Cogs::Core::TransformComponent::rotation, Cogs::ComponentModel::Component::setFlag(), Cogs::Core::LightComponent::shadowBias, Cogs::Core::LightComponent::shadowBiasClamp, Cogs::Core::LightComponent::shadowIntensityOffset, Cogs::Core::LightComponent::shadowNearPlane, Cogs::Core::LightComponent::shadowSlopedBias, Cogs::TextureFlags::Texture, Cogs::Core::LightComponent::tightShadowBounds, Cogs::Core::Context::time, Cogs::ComponentModel::Component::unsetFlag(), Cogs::Core::Context::variables, and Cogs::WebGPU.
|
overridevirtual |
Update the light system.
Reimplemented from Cogs::Core::ComponentSystemBase.
Definition at line 513 of file LightSystem.cpp.
| TextureHandle Cogs::Core::LightSystem::cascadeArray = {} |
Definition at line 90 of file LightSystem.h.
| TextureHandle Cogs::Core::LightSystem::cubeArray = {} |
Definition at line 95 of file LightSystem.h.
| uint32_t Cogs::Core::LightSystem::currentCubeCount = 0 |
Definition at line 96 of file LightSystem.h.
| uint32_t Cogs::Core::LightSystem::currentLayerCount = 0 |
Definition at line 91 of file LightSystem.h.
| Cogs::TextureFormat Cogs::Core::LightSystem::currentPointShadowFormat = TextureFormat::Unknown |
Definition at line 98 of file LightSystem.h.
| uint32_t Cogs::Core::LightSystem::currentPointShadowResolution = 0 |
Definition at line 97 of file LightSystem.h.
| Cogs::TextureFormat Cogs::Core::LightSystem::currentShadowFormat = TextureFormat::Unknown |
Definition at line 93 of file LightSystem.h.
| uint32_t Cogs::Core::LightSystem::currentTextureSize = 0 |
Definition at line 92 of file LightSystem.h.
| bool Cogs::Core::LightSystem::lightsChanged = true |
Definition at line 101 of file LightSystem.h.
| SoftShadows Cogs::Core::LightSystem::softShadows = SoftShadows::High |
Definition at line 100 of file LightSystem.h.