| #include "rive/animation/blend_state_direct_instance.hpp" |
| #include "rive/animation/state_machine_input_instance.hpp" |
| |
| using namespace rive; |
| |
| BlendStateDirectInstance::BlendStateDirectInstance(const BlendStateDirect* blendState, ArtboardInstance* artboard) : |
| BlendStateInstance<BlendStateDirect, BlendAnimationDirect>(blendState, artboard) {} |
| |
| 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))); |
| } |
| } |