[canvaskit] Add particles integration
Bug: skia:
Change-Id: I5bf08e8007b59b5e21005f5004d698e53b99ffe6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/197849
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/modules/particles/src/SkParticleEffect.cpp b/modules/particles/src/SkParticleEffect.cpp
index f3b7d44..1e81d55 100644
--- a/modules/particles/src/SkParticleEffect.cpp
+++ b/modules/particles/src/SkParticleEffect.cpp
@@ -40,18 +40,29 @@
}
void SkParticleEffect::start(const SkAnimTimer& timer, bool looping) {
+ this->start(timer.secs(), looping);
+}
+
+void SkParticleEffect::start(double now, bool looping) {
fCount = 0;
- fLastTime = fSpawnTime = timer.secs();
+ fLastTime = fSpawnTime = now;
fSpawnRemainder = 0.0f;
fLooping = looping;
}
void SkParticleEffect::update(const SkAnimTimer& timer) {
- if (!timer.isRunning() || !this->isAlive() || !fParams->fDrawable) {
+ if (!timer.isRunning()) {
return;
}
- double now = timer.secs();
+ update(timer.secs());
+}
+
+void SkParticleEffect::update(double now) {
+ if (!this->isAlive() || !fParams->fDrawable) {
+ return;
+ }
+
float deltaTime = static_cast<float>(now - fLastTime);
if (deltaTime < 0.0f) {
return;