Particles: Removed emitters, added more full-featured position affectors
Bug: skia:
Change-Id: Ie6485a11bb57fecef470d727dcf3b4fe5dff0b90
Reviewed-on: https://skia-review.googlesource.com/c/195582
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/modules/particles/src/SkParticleEffect.cpp b/modules/particles/src/SkParticleEffect.cpp
index 5443548..d1f7b64 100644
--- a/modules/particles/src/SkParticleEffect.cpp
+++ b/modules/particles/src/SkParticleEffect.cpp
@@ -14,7 +14,6 @@
#include "SkPaint.h"
#include "SkParticleAffector.h"
#include "SkParticleDrawable.h"
-#include "SkParticleEmitter.h"
#include "SkReflected.h"
#include "SkRSXform.h"
@@ -25,7 +24,6 @@
v->visit("Life", fLifetime);
v->visit("Drawable", fDrawable);
- v->visit("Emitter", fEmitter);
v->visit("Spawn", fSpawnAffectors);
v->visit("Update", fUpdateAffectors);
@@ -86,7 +84,7 @@
int numToSpawn = sk_float_round2int(desired);
fSpawnRemainder = desired - numToSpawn;
numToSpawn = SkTPin(numToSpawn, 0, fParams->fMaxCount - fCount);
- if (fParams->fEmitter) {
+ if (numToSpawn) {
// This isn't "particle" t, it's effect t.
float t = static_cast<float>((now - fSpawnTime) / fParams->fEffectDuration);
t = fLooping ? fmodf(t, 1.0f) : SkTPin(t, 0.0f, 1.0f);
@@ -99,7 +97,9 @@
fParticles[fCount].fAge = t;
fParticles[fCount].fInvLifetime =
sk_ieee_float_divide(1.0f, fParams->fLifetime.eval(t, fRandom));
- fParticles[fCount].fPose = fParams->fEmitter->emit(fRandom);
+ fParticles[fCount].fPose.fPosition = { 0.0f, 0.0f };
+ fParticles[fCount].fPose.fHeading = { 0.0f, -1.0f };
+ fParticles[fCount].fPose.fScale = 1.0f;
fParticles[fCount].fVelocity.fLinear = { 0.0f, 0.0f };
fParticles[fCount].fVelocity.fAngular = 0.0f;
fParticles[fCount].fColor = { 1.0f, 1.0f, 1.0f, 1.0f };