blob: a969825ef17e223669cabf17189278f66266cb0b [file] [log] [blame]
#include "rive/animation/blend_state_direct_instance.hpp"
#include "rive/animation/state_machine_input_instance.hpp"
using namespace rive;
BlendStateDirectInstance::BlendStateDirectInstance(
const BlendStateDirect* blendState) :
BlendStateInstance<BlendStateDirect, BlendAnimationDirect>(blendState) {}
void BlendStateDirectInstance::advance(float seconds, SMIInput** inputs) {
BlendStateInstance<BlendStateDirect, BlendAnimationDirect>::advance(seconds,
inputs);
for (auto& animation : m_AnimationInstances) {
auto inputInstance = inputs[animation.blendAnimation()->inputId()];
auto numberInput = reinterpret_cast<const SMINumber*>(inputInstance);
auto value = numberInput->value();
animation.mix(std::min(1.0f, std::max(0.0f, value / 100.0f)));
}
}