From fdfd07833569528dda8a569e7843287d917fe5eb Mon Sep 17 00:00:00 2001 From: Lynix Date: Sun, 31 Jul 2016 12:59:04 +0200 Subject: [PATCH] Build: Fix empty install commands Former-commit-id: 42abd0d02836ee466821da11bc34bbe4acc30389 [formerly 0031006522b6c8910fae4c7b72eaf05cda23dcea] Former-commit-id: 11ed91151aa8db729bea196ca9705a6e60f260bb --- .../Components/ParticleEmitterComponent.hpp | 5 ++++ build/scripts/common.lua | 4 +++- include/Nazara/Graphics/ParticleEmitter.hpp | 9 +++++-- include/Nazara/Graphics/ParticleGroup.hpp | 4 ++++ src/Nazara/Graphics/ParticleEmitter.cpp | 24 ++++++++++++++++++- src/Nazara/Graphics/ParticleGroup.cpp | 5 +++- 6 files changed, 46 insertions(+), 5 deletions(-) diff --git a/SDK/include/NDK/Components/ParticleEmitterComponent.hpp b/SDK/include/NDK/Components/ParticleEmitterComponent.hpp index add138ee9..b874e0818 100644 --- a/SDK/include/NDK/Components/ParticleEmitterComponent.hpp +++ b/SDK/include/NDK/Components/ParticleEmitterComponent.hpp @@ -20,6 +20,7 @@ namespace Ndk ParticleEmitterComponent(Nz::ParticleGroup* group); ParticleEmitterComponent(const ParticleEmitterComponent& emitter); + ParticleEmitterComponent(ParticleEmitterComponent&& emitter); ~ParticleEmitterComponent(); inline bool IsActive() const; @@ -31,8 +32,12 @@ namespace Ndk static ComponentIndex componentIndex; private: + void OnParticleGroupRelease(const Nz::ParticleGroup* particleGroup); + void SetupParticles(Nz::ParticleMapper& mapper, unsigned int count) const override; + NazaraSlot(Nz::ParticleGroup, OnParticleGroupRelease, m_particleGroupRelease); + SetupFunc m_setupFunc; Nz::ParticleGroup* m_particleGroup; bool m_isActive; diff --git a/build/scripts/common.lua b/build/scripts/common.lua index fa610e85c..b467eb9c5 100644 --- a/build/scripts/common.lua +++ b/build/scripts/common.lua @@ -693,7 +693,9 @@ function NazaraBuild:LoadConfig() local paths = string.explode(self.Config["InstallDir"], ";") for k,v in pairs(paths) do - self:AddInstallPath(v) + if (#v > 0) then + self:AddInstallPath(v) + end end end diff --git a/include/Nazara/Graphics/ParticleEmitter.hpp b/include/Nazara/Graphics/ParticleEmitter.hpp index 7e2c6a7f8..b7a168262 100644 --- a/include/Nazara/Graphics/ParticleEmitter.hpp +++ b/include/Nazara/Graphics/ParticleEmitter.hpp @@ -8,6 +8,7 @@ #define NAZARA_PARTICLEEMITTER_HPP #include +#include #include namespace Nz @@ -20,7 +21,7 @@ namespace Nz public: ParticleEmitter(); ParticleEmitter(const ParticleEmitter& emitter) = default; - ParticleEmitter(ParticleEmitter&& emitter) = default; + ParticleEmitter(ParticleEmitter&& emitter); virtual ~ParticleEmitter(); virtual void Emit(ParticleGroup& system, float elapsedTime) const; @@ -36,7 +37,11 @@ namespace Nz void SetEmissionRate(float rate); ParticleEmitter& operator=(const ParticleEmitter& emitter) = default; - ParticleEmitter& operator=(ParticleEmitter&& emitter) = default; + ParticleEmitter& operator=(ParticleEmitter&& emitter); + + // Signals: + NazaraSignal(OnParticleEmitterMove, const ParticleEmitter* /*oldParticleEmitter*/, const ParticleEmitter* /*newParticleEmitter*/); + NazaraSignal(OnParticleEmitterRelease, const ParticleEmitter* /*particleEmitter*/); private: virtual void SetupParticles(ParticleMapper& mapper, unsigned int count) const = 0; diff --git a/include/Nazara/Graphics/ParticleGroup.hpp b/include/Nazara/Graphics/ParticleGroup.hpp index 412b94511..4d4704171 100644 --- a/include/Nazara/Graphics/ParticleGroup.hpp +++ b/include/Nazara/Graphics/ParticleGroup.hpp @@ -8,6 +8,7 @@ #define NAZARA_PARTICLEGROUP_HPP #include +#include #include #include #include @@ -62,6 +63,9 @@ namespace Nz ParticleGroup& operator=(const ParticleGroup& emitter); + // Signals: + NazaraSignal(OnParticleGroupRelease, const ParticleGroup* /*particleGroup*/); + private: void MakeBoundingVolume() const override; void ResizeBuffer(); diff --git a/src/Nazara/Graphics/ParticleEmitter.cpp b/src/Nazara/Graphics/ParticleEmitter.cpp index b11cfdfe9..10f057dce 100644 --- a/src/Nazara/Graphics/ParticleEmitter.cpp +++ b/src/Nazara/Graphics/ParticleEmitter.cpp @@ -32,7 +32,19 @@ namespace Nz { } - ParticleEmitter::~ParticleEmitter() = default; + ParticleEmitter::ParticleEmitter(ParticleEmitter&& emitter) : + m_lagCompensationEnabled(emitter.m_lagCompensationEnabled), + m_emissionAccumulator(0.f), + m_emissionRate(emitter.m_emissionRate), + m_emissionCount(emitter.m_emissionCount) + { + OnParticleEmitterMove(&emitter, this); + } + + ParticleEmitter::~ParticleEmitter() + { + OnParticleEmitterRelease(this); + } /*! * \brief Emits particles according to the delta time between the previous frame @@ -141,4 +153,14 @@ namespace Nz { m_emissionRate = rate; } + + ParticleEmitter& ParticleEmitter::operator=(ParticleEmitter && emitter) + { + m_emissionCount = emitter.m_emissionCount; + m_emissionRate = emitter.m_emissionRate; + m_lagCompensationEnabled = emitter.m_lagCompensationEnabled; + + OnParticleEmitterMove(&emitter, this); + return *this; + } } diff --git a/src/Nazara/Graphics/ParticleGroup.cpp b/src/Nazara/Graphics/ParticleGroup.cpp index d93c085db..87dbb390c 100644 --- a/src/Nazara/Graphics/ParticleGroup.cpp +++ b/src/Nazara/Graphics/ParticleGroup.cpp @@ -77,7 +77,10 @@ namespace Nz std::memcpy(m_buffer.data(), system.m_buffer.data(), system.m_particleCount*m_particleSize); } - ParticleGroup::~ParticleGroup() = default; + ParticleGroup::~ParticleGroup() + { + OnParticleGroupRelease(this); + } /*! * \brief Adds a controller to the particles