| #include "rive/animation/keyframe_string.hpp" |
| #include "rive/generated/core_registry.hpp" |
| #include "rive/animation/linear_animation_instance.hpp" |
| #include "rive/data_bind/bindable_property_string.hpp" |
| |
| using namespace rive; |
| |
| const std::string& KeyFrameString::effectiveValue( |
| const LinearAnimationInstance* context) const |
| { |
| if (context != nullptr) |
| { |
| if (auto* holder = context->keyFrameValueHolder(this)) |
| { |
| return holder->as<BindablePropertyString>()->propertyValue(); |
| } |
| } |
| return value(); |
| } |
| |
| void KeyFrameString::apply(Core* object, |
| int propertyKey, |
| float mix, |
| const LinearAnimationInstance* context) |
| { |
| CoreRegistry::setString(object, propertyKey, effectiveValue(context)); |
| } |
| |
| void KeyFrameString::applyInterpolation(Core* object, |
| int propertyKey, |
| float currentTime, |
| const KeyFrame* nextFrame, |
| float mix, |
| const LinearAnimationInstance* context) |
| { |
| CoreRegistry::setString(object, propertyKey, effectiveValue(context)); |
| } |