Joystick ordering
Fixes issue with dependencies discussed here:
https://github.com/rive-app/rive/pull/5275
Joysticks now build their own DAG and export in the correct order for runtime.
Diffs=
f2ecb824b Joystick ordering (#5277)
diff --git a/.rive_head b/.rive_head
index 9c8e55f..592c7e0 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-a4fb3dc7decb50f6965e21ebced098cbdc35883d
+f2ecb824beea0dadfe7077accacb5cd246cac669
diff --git a/include/rive/math/aabb.hpp b/include/rive/math/aabb.hpp
index 5d0ef5d..2e8132e 100644
--- a/include/rive/math/aabb.hpp
+++ b/include/rive/math/aabb.hpp
@@ -93,8 +93,8 @@
Vec2D factorFrom(Vec2D point) const
{
- return Vec2D((point.x - left()) * 2.0f / width() - 1.0f,
- (point.y - top()) * 2.0f / height() - 1.0f);
+ return Vec2D(width() == 0.0f ? 0.0f : (point.x - left()) * 2.0f / width() - 1.0f,
+ (height() == 0.0f ? 0.0f : point.y - top()) * 2.0f / height() - 1.0f);
}
};
diff --git a/src/artboard.cpp b/src/artboard.cpp
index 2c5b233..4f09ab0 100644
--- a/src/artboard.cpp
+++ b/src/artboard.cpp
@@ -485,9 +485,19 @@
{
for (auto joystick : m_Joysticks)
{
+ if (!joystick->canApplyBeforeUpdate())
+ {
+ if (updateComponents())
+ {
+ didUpdate = true;
+ }
+ }
joystick->apply(this);
}
- updateComponents();
+ if (updateComponents())
+ {
+ didUpdate = true;
+ }
}
for (auto nestedArtboard : m_NestedArtboards)
{