diff --git a/.rive_head b/.rive_head index 30ea12c2..6e06eb9b 100644 --- a/.rive_head +++ b/.rive_head @@ -1 +1 @@ -dde676085908d492af545660cbbb19ee0d10d91d +085f5bd2dce2d25561b00eebc5f7118a2c8769eb diff --git a/include/rive/shapes/shape.hpp b/include/rive/shapes/shape.hpp index 830e8779..587d4aa3 100644 --- a/include/rive/shapes/shape.hpp +++ b/include/rive/shapes/shape.hpp @@ -60,6 +60,11 @@ class Shape : public ShapeBase, public ShapePaintContainer } return m_WorldBounds; } + void markBoundsDirty() + { + drawableFlags(drawableFlags() & + ~static_cast(DrawableFlag::WorldBoundsClean)); + } AABB computeWorldBounds(const Mat2D* xform = nullptr) const; AABB computeLocalBounds() const; diff --git a/src/shapes/path_composer.cpp b/src/shapes/path_composer.cpp index adaef9cf..e0bf032c 100644 --- a/src/shapes/path_composer.cpp +++ b/src/shapes/path_composer.cpp @@ -87,6 +87,7 @@ void PathComposer::update(ComponentDirt value) } } } + m_Shape->markBoundsDirty(); } } diff --git a/src/shapes/shape.cpp b/src/shapes/shape.cpp index 157e378f..e37b4749 100644 --- a/src/shapes/shape.cpp +++ b/src/shapes/shape.cpp @@ -70,7 +70,6 @@ bool Shape::collapse(bool value) void Shape::pathChanged() { - drawableFlags(drawableFlags() & ~static_cast(DrawableFlag::WorldBoundsClean)); m_PathComposer.addDirt(ComponentDirt::Path, true); for (auto constraint : constraints()) {