namespace Dali::Toolkit::ParticleSystem::Internal
{
-
template<>
ParticleStream::StreamDataType StreamDataTypeWrapper<Vector3>::GetType()
{
}
if(streamFlags & ParticleStream::LIFETIME_STREAM_BIT)
{
- AddStream(0.0f, "aStreamLifetime", false);
+ AddStream(0.0f, "aStreamLifetime", true);
mBuiltInStreamMap[uint32_t(ParticleStream::LIFETIME_STREAM_BIT)] = mDataStreams.size() - 1;
+ AddStream(0.0f, "aStreamLifetimeBase", true);
+ mBuiltInStreamMap[uint32_t(ParticleStream::LIFETIME_BASE_STREAM_BIT)] = mDataStreams.size() - 1;
}
// create free chain
particle.Get<float>(ParticleStream::LIFETIME_STREAM_BIT) = lifetime;
+ // Store initial lifetime
+ particle.Get<float>(ParticleStream::LIFETIME_BASE_STREAM_BIT) = lifetime;
+
return mParticles.back();
}
return {nullptr};
// Point at this slot of memory as next free slot
auto& p = *it;
- if(mFreeIndex)
+ if(mFreeIndex > -1)
{
mFreeChain[p.GetIndex()] = mFreeIndex;
- mFreeIndex = p.GetIndex();
}
+ mFreeIndex = p.GetIndex();
// Remove particle from the list
mParticles.erase(it);