Graphics/ParticleSystem: Update interface

Former-commit-id: b58c3f194a32411eba2e321b00987d3c76e03cb0
This commit is contained in:
Lynix 2015-06-24 12:41:54 +02:00
parent 0895a9273d
commit 58f91d6e39
2 changed files with 11 additions and 17 deletions

View File

@ -24,13 +24,13 @@ class NAZARA_GRAPHICS_API NzParticleSystem : public NzRenderable
{ {
public: public:
NzParticleSystem(unsigned int maxParticleCount, nzParticleLayout layout); NzParticleSystem(unsigned int maxParticleCount, nzParticleLayout layout);
NzParticleSystem(unsigned int maxParticleCount, const NzParticleDeclaration* declaration); NzParticleSystem(unsigned int maxParticleCount, NzParticleDeclarationConstRef declaration);
NzParticleSystem(const NzParticleSystem& emitter); NzParticleSystem(const NzParticleSystem& emitter);
~NzParticleSystem(); ~NzParticleSystem();
void AddController(NzParticleController* controller); void AddController(NzParticleControllerRef controller);
void AddEmitter(NzParticleEmitter* emitter); void AddEmitter(NzParticleEmitter* emitter);
void AddGenerator(NzParticleGenerator* generator); void AddGenerator(NzParticleGeneratorRef generator);
void AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const NzMatrix4f& transformMatrix) const; void AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const NzMatrix4f& transformMatrix) const;
void ApplyControllers(NzParticleMapper& mapper, unsigned int particleCount, float elapsedTime); void ApplyControllers(NzParticleMapper& mapper, unsigned int particleCount, float elapsedTime);
@ -43,13 +43,12 @@ class NAZARA_GRAPHICS_API NzParticleSystem : public NzRenderable
void* GenerateParticle(); void* GenerateParticle();
void* GenerateParticles(unsigned int count); void* GenerateParticles(unsigned int count);
const NzParticleDeclaration* GetDeclaration() const; const NzParticleDeclarationConstRef& GetDeclaration() const;
float GetFixedStepSize() const; float GetFixedStepSize() const;
unsigned int GetMaxParticleCount() const; unsigned int GetMaxParticleCount() const;
unsigned int GetParticleCount() const; unsigned int GetParticleCount() const;
unsigned int GetParticleSize() const; unsigned int GetParticleSize() const;
bool IsDrawable() const;
bool IsFixedStepEnabled() const; bool IsFixedStepEnabled() const;
void KillParticle(unsigned int index); void KillParticle(unsigned int index);

View File

@ -16,8 +16,8 @@ NzParticleSystem(maxParticleCount, NzParticleDeclaration::Get(layout))
{ {
} }
NzParticleSystem::NzParticleSystem(unsigned int maxParticleCount, const NzParticleDeclaration* declaration) : NzParticleSystem::NzParticleSystem(unsigned int maxParticleCount, NzParticleDeclarationConstRef declaration) :
m_declaration(declaration), m_declaration(std::move(declaration)),
m_processing(false), m_processing(false),
m_maxParticleCount(maxParticleCount), m_maxParticleCount(maxParticleCount),
m_particleCount(0) m_particleCount(0)
@ -51,11 +51,11 @@ m_particleSize(system.m_particleSize)
NzParticleSystem::~NzParticleSystem() = default; NzParticleSystem::~NzParticleSystem() = default;
void NzParticleSystem::AddController(NzParticleController* controller) void NzParticleSystem::AddController(NzParticleControllerRef controller)
{ {
NazaraAssert(controller, "Invalid particle controller"); NazaraAssert(controller, "Invalid particle controller");
m_controllers.emplace_back(controller); m_controllers.emplace_back(std::move(controller));
} }
void NzParticleSystem::AddEmitter(NzParticleEmitter* emitter) void NzParticleSystem::AddEmitter(NzParticleEmitter* emitter)
@ -65,11 +65,11 @@ void NzParticleSystem::AddEmitter(NzParticleEmitter* emitter)
m_emitters.emplace_back(emitter); m_emitters.emplace_back(emitter);
} }
void NzParticleSystem::AddGenerator(NzParticleGenerator* generator) void NzParticleSystem::AddGenerator(NzParticleGeneratorRef generator)
{ {
NazaraAssert(generator, "Invalid particle generator"); NazaraAssert(generator, "Invalid particle generator");
m_generators.emplace_back(generator); m_generators.emplace_back(std::move(generator));
} }
void NzParticleSystem::AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const NzMatrix4f& transformMatrix) const void NzParticleSystem::AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const NzMatrix4f& transformMatrix) const
@ -152,7 +152,7 @@ void* NzParticleSystem::GenerateParticles(unsigned int count)
return ptr; return ptr;
} }
const NzParticleDeclaration* NzParticleSystem::GetDeclaration() const const NzParticleDeclarationConstRef& NzParticleSystem::GetDeclaration() const
{ {
return m_declaration; return m_declaration;
} }
@ -177,11 +177,6 @@ unsigned int NzParticleSystem::GetParticleSize() const
return m_particleSize; return m_particleSize;
} }
bool NzParticleSystem::IsDrawable() const
{
return true;
}
void NzParticleSystem::KillParticle(unsigned int index) void NzParticleSystem::KillParticle(unsigned int index)
{ {
///FIXME: Vérifier index ///FIXME: Vérifier index