blob: 0644090b50ffd100adc1e33f9d543dea3ae7bd93 [file]
#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));
}