initialize seed with chrono using rand without seeding it was generating the same sequence of results on every iteration. This PR initializes it with a new seed on every state machine instance. Diffs= 3734d9bac initialize seed with chrono (#7285) Co-authored-by: hernan <hernan@rive.app>
diff --git a/.rive_head b/.rive_head index 1070542..036d288 100644 --- a/.rive_head +++ b/.rive_head
@@ -1 +1 @@ -45b998e68b849e0c8741bf254a2193e31844c405 +3734d9bac071052acbcfdbec576ba9532bc84e3b
diff --git a/src/animation/state_machine_instance.cpp b/src/animation/state_machine_instance.cpp index e5e387d..2400ced 100644 --- a/src/animation/state_machine_instance.cpp +++ b/src/animation/state_machine_instance.cpp
@@ -27,6 +27,7 @@ #include "rive/math/math_types.hpp" #include "rive/audio_event.hpp" #include <unordered_map> +#include <chrono> using namespace rive; namespace rive @@ -51,6 +52,10 @@ m_anyStateInstance = layer->anyState()->makeInstance(instance).release(); m_layer = layer; changeState(m_layer->entryState()); + auto now = std::chrono::high_resolution_clock::now(); + auto nanos = + std::chrono::duration_cast<std::chrono::nanoseconds>(now.time_since_epoch()).count(); + srand(nanos); } void updateMix(float seconds)