Use AnimationInstance as a type where needed
diff --git a/include/rive/animation/animation_state.hpp b/include/rive/animation/animation_state.hpp index f1a71b8..aff5c3d 100644 --- a/include/rive/animation/animation_state.hpp +++ b/include/rive/animation/animation_state.hpp
@@ -4,7 +4,7 @@ #include <stdio.h> namespace rive { class LinearAnimation; - class Artboard; + class ArtboardInstance; class StateMachineLayerImporter; class AnimationState : public AnimationStateBase { @@ -15,7 +15,7 @@ public: const LinearAnimation* animation() const { return m_Animation; } - StateInstance* makeInstance(Artboard*) const override; + StateInstance* makeInstance(ArtboardInstance*) const override; }; } // namespace rive
diff --git a/include/rive/animation/animation_state_instance.hpp b/include/rive/animation/animation_state_instance.hpp index 64d25bf..d75cca9 100644 --- a/include/rive/animation/animation_state_instance.hpp +++ b/include/rive/animation/animation_state_instance.hpp
@@ -15,7 +15,7 @@ bool m_KeepGoing; public: - AnimationStateInstance(const AnimationState* animationState, Artboard* instance); + AnimationStateInstance(const AnimationState*, ArtboardInstance*); void advance(float seconds, SMIInput** inputs) override; void apply(float mix) override;
diff --git a/include/rive/animation/blend_state_1d.hpp b/include/rive/animation/blend_state_1d.hpp index 8ffa1e4..83d0695 100644 --- a/include/rive/animation/blend_state_1d.hpp +++ b/include/rive/animation/blend_state_1d.hpp
@@ -12,7 +12,7 @@ StatusCode import(ImportStack& importStack) override; - StateInstance* makeInstance(Artboard*) const override; + StateInstance* makeInstance(ArtboardInstance*) const override; }; } // namespace rive
diff --git a/include/rive/animation/blend_state_1d_instance.hpp b/include/rive/animation/blend_state_1d_instance.hpp index db7e7a6..866b524 100644 --- a/include/rive/animation/blend_state_1d_instance.hpp +++ b/include/rive/animation/blend_state_1d_instance.hpp
@@ -13,7 +13,7 @@ int animationIndex(float value); public: - BlendState1DInstance(const BlendState1D* blendState, Artboard* instance); + BlendState1DInstance(const BlendState1D*, ArtboardInstance*); void advance(float seconds, SMIInput** inputs) override; }; } // namespace rive
diff --git a/include/rive/animation/blend_state_direct.hpp b/include/rive/animation/blend_state_direct.hpp index 5562221..fd8f120 100644 --- a/include/rive/animation/blend_state_direct.hpp +++ b/include/rive/animation/blend_state_direct.hpp
@@ -5,7 +5,7 @@ namespace rive { class BlendStateDirect : public BlendStateDirectBase { public: - StateInstance* makeInstance(Artboard*) const override; + StateInstance* makeInstance(ArtboardInstance*) const override; }; } // namespace rive
diff --git a/include/rive/animation/blend_state_direct_instance.hpp b/include/rive/animation/blend_state_direct_instance.hpp index fd90681..d85dc5c 100644 --- a/include/rive/animation/blend_state_direct_instance.hpp +++ b/include/rive/animation/blend_state_direct_instance.hpp
@@ -9,7 +9,7 @@ class BlendStateDirectInstance : public BlendStateInstance<BlendStateDirect, BlendAnimationDirect> { public: - BlendStateDirectInstance(const BlendStateDirect* blendState, Artboard* instance); + BlendStateDirectInstance(const BlendStateDirect*, ArtboardInstance*); void advance(float seconds, SMIInput** inputs) override; }; } // namespace rive
diff --git a/include/rive/animation/blend_state_instance.hpp b/include/rive/animation/blend_state_instance.hpp index fe43e18..f011ab5 100644 --- a/include/rive/animation/blend_state_instance.hpp +++ b/include/rive/animation/blend_state_instance.hpp
@@ -23,9 +23,9 @@ const T* blendAnimation() const { return m_BlendAnimation; } const LinearAnimationInstance* animationInstance() const { return &m_AnimationInstance; } - BlendStateAnimationInstance(const T* blendAnimation, Artboard* instance) : + BlendStateAnimationInstance(const T* blendAnimation, ArtboardInstance* artboard) : m_BlendAnimation(blendAnimation), - m_AnimationInstance(blendAnimation->animation(), instance) + m_AnimationInstance(blendAnimation->animation(), artboard) {} void mix(float value) { m_Mix = value; } @@ -37,10 +37,10 @@ bool m_KeepGoing = true; public: - BlendStateInstance(const K* blendState, Artboard* instance) : StateInstance(blendState) { + BlendStateInstance(const K* blendState, ArtboardInstance* artboard) : StateInstance(blendState) { for (auto blendAnimation : blendState->animations()) { m_AnimationInstances.emplace_back( - BlendStateAnimationInstance<T>(static_cast<T*>(blendAnimation), instance)); + BlendStateAnimationInstance<T>(static_cast<T*>(blendAnimation), artboard)); } }
diff --git a/include/rive/animation/layer_state.hpp b/include/rive/animation/layer_state.hpp index 793947a..f2086f0 100644 --- a/include/rive/animation/layer_state.hpp +++ b/include/rive/animation/layer_state.hpp
@@ -5,7 +5,7 @@ #include <vector> namespace rive { - class Artboard; + class ArtboardInstance; class StateTransition; class LayerStateImporter; class StateMachineLayerImporter; @@ -36,7 +36,7 @@ /// Make an instance of this state that can be advanced and applied by /// the state machine when it is active or being transitioned from. - virtual StateInstance* makeInstance(Artboard* instance) const; + virtual StateInstance* makeInstance(ArtboardInstance*) const; }; } // namespace rive
diff --git a/include/rive/animation/linear_animation_instance.hpp b/include/rive/animation/linear_animation_instance.hpp index a1ec2ab..8eefb87 100644 --- a/include/rive/animation/linear_animation_instance.hpp +++ b/include/rive/animation/linear_animation_instance.hpp
@@ -8,7 +8,7 @@ class LinearAnimationInstance { private: const LinearAnimation* m_Animation = nullptr; - Artboard* m_ArtboardInstance; + ArtboardInstance* m_ArtboardInstance; float m_Time; float m_TotalTime; float m_LastTotalTime; @@ -18,7 +18,7 @@ int m_LoopValue = -1; public: - LinearAnimationInstance(const LinearAnimation*, Artboard* instance); + LinearAnimationInstance(const LinearAnimation*, ArtboardInstance*); // Advance the animation by the specified time. Returns true if the // animation will continue to animate after this advance.
diff --git a/include/rive/animation/nested_linear_animation.hpp b/include/rive/animation/nested_linear_animation.hpp index 7940c51..9481350 100644 --- a/include/rive/animation/nested_linear_animation.hpp +++ b/include/rive/animation/nested_linear_animation.hpp
@@ -3,6 +3,7 @@ #include "rive/generated/animation/nested_linear_animation_base.hpp" #include <stdio.h> namespace rive { + class ArtboardInstance; class LinearAnimationInstance; class NestedLinearAnimation : public NestedLinearAnimationBase { protected: @@ -11,7 +12,7 @@ public: ~NestedLinearAnimation(); - void initializeAnimation(Artboard* artboard) override; + void initializeAnimation(ArtboardInstance*) override; }; } // namespace rive
diff --git a/include/rive/animation/nested_remap_animation.hpp b/include/rive/animation/nested_remap_animation.hpp index 9303572..f71c229 100644 --- a/include/rive/animation/nested_remap_animation.hpp +++ b/include/rive/animation/nested_remap_animation.hpp
@@ -7,7 +7,7 @@ public: void timeChanged() override; void advance(float elapsedSeconds) override; - void initializeAnimation(Artboard* artboard) override; + void initializeAnimation(ArtboardInstance*) override; }; } // namespace rive
diff --git a/include/rive/animation/nested_state_machine.hpp b/include/rive/animation/nested_state_machine.hpp index d96c07b..5e7caf6 100644 --- a/include/rive/animation/nested_state_machine.hpp +++ b/include/rive/animation/nested_state_machine.hpp
@@ -6,7 +6,7 @@ class NestedStateMachine : public NestedStateMachineBase { public: void advance(float elapsedSeconds) override; - void initializeAnimation(Artboard* artboard) override; + void initializeAnimation(ArtboardInstance*) override; }; } // namespace rive
diff --git a/include/rive/animation/state_machine_instance.hpp b/include/rive/animation/state_machine_instance.hpp index 7e48cbb..5c7f1bc 100644 --- a/include/rive/animation/state_machine_instance.hpp +++ b/include/rive/animation/state_machine_instance.hpp
@@ -21,7 +21,7 @@ private: const StateMachine* m_Machine; - Artboard* m_ArtboardInstance; + ArtboardInstance* m_ArtboardInstance; bool m_NeedsAdvance = false; size_t m_InputCount; @@ -32,7 +32,7 @@ void markNeedsAdvance(); public: - StateMachineInstance(const StateMachine* machine, Artboard* instance); + StateMachineInstance(const StateMachine* machine, ArtboardInstance*); ~StateMachineInstance(); // Advance the state machine by the specified time. Returns true if the
diff --git a/include/rive/animation/system_state_instance.hpp b/include/rive/animation/system_state_instance.hpp index 2cc70ef..d72f844 100644 --- a/include/rive/animation/system_state_instance.hpp +++ b/include/rive/animation/system_state_instance.hpp
@@ -5,12 +5,14 @@ #include "rive/animation/state_instance.hpp" namespace rive { + class ArtboardInstance; + /// Represents an instance of a system state machine. Basically a /// placeholder that may have meaning to the state machine itself, or is /// just a no-op state (perhaps an unknown to this runtime state-type). class SystemStateInstance : public StateInstance { public: - SystemStateInstance(const LayerState* layerState, Artboard* instance); + SystemStateInstance(const LayerState*, ArtboardInstance*); void advance(float seconds, SMIInput** inputs) override; void apply(float mix) override;
diff --git a/include/rive/nested_animation.hpp b/include/rive/nested_animation.hpp index bbc0a87..1f4491b 100644 --- a/include/rive/nested_animation.hpp +++ b/include/rive/nested_animation.hpp
@@ -3,6 +3,8 @@ #include "rive/generated/nested_animation_base.hpp" #include <stdio.h> namespace rive { + class ArtboardInstance; + class NestedAnimation : public NestedAnimationBase { public: StatusCode onAddedDirty(CoreContext* context) override; @@ -12,7 +14,7 @@ // Initialize the animation (make instances as necessary) from the // source artboard. - virtual void initializeAnimation(Artboard* artboard) = 0; + virtual void initializeAnimation(ArtboardInstance*) = 0; }; } // namespace rive
diff --git a/src/animation/animation_state.cpp b/src/animation/animation_state.cpp index ceb701d..ee60a9c 100644 --- a/src/animation/animation_state.cpp +++ b/src/animation/animation_state.cpp
@@ -7,10 +7,10 @@ using namespace rive; -StateInstance* AnimationState::makeInstance(Artboard* instance) const { +StateInstance* AnimationState::makeInstance(ArtboardInstance* artboard) const { if (animation() == nullptr) { // Failed to load at runtime/some new type we don't understand. - return new SystemStateInstance(this, instance); + return new SystemStateInstance(this, artboard); } - return new AnimationStateInstance(this, instance); + return new AnimationStateInstance(this, artboard); } \ No newline at end of file
diff --git a/src/animation/animation_state_instance.cpp b/src/animation/animation_state_instance.cpp index 3303d4f..32fa598 100644 --- a/src/animation/animation_state_instance.cpp +++ b/src/animation/animation_state_instance.cpp
@@ -4,9 +4,9 @@ using namespace rive; AnimationStateInstance::AnimationStateInstance(const AnimationState* state, - Artboard* instance) : + ArtboardInstance* artboard) : StateInstance(state), - m_AnimationInstance(state->animation(), instance), + m_AnimationInstance(state->animation(), artboard), m_KeepGoing(true) {}
diff --git a/src/animation/blend_state_1d.cpp b/src/animation/blend_state_1d.cpp index 778fe9b..0f0043f 100644 --- a/src/animation/blend_state_1d.cpp +++ b/src/animation/blend_state_1d.cpp
@@ -6,8 +6,8 @@ using namespace rive; -StateInstance* BlendState1D::makeInstance(Artboard* instance) const { - return new BlendState1DInstance(this, instance); +StateInstance* BlendState1D::makeInstance(ArtboardInstance* artboard) const { + return new BlendState1DInstance(this, artboard); } StatusCode BlendState1D::import(ImportStack& importStack) {
diff --git a/src/animation/blend_state_1d_instance.cpp b/src/animation/blend_state_1d_instance.cpp index 4bb4408..d0ac304 100644 --- a/src/animation/blend_state_1d_instance.cpp +++ b/src/animation/blend_state_1d_instance.cpp
@@ -3,8 +3,8 @@ using namespace rive; -BlendState1DInstance::BlendState1DInstance(const BlendState1D* blendState, Artboard* instance) : - BlendStateInstance<BlendState1D, BlendAnimation1D>(blendState, instance) {} +BlendState1DInstance::BlendState1DInstance(const BlendState1D* blendState, ArtboardInstance* artboard) : + BlendStateInstance<BlendState1D, BlendAnimation1D>(blendState, artboard) {} int BlendState1DInstance::animationIndex(float value) { int idx = 0;
diff --git a/src/animation/blend_state_direct.cpp b/src/animation/blend_state_direct.cpp index 2879b4c..9830c83 100644 --- a/src/animation/blend_state_direct.cpp +++ b/src/animation/blend_state_direct.cpp
@@ -6,6 +6,6 @@ using namespace rive; -StateInstance* BlendStateDirect::makeInstance(Artboard* instance) const { - return new BlendStateDirectInstance(this, instance); +StateInstance* BlendStateDirect::makeInstance(ArtboardInstance* artboard) const { + return new BlendStateDirectInstance(this, artboard); } \ No newline at end of file
diff --git a/src/animation/blend_state_direct_instance.cpp b/src/animation/blend_state_direct_instance.cpp index 77c1c2f..062698e 100644 --- a/src/animation/blend_state_direct_instance.cpp +++ b/src/animation/blend_state_direct_instance.cpp
@@ -3,8 +3,8 @@ using namespace rive; -BlendStateDirectInstance::BlendStateDirectInstance(const BlendStateDirect* blendState, Artboard* instance) : - BlendStateInstance<BlendStateDirect, BlendAnimationDirect>(blendState, instance) {} +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);
diff --git a/src/animation/layer_state.cpp b/src/animation/layer_state.cpp index 7fce2d8..e6e9d9a 100644 --- a/src/animation/layer_state.cpp +++ b/src/animation/layer_state.cpp
@@ -46,6 +46,6 @@ void LayerState::addTransition(StateTransition* transition) { m_Transitions.push_back(transition); } -StateInstance* LayerState::makeInstance(Artboard* instance) const { - return new SystemStateInstance(this, instance); +StateInstance* LayerState::makeInstance(ArtboardInstance* artboard) const { + return new SystemStateInstance(this, artboard); } \ No newline at end of file
diff --git a/src/animation/linear_animation_instance.cpp b/src/animation/linear_animation_instance.cpp index f781cc2..a754993 100644 --- a/src/animation/linear_animation_instance.cpp +++ b/src/animation/linear_animation_instance.cpp
@@ -6,9 +6,9 @@ using namespace rive; LinearAnimationInstance::LinearAnimationInstance(const LinearAnimation* animation, - Artboard* instance) : + ArtboardInstance* artboard) : m_Animation(animation), - m_ArtboardInstance(instance), + m_ArtboardInstance(artboard), m_Time(animation->enableWorkArea() ? (float)animation->workStart() / animation->fps() : 0), m_TotalTime(0.0f), m_LastTotalTime(0.0f),
diff --git a/src/animation/nested_linear_animation.cpp b/src/animation/nested_linear_animation.cpp index 2d418d1..7bfefd4 100644 --- a/src/animation/nested_linear_animation.cpp +++ b/src/animation/nested_linear_animation.cpp
@@ -5,7 +5,7 @@ NestedLinearAnimation::~NestedLinearAnimation() { delete m_AnimationInstance; } -void NestedLinearAnimation::initializeAnimation(Artboard* artboard) { +void NestedLinearAnimation::initializeAnimation(ArtboardInstance* artboard) { assert(m_AnimationInstance == nullptr); m_AnimationInstance = new LinearAnimationInstance(artboard->animation(animationId()), artboard); } \ No newline at end of file
diff --git a/src/animation/nested_remap_animation.cpp b/src/animation/nested_remap_animation.cpp index fd146eb..2af1522 100644 --- a/src/animation/nested_remap_animation.cpp +++ b/src/animation/nested_remap_animation.cpp
@@ -10,7 +10,7 @@ } } -void NestedRemapAnimation::initializeAnimation(Artboard* artboard) { +void NestedRemapAnimation::initializeAnimation(ArtboardInstance* artboard) { Super::initializeAnimation(artboard); timeChanged(); }
diff --git a/src/animation/nested_state_machine.cpp b/src/animation/nested_state_machine.cpp index 2b3ad7c..139572a 100644 --- a/src/animation/nested_state_machine.cpp +++ b/src/animation/nested_state_machine.cpp
@@ -4,4 +4,4 @@ void NestedStateMachine::advance(float elapsedSeconds) {} -void NestedStateMachine::initializeAnimation(Artboard* artboard) {} \ No newline at end of file +void NestedStateMachine::initializeAnimation(ArtboardInstance*) {} \ No newline at end of file
diff --git a/src/animation/state_machine_instance.cpp b/src/animation/state_machine_instance.cpp index 6ece00f..1239044 100644 --- a/src/animation/state_machine_instance.cpp +++ b/src/animation/state_machine_instance.cpp
@@ -20,7 +20,7 @@ private: static const int maxIterations = 100; const StateMachineLayer* m_Layer = nullptr; - Artboard* m_ArtboardInstance = nullptr; + ArtboardInstance* m_ArtboardInstance = nullptr; StateInstance* m_AnyStateInstance = nullptr; StateInstance* m_CurrentState = nullptr; @@ -49,10 +49,10 @@ delete m_StateFrom; } - void init(const StateMachineLayer* layer, Artboard* instance) { - m_ArtboardInstance = instance; + void init(const StateMachineLayer* layer, ArtboardInstance* artboard) { + m_ArtboardInstance = artboard; assert(m_Layer == nullptr); - m_AnyStateInstance = layer->anyState()->makeInstance(instance); + m_AnyStateInstance = layer->anyState()->makeInstance(artboard); m_Layer = layer; changeState(m_Layer->entryState()); } @@ -215,11 +215,11 @@ }; } // namespace rive -StateMachineInstance::StateMachineInstance(const StateMachine* machine, Artboard* instance) +StateMachineInstance::StateMachineInstance(const StateMachine* machine, ArtboardInstance* artboard) : m_Machine(machine) - , m_ArtboardInstance(instance) + , m_ArtboardInstance(artboard) { - assert(instance->isInstance()); + assert(artboard->isInstance()); m_InputCount = machine->inputCount(); m_InputInstances = new SMIInput*[m_InputCount]; for (size_t i = 0; i < m_InputCount; i++) {
diff --git a/src/animation/system_state_instance.cpp b/src/animation/system_state_instance.cpp index 957ac18..0d97784 100644 --- a/src/animation/system_state_instance.cpp +++ b/src/animation/system_state_instance.cpp
@@ -1,7 +1,7 @@ #include "rive/animation/system_state_instance.hpp" using namespace rive; -SystemStateInstance::SystemStateInstance(const LayerState* layerState, Artboard* instance) : +SystemStateInstance::SystemStateInstance(const LayerState* layerState, ArtboardInstance*) : StateInstance(layerState) {} void SystemStateInstance::advance(float seconds, SMIInput** inputs) {}