27#include "ComponentsConfig.h"
28#include "Material/CMaterial.h"
29#include "ParticleSystem/Particles/CParticleSerializable.h"
53 class COMPONENT_API IRenderer :
public CParticleSerializable
100 virtual ~IRenderer();
169 return L
"Quad (Instancing)";
170 else if (
m_type == MeshInstancing)
171 return L
"Mesh (Instancing)";
173 return L
"CPU Renderer";
The object class describes material information such as which shader it's associated with,...
Definition CMaterial.h:84
Definition CObjectSerializable.h:36
u32 getAtlasX()
Gets atlas column count.
Definition IRenderer.h:187
bool isEmission()
Checks emission status.
Definition IRenderer.h:136
bool m_useInstancing
Whether this renderer uses hardware instancing.
Definition IRenderer.h:67
bool needUpdateMesh()
Checks if internal mesh requires rebuilding.
Definition IRenderer.h:160
CMaterial * getMaterial()
Gets active material (custom or default).
float getFrameWidth()
Gets UV width of a single frame.
Definition IRenderer.h:205
void setEmissionIntensity(float b)
Sets emission intensity.
Definition IRenderer.h:148
u32 getAtlasY()
Gets atlas row count.
Definition IRenderer.h:193
void setTexture(int slot, ITexture *texture)
Sets texture for a specific slot.
bool m_emission
Whether the particles have emission.
Definition IRenderer.h:69
CMaterial * getDefaultMaterial()
Gets default internal material.
Definition IRenderer.h:112
const wchar_t * getName()
Gets display name.
Definition IRenderer.h:166
std::string m_materialPath
Path to custom material file.
Definition IRenderer.h:84
float getFrameHeight()
Gets UV height of a single frame.
Definition IRenderer.h:211
virtual void getParticleBuffer(IMeshBuffer *buffer)=0
Implementation: fills the mesh buffer with renderer-specific geometry.
ERenderer m_type
Type of the renderer.
Definition IRenderer.h:57
CMaterial * m_customMaterial
Optional custom material.
Definition IRenderer.h:62
CMaterial * m_material
Default material for the particles.
Definition IRenderer.h:60
std::string m_texturePath
Primary texture path.
Definition IRenderer.h:76
bool m_useCustomMaterial
Whether custom material is enabled.
Definition IRenderer.h:65
void setEmission(bool b)
Enables/disables emission.
Definition IRenderer.h:130
float getEmissionIntensity()
Gets emission intensity.
Definition IRenderer.h:154
bool m_ztest
Depth test flag.
Definition IRenderer.h:71
bool m_needUpdateMesh
Internal: flag to trigger mesh buffer updates.
Definition IRenderer.h:87
u32 m_atlasNy
Atlas vertical frame count.
Definition IRenderer.h:81
u32 m_atlasNx
Atlas horizontal frame count.
Definition IRenderer.h:79
u32 getTotalFrames()
Gets total frames in atlas.
Definition IRenderer.h:199
float m_emissionIntensity
Emission intensity multiplier.
Definition IRenderer.h:73
virtual CObjectSerializable * createSerializable()
Creates a serializable object for property editing or saving.
void setTexturePath(const char *path)
Loads and sets the main texture.
bool useInstancing()
Checks instancing support.
Definition IRenderer.h:142
float SizeX
Default base scale X.
Definition IRenderer.h:91
float SizeZ
Default base scale Z.
Definition IRenderer.h:95
virtual void loadSerializable(CObjectSerializable *object)
Loads properties from a serializable object.
void setAtlas(u32 x, u32 y)
Configures texture atlas dimensions.
float SizeY
Default base scale Y.
Definition IRenderer.h:93
CMaterial * getCustomMaterial()
Gets custom material if set.
Definition IRenderer.h:118
ERenderer getType()
Gets renderer type enum.
Definition IRenderer.h:103
Struct for holding a mesh with a single material.
Definition IMeshBuffer.h:42
Interface of a Video Driver dependent Texture.
Definition ITexture.h:119
ERenderer
Available particle renderer types.
Definition IRenderer.h:41
Everything in the Skylicht Engine. You can start by looking at the topics.
Definition AudioDebugLog.h:29
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58