2d-inc/Flare-Flutter

Multiple Paths under a Shape don't invalidate

umberto-sonnino opened this issue · 3 comments

If multiple Paths are nested under a single Shape have different keyframed values for each Path, the Shape won't invalidate any of the underlying Paths, and thus won't update.

A simple fix for this would be to add in ActorNode.update():

if ((dirt & TransformDirty) == TransformDirty) {
    updateTransform();
    if(this.parent != null && this.parent is FlutterActorShape)
    {
        this.parent.invalidateShape();
    }
}

Here's a zip file containing two files:
-translation.flr is the general case
-translation1.flr is the bug

test_files.zip

The best way to handle this is by invalidating the shape when a sub-path has its transform marked dirty (as opposed to when the transform updates). This avoids generating two update cycles and avoids doing a conditional when every ActorNode updates.

I made this change for both the user drawn paths and the procedural ones.

Alright, great, this looks fixed!