Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
ParticleBasicColourUpdater.cpp
Go to the documentation of this file.
1
2
4
8
9namespace Divide {
10
11namespace {
12 constexpr U32 g_partitionSize = 128;
13}
14
15void ParticleBasicColourUpdater::update( [[maybe_unused]] const U64 deltaTimeUS, ParticleData& p ) {
16 ParallelForDescriptor descriptor = {};
17 descriptor._iterCount = p.aliveCount();
18 descriptor._partitionSize = g_partitionSize;
19 Parallel_For( context().taskPool( TaskPoolType::HIGH_PRIORITY ), descriptor, [&p](const Task*, const U32 start, const U32 end)
20 {
21 for (U32 i = start; i < end; ++i) {
22 p._colour[i].set(Lerp(p._startColour[i], p._endColour[i], p._misc[i].y));
23 }
24 });
25}
26
27} //namespace Divide
void update(U64 deltaTimeUS, ParticleData &p) override
Container to store data for a given set of particles.
Definition: ParticleData.h:59
vector< FColour4 > _startColour
r,g,b,a = colour and transparency
Definition: ParticleData.h:78
U32 aliveCount() const noexcept
Definition: ParticleData.h:117
vector< FColour4 > _colour
r,g,b,a = colour and transparency
Definition: ParticleData.h:76
vector< FColour4 > _endColour
r,g,b,a = colour and transparency
Definition: ParticleData.h:80
vector< vec4< F32 > > _misc
x = time; y = interpolation; z = 1 / time; w = distance to camera sq;
Definition: ParticleData.h:74
PlatformContext & context() noexcept
Handle console commands that start with a forward slash.
Definition: AIProcessor.cpp:7
T Lerp(T v1, T v2, U t) noexcept
Definition: MathHelper.inl:240
void Parallel_For(TaskPool &pool, const ParallelForDescriptor &descriptor, const DELEGATE< void, const Task *, U32, U32 > &cbk)
Definition: TaskPool.cpp:428
uint32_t U32
uint64_t U64
U32 _partitionSize
How many elements should we process per async task.
Definition: TaskPool.h:45
U32 _iterCount
For loop iteration count.
Definition: TaskPool.h:43