Skylicht Engine
Loading...
Searching...
No Matches
Skylicht::IRenderSystem Class Referenceabstract

It serves as the interface for object classes that render 3D scenes. More...

#include <Entity/IRenderSystem.h>

Inheritance diagram for Skylicht::IRenderSystem:
Skylicht::IEntitySystem Skylicht::CCullingSystem Skylicht::CDebugRenderer Skylicht::CDecalsRenderer Skylicht::CGraphic2DRenderer Skylicht::CGridPlaneRender Skylicht::CLODSystem Skylicht::CLightCullingSystem Skylicht::CLightProbeRender Skylicht::CLightSystem Skylicht::CLineRenderer Skylicht::CMeshRenderSystem Skylicht::COcclusionQueryRenderer Skylicht::CPrimitiveBaseRenderer Skylicht::CReflectionProbeRender Skylicht::CSkinnedMeshRendererInstancing Skylicht::CSkyBoxRender Skylicht::CSkyDomeRender Skylicht::CSkySunRender Skylicht::CSpriteRenderer Skylicht::CVisibleSystem Skylicht::Particle::CParticleRenderer Skylicht::Particle::CParticleTrailRenderer

Public Types

enum  ERenderPass {
  Sky = 0 , Opaque , OcclusionQuery , Transparent ,
  Effect
}

Public Member Functions

virtual bool isRenderSystem ()
IRenderPipeline::ERenderPipelineType getPipelineType ()
virtual void render (CEntityManager *entityManager)=0
virtual void renderTransparent (CEntityManager *entityManager)
virtual void renderEmission (CEntityManager *entityManager)
virtual void postRender (CEntityManager *entityManager)
ERenderPass getRenderPass ()
int getSortingPriority ()
void setSortingPriority (int s)
Public Member Functions inherited from Skylicht::IEntitySystem
virtual void beginQuery (CEntityManager *entityManager)=0
virtual void onQuery (CEntityManager *entityManager, CEntity **entities, int count)=0
virtual void init (CEntityManager *entityManager)=0
virtual void update (CEntityManager *entityManager)=0
void setSystemOrder (int order)
int getSystemOrder ()

Protected Attributes

IRenderPipeline::ERenderPipelineType m_pipelineType
ERenderPass m_renderPass
int m_sortingPriority
Protected Attributes inherited from Skylicht::IEntitySystem
int m_systemOrder

Detailed Description

It serves as the interface for object classes that render 3D scenes.

Code example for adding a render system

CEntityManager* entityManager = scene->getEntityManager();
entityManager->addRenderSystem<CSelectingRenderer>()
This object class manages all entities within a scene.
Definition CEntityManager.h:89

After querying and updating data for Entities, the IRenderSystem will call functions like render, renderTransparent, etc., to display the data on the screen or output image.

Member Function Documentation

◆ isRenderSystem()

virtual bool Skylicht::IRenderSystem::isRenderSystem ( )
inlinevirtual

Reimplemented from Skylicht::IEntitySystem.

◆ render()

virtual void Skylicht::IRenderSystem::render ( CEntityManager * entityManager)
pure virtual

◆ renderEmission()

virtual void Skylicht::IRenderSystem::renderEmission ( CEntityManager * entityManager)
inlinevirtual

◆ renderTransparent()

virtual void Skylicht::IRenderSystem::renderTransparent ( CEntityManager * entityManager)
inlinevirtual

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