Skylicht Engine
Loading...
Searching...
No Matches
Skylicht::Particle::CParticleRenderer Class Reference

ECS render system for particles. More...

#include <ParticleSystem/CParticleRenderer.h>

Inheritance diagram for Skylicht::Particle::CParticleRenderer:
Skylicht::IRenderSystem Skylicht::IEntitySystem

Public Member Functions

virtual void beginQuery (CEntityManager *entityManager)
 ECS hook: establishes filters for entities with particle data.
virtual void onQuery (CEntityManager *entityManager, CEntity **entities, int numEntity)
 ECS hook: query implementation.
virtual void init (CEntityManager *entityManager)
 ECS hook: initialization.
virtual void update (CEntityManager *entityManager)
 ECS hook: per-frame updates.
virtual void render (CEntityManager *entityManager)
 ECS hook: main render pass (standard/opaque).
virtual void renderTransparent (CEntityManager *entityManager)
 ECS hook: transparent render pass.
virtual void renderEmission (CEntityManager *entityManager)
 ECS hook: emission render pass.
Public Member Functions inherited from Skylicht::IRenderSystem
virtual bool isRenderSystem ()
IRenderPipeline::ERenderPipelineType getPipelineType ()
virtual void postRender (CEntityManager *entityManager)
ERenderPass getRenderPass ()
int getSortingPriority ()
void setSortingPriority (int s)
Public Member Functions inherited from Skylicht::IEntitySystem
void setSystemOrder (int order)
int getSystemOrder ()

Protected Member Functions

const core::matrix4getTransformNoRotate (const core::matrix4 &world)
 Internal helper to calculate transform without rotation.
void renderParticleGroup (CParticleBufferData *data, const core::matrix4 &world)
 Internal: renders all groups for an entity.
void renderParticleGroupEmission (CParticleBufferData *data, const core::matrix4 &world)
 Internal: renders emission groups for an entity.
void renderGroup (IVideoDriver *driver, Particle::CGroup *group)
 Internal: submits a specific group to the video driver.

Protected Attributes

CEntityGroupm_group
 Cached entity group.
core::matrix4 m_transform
 Internal scratchpad matrix.
core::vector3df m_billboardUp
 Current billboard up vector.
core::vector3df m_billboardLook
 Current billboard look vector.
Protected Attributes inherited from Skylicht::IRenderSystem
IRenderPipeline::ERenderPipelineType m_pipelineType
ERenderPass m_renderPass
int m_sortingPriority
Protected Attributes inherited from Skylicht::IEntitySystem
int m_systemOrder

Additional Inherited Members

Public Types inherited from Skylicht::IRenderSystem
enum  ERenderPass {
  Sky = 0 , Opaque , OcclusionQuery , Transparent ,
  Effect
}

Detailed Description

ECS render system for particles.

Handles the actual drawing of particles using the renderers assigned to each group. Supports standard, transparent, and emission passes.

Member Function Documentation

◆ beginQuery()

virtual void Skylicht::Particle::CParticleRenderer::beginQuery ( CEntityManager * entityManager)
virtual

ECS hook: establishes filters for entities with particle data.

Implements Skylicht::IEntitySystem.

◆ init()

virtual void Skylicht::Particle::CParticleRenderer::init ( CEntityManager * entityManager)
virtual

ECS hook: initialization.

Implements Skylicht::IEntitySystem.

◆ onQuery()

virtual void Skylicht::Particle::CParticleRenderer::onQuery ( CEntityManager * entityManager,
CEntity ** entities,
int numEntity )
virtual

ECS hook: query implementation.

Implements Skylicht::IEntitySystem.

◆ render()

virtual void Skylicht::Particle::CParticleRenderer::render ( CEntityManager * entityManager)
virtual

ECS hook: main render pass (standard/opaque).

Implements Skylicht::IRenderSystem.

◆ renderEmission()

virtual void Skylicht::Particle::CParticleRenderer::renderEmission ( CEntityManager * entityManager)
virtual

ECS hook: emission render pass.

Reimplemented from Skylicht::IRenderSystem.

◆ renderTransparent()

virtual void Skylicht::Particle::CParticleRenderer::renderTransparent ( CEntityManager * entityManager)
virtual

ECS hook: transparent render pass.

Reimplemented from Skylicht::IRenderSystem.

◆ update()

virtual void Skylicht::Particle::CParticleRenderer::update ( CEntityManager * entityManager)
virtual

ECS hook: per-frame updates.

Implements Skylicht::IEntitySystem.


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