diff --git a/include/Nazara/Graphics/ParticleSystem.hpp b/include/Nazara/Graphics/ParticleSystem.hpp index f343db8ad..73a53addf 100644 --- a/include/Nazara/Graphics/ParticleSystem.hpp +++ b/include/Nazara/Graphics/ParticleSystem.hpp @@ -24,13 +24,13 @@ class NAZARA_GRAPHICS_API NzParticleSystem : public NzRenderable { public: NzParticleSystem(unsigned int maxParticleCount, nzParticleLayout layout); - NzParticleSystem(unsigned int maxParticleCount, const NzParticleDeclaration* declaration); + NzParticleSystem(unsigned int maxParticleCount, NzParticleDeclarationConstRef declaration); NzParticleSystem(const NzParticleSystem& emitter); ~NzParticleSystem(); - void AddController(NzParticleController* controller); + void AddController(NzParticleControllerRef controller); void AddEmitter(NzParticleEmitter* emitter); - void AddGenerator(NzParticleGenerator* generator); + void AddGenerator(NzParticleGeneratorRef generator); void AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const NzMatrix4f& transformMatrix) const; void ApplyControllers(NzParticleMapper& mapper, unsigned int particleCount, float elapsedTime); @@ -43,13 +43,12 @@ class NAZARA_GRAPHICS_API NzParticleSystem : public NzRenderable void* GenerateParticle(); void* GenerateParticles(unsigned int count); - const NzParticleDeclaration* GetDeclaration() const; + const NzParticleDeclarationConstRef& GetDeclaration() const; float GetFixedStepSize() const; unsigned int GetMaxParticleCount() const; unsigned int GetParticleCount() const; unsigned int GetParticleSize() const; - bool IsDrawable() const; bool IsFixedStepEnabled() const; void KillParticle(unsigned int index); diff --git a/src/Nazara/Graphics/ParticleSystem.cpp b/src/Nazara/Graphics/ParticleSystem.cpp index f176f5bcd..ebfa3995e 100644 --- a/src/Nazara/Graphics/ParticleSystem.cpp +++ b/src/Nazara/Graphics/ParticleSystem.cpp @@ -16,8 +16,8 @@ NzParticleSystem(maxParticleCount, NzParticleDeclaration::Get(layout)) { } -NzParticleSystem::NzParticleSystem(unsigned int maxParticleCount, const NzParticleDeclaration* declaration) : -m_declaration(declaration), +NzParticleSystem::NzParticleSystem(unsigned int maxParticleCount, NzParticleDeclarationConstRef declaration) : +m_declaration(std::move(declaration)), m_processing(false), m_maxParticleCount(maxParticleCount), m_particleCount(0) @@ -51,11 +51,11 @@ m_particleSize(system.m_particleSize) NzParticleSystem::~NzParticleSystem() = default; -void NzParticleSystem::AddController(NzParticleController* controller) +void NzParticleSystem::AddController(NzParticleControllerRef controller) { NazaraAssert(controller, "Invalid particle controller"); - m_controllers.emplace_back(controller); + m_controllers.emplace_back(std::move(controller)); } void NzParticleSystem::AddEmitter(NzParticleEmitter* emitter) @@ -65,11 +65,11 @@ void NzParticleSystem::AddEmitter(NzParticleEmitter* emitter) m_emitters.emplace_back(emitter); } -void NzParticleSystem::AddGenerator(NzParticleGenerator* generator) +void NzParticleSystem::AddGenerator(NzParticleGeneratorRef 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 @@ -152,7 +152,7 @@ void* NzParticleSystem::GenerateParticles(unsigned int count) return ptr; } -const NzParticleDeclaration* NzParticleSystem::GetDeclaration() const +const NzParticleDeclarationConstRef& NzParticleSystem::GetDeclaration() const { return m_declaration; } @@ -177,11 +177,6 @@ unsigned int NzParticleSystem::GetParticleSize() const return m_particleSize; } -bool NzParticleSystem::IsDrawable() const -{ - return true; -} - void NzParticleSystem::KillParticle(unsigned int index) { ///FIXME: Vérifier index