Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 3c398bf
Author: Luigi Rosso <[email protected]>
Date:   Tue Dec 17 04:58:20 2019 +0800

    Fixing race condition with layer determination. #204

commit e1c9972
Author: Luigi Rosso <[email protected]>
Date:   Tue Dec 17 04:53:54 2019 +0800

    Mark layers after drawables are computed.

commit 0e815f5
Author: Luigi Rosso <[email protected]>
Date:   Mon Dec 16 09:21:52 2019 +0800

    Fix for applying wrong animation to artboard. Issue #205.

commit 788c662
Author: Luigi Rosso <[email protected]>
Date:   Mon Dec 9 19:35:25 2019 -0500

    Fix for blur close to 0.

commit f0b24f4
Author: Luigi Rosso <[email protected]>
Date:   Thu Dec 5 18:24:59 2019 -0500

    Minor fixes for analyze.

commit 333249f
Author: Luigi Rosso <[email protected]>
Date:   Thu Dec 5 17:36:58 2019 -0500

    Preparing for publish.

commit 0aa32c5
Author: Luigi Rosso <[email protected]>
Date:   Wed Dec 4 15:19:37 2019 -0800

    Adding Guss.

commit 6ba1f70
Author: Luigi Rosso <[email protected]>
Date:   Wed Dec 4 09:12:26 2019 -0800

    Fixing type error in jelly component.

commit a522dff
Author: Luigi Rosso <[email protected]>
Date:   Sun Dec 1 17:31:28 2019 -0800

    Fixing effect on self.

commit 2375f0c
Author: Luigi Rosso <[email protected]>
Date:   Wed Nov 27 18:03:08 2019 -0800

    Adding animation for effects.

commit dee0d83
Author: Luigi Rosso <[email protected]>
Date:   Tue Nov 26 16:40:01 2019 -0800

    Getting drop shadow, blur, and inner shadows working.

commit 31aa641
Author: Luigi Rosso <[email protected]>
Date:   Mon Nov 25 19:57:39 2019 -0800

    Major groundwork for effects & masking.

commit 9ff2b94
Author: Luigi Rosso <[email protected]>
Date:   Wed Nov 20 16:38:28 2019 -0800

    Fixing gradient transformations for shapes with transformAffectsStroke set to true.

commit 1e88ddf
Merge: c7758eb 17f73ec
Author: Luigi Rosso <[email protected]>
Date:   Mon Nov 18 16:32:28 2019 -0800

    Merge branch 'master' of https://github.com/2d-inc/Flare-Flutter

commit c7758eb
Author: Luigi Rosso <[email protected]>
Date:   Mon Nov 18 16:32:23 2019 -0800

    Fixing FlareControls.

commit 17f73ec
Author: Umberto Sonnino <[email protected]>
Date:   Fri Nov 15 11:09:51 2019 +0000

    Update README with latest version

commit c9f4341
Author: Luigi Rosso <[email protected]>
Date:   Thu Nov 7 15:05:04 2019 -0800

    Backing out changeImageFromNetwork. Issue #183

commit e9712a4
Author: Luigi Rosso <[email protected]>
Date:   Thu Nov 7 12:32:17 2019 -0800

    Bumping versions.

commit 366cdc0
Author: Luigi Rosso <[email protected]>
Date:   Thu Nov 7 12:27:53 2019 -0800

    Adding support for runtime image swapping, requires marking image nodes as isDynamic in Flare. Issue #183.

commit 53a7c65
Author: Luigi Rosso <[email protected]>
Date:   Wed Nov 6 17:30:42 2019 -0800

    Updating flare_flutter version.

commit b391dd4
Merge: 1e9b22e 9ec074b
Author: Luigi Rosso <[email protected]>
Date:   Wed Nov 6 17:28:34 2019 -0800

    Merge branch 'warmth_fix'

commit 9ec074b
Author: Luigi Rosso <[email protected]>
Date:   Wed Nov 6 15:43:31 2019 -0800

    Call setState if mounted.

commit c66ac64
Author: Luigi Rosso <[email protected]>
Date:   Wed Nov 6 15:38:06 2019 -0800

    Addressing an issue found in #177 with FlareCacheBuilder setting state when widget is no longer mounted.

commit 1e9b22e
Author: Umberto Sonnino <[email protected]>
Date:   Wed Nov 6 19:02:25 2019 +0100

    Init mat before inverting

commit bc07b87
Author: Umberto Sonnino <[email protected]>
Date:   Wed Nov 6 19:00:13 2019 +0100

    Remove local flare_dart from examples pubspec #184

commit e1cca7c
Author: Luigi Rosso <[email protected]>
Date:   Tue Oct 29 12:50:30 2019 -0700

    Bumping versions, merging optimal_load branch, and persisting settings in checkbox example.

commit 55cae39
Author: Luigi Rosso <[email protected]>
Date:   Tue Oct 29 12:41:43 2019 -0700

    Copy transform affects stroke properly when instancing shapes.

commit 43716dd
Author: Luigi Rosso <[email protected]>
Date:   Mon Oct 28 12:52:09 2019 -0700

    Prevent coldLoad (async) from happening when widget isn’t ready to load.

commit 506837e
Author: Luigi Rosso <[email protected]>
Date:   Fri Oct 25 13:00:56 2019 -0700

    Improving loading.

commit 9ee95b9
Author: Luigi Rosso <[email protected]>
Date:   Fri Oct 25 10:42:42 2019 -0700

    Make sure overrideColor is set even when drawableNodes is null.

commit 7d59de1
Author: Umberto Sonnino <[email protected]>
Date:   Fri Oct 25 13:15:34 2019 +0100

    Move null check

commit 528af53
Author: Umberto Sonnino <[email protected]>
Date:   Fri Oct 25 13:10:17 2019 +0100

    Insert null checks for artboards with no drawables #178

commit 33f23a7
Author: Umberto Sonnino <[email protected]>
Date:   Fri Oct 25 12:16:16 2019 +0100

    Remove GradientColor override of ActorPaint opacity getter #179

commit 59ba2f0
Author: Umberto Sonnino <[email protected]>
Date:   Thu Oct 24 09:31:41 2019 +0100

    Document the `actor_animatino.apply()` function

commit d77438f
Author: Umberto Sonnino <[email protected]>
Date:   Thu Oct 24 09:31:10 2019 +0100

    Fix division by 0 on transform constraint

commit f0cf988
Author: Luigi Rosso <[email protected]>
Date:   Fri Oct 11 12:59:13 2019 -0700

    Fix reading of JSON clip values. Issue #172

commit a7796e0
Author: Luigi Rosso <[email protected]>
Date:   Fri Oct 11 12:39:48 2019 -0700

    Mitigating issue #172.

commit 373c14a
Author: Luigi Rosso <[email protected]>
Date:   Wed Oct 9 14:21:47 2019 -0700

    Fixing issue with image clipping.

commit ae1c901
Author: Luigi Rosso <[email protected]>
Date:   Wed Oct 9 11:19:16 2019 -0700

    Fix merge bugs.

commit d8cb780
Author: Luigi Rosso <[email protected]>
Date:   Wed Oct 9 11:09:42 2019 -0700

    Adding support for difference clipping.

commit bf99a76
Author: Luigi Rosso <[email protected]>
Date:   Tue Oct 8 19:07:26 2019 -0700

    Matching stable version

commit 9becc74
Author: Luigi Rosso <[email protected]>
Date:   Tue Oct 8 13:58:11 2019 -0700

    Bumping flare_dart to 2.0 due to breaking changes.

commit 0a292cc
Author: Luigi Rosso <[email protected]>
Date:   Tue Oct 8 13:39:57 2019 -0700

    Bumping versions and changelogs.

commit 431a98e
Author: Luigi Rosso <[email protected]>
Date:   Tue Oct 8 13:35:26 2019 -0700

    Fixing up analysis issues for #169

commit 72fb6fc
Merge: 4d00202 dc68dea
Author: Luigi Rosso <[email protected]>
Date:   Tue Oct 8 13:02:17 2019 -0700

    Merge branch 'master' of https://github.com/2d-inc/Flare-Flutter

commit 4d00202
Author: Luigi Rosso <[email protected]>
Date:   Tue Oct 8 13:02:11 2019 -0700

    Cleaning up analysis issues.

commit dc68dea
Merge: 5ca8d49 f1d9749
Author: Luigi Rosso <[email protected]>
Date:   Tue Oct 8 11:06:53 2019 -0700

    Merge pull request #168 from mehmetf/master

    Escalate the severity of unused imports in analyzer

commit f1d9749
Author: Mehmet Fidanboylu <[email protected]>
Date:   Tue Oct 8 10:20:58 2019 -0700

    Do the same changes to flare_dart

commit 64f395e
Author: Mehmet Fidanboylu <[email protected]>
Date:   Tue Oct 8 10:17:51 2019 -0700

    Escalate the severity of unused imports in analyzer

commit 5ca8d49
Author: Luigi Rosso <[email protected]>
Date:   Mon Oct 7 11:22:38 2019 -0700

    Bumping versions and changelog.

commit 874ce8e
Author: Luigi Rosso <[email protected]>
Date:   Mon Oct 7 11:20:28 2019 -0700

    Adding support for nodes inside of shapes.

commit 4d06431
Author: Luigi Rosso <[email protected]>
Date:   Fri Oct 4 18:06:09 2019 -0700

    Introducing FlareTesting.setup();

commit 2c5f420
Author: Luigi Rosso <[email protected]>
Date:   Fri Oct 4 13:44:25 2019 -0700

    Clamping trim start/end.

commit daba34d
Author: Luigi Rosso <[email protected]>
Date:   Mon Sep 30 21:21:55 2019 +0200

    Cherry picking critical lints from #1 63 and updating for pub.
  • Loading branch information
luigi-rosso committed Dec 16, 2019
1 parent 9116aa0 commit b48d641
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 43 deletions.
4 changes: 4 additions & 0 deletions flare_dart/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## [2.3.2] - 2019-12-17 04:54:38

- Mark layers for drawable items by first computing which drawables are in the layer. Removes race conditions with layers not being set correctly.

## [2.3.1] - 2019-12-16 09:17:37

- Type checking when applying trim path animation. Improves robustness and helps prevent crashes when applying animations from non-matching artboards.
Expand Down
4 changes: 2 additions & 2 deletions flare_dart/lib/actor_artboard.dart
Original file line number Diff line number Diff line change
Expand Up @@ -286,10 +286,10 @@ class ActorArtboard {
// layers won't be known before this.
for (int i = 1; i < componentCount; i++) {
ActorComponent c = components[i];
if (c is ActorDrawable && c.layerEffectRenderer == null) {
if (c is ActorDrawable && c.layerEffectRenderParent == null) {
_drawableNodes.add(c);
}
if (c is ActorLayerEffectRenderer && c.layerEffectRenderer == null) {
if (c is ActorLayerEffectRenderer && c.layerEffectRenderParent == null) {
_effectRenderers.add(c);
}
}
Expand Down
14 changes: 3 additions & 11 deletions flare_dart/lib/actor_drawable.dart
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,7 @@ abstract class ActorDrawable extends ActorNode {
}
}
}

ActorLayerEffectRenderer _layerEffectRenderer;
ActorLayerEffectRenderer get layerEffectRenderer => _layerEffectRenderer;
set layerEffectRenderer(ActorLayerEffectRenderer value) {
if (_layerEffectRenderer == value) {
return;
}
_layerEffectRenderer?.removeDrawable(this);
_layerEffectRenderer = value;
_layerEffectRenderer?.addDrawable(this);
}
/// If this is set the drawable belongs to a layer. We store a reference to
/// the parent node that contains the layer.
ActorNode layerEffectRenderParent;
}
73 changes: 45 additions & 28 deletions flare_dart/lib/actor_layer_effect_renderer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:flare_dart/math/aabb.dart';

import 'actor_artboard.dart';
import 'actor_blur.dart';
import 'actor_component.dart';
import 'actor_drawable.dart';
import 'actor_inner_shadow.dart';
import 'actor_mask.dart';
Expand All @@ -27,16 +28,6 @@ class ActorLayerEffectRenderer extends ActorDrawable {
List<ActorDropShadow> get dropShadows => _dropShadows;
List<ActorInnerShadow> get innerShadows => _innerShadows;

bool addDrawable(ActorDrawable drawable) {
if (_drawables.contains(drawable)) {
return false;
}
_drawables.add(drawable);
return true;
}

bool removeDrawable(ActorDrawable drawable) => _drawables.remove(drawable);

void sortDrawables() {
_drawables
.sort((ActorDrawable a, ActorDrawable b) => a.drawOrder - b.drawOrder);
Expand Down Expand Up @@ -80,52 +71,66 @@ class ActorLayerEffectRenderer extends ActorDrawable {
parent.children.whereType<ActorInnerShadow>().toList(growable: false);
}

@override
void resolveComponentIndices(List<ActorComponent> components) {
super.resolveComponentIndices(components);
parent.findLayerEffect();
}

@override
void completeResolve() {
super.completeResolve();

// When we complete resolve we find all the children and mark their layers.
// Alternative way to do this is to have each drawable check for parent
// layers when the parent changes. That would be more effective if nodes
// were to get moved around at runtime.
_drawables.clear();

parent?.all((node) {
if (node is ActorDrawable && node != this) {
node.layerEffectRenderer = this;
if (node == this) {
// don't recurse into this renderer
return false;
} else if (node is ActorNode &&
node.layerEffect != null &&
node.layerEffect != this) {
_drawables.add(node.layerEffect);
// don't recurse further into nodes that are drawing to layers
return false;
}
if (node is ActorDrawable) {
_drawables.add(node);
}
return true;
});

_drawables.forEach(_computeLayerNode);

sortDrawables();
computeMasks();
findEffects();
}

void computeMasks() {
_renderMasks.clear();
var maskSearch = parent;
var masks = <ActorMask>[];

while (maskSearch != null) {
masks +=
maskSearch.children.whereType<ActorMask>().toList(growable: false);
maskSearch = maskSearch.parent;
}
var masks = parent.children.whereType<ActorMask>().toList(growable: false);

for (final mask in masks) {
var renderMask = ActorLayerEffectRendererMask(mask);
mask.source?.all((child) {
if (child == parent) {
// recursive mask was selected
return false;
}
if (child is ActorDrawable) {
if (child.layerEffectRenderer != null &&
child.layerEffectRenderer != this) {
if (child == this) {
return false;
} else if (child.layerEffect != null) {
// Layer effect is direct discendant of this layer, so we want to
// draw it with the other drawables in this layer.
renderMask.drawables.add(child.layerEffectRenderer);
renderMask.drawables.add(child.layerEffect);
// Don't iterate if child has further layer effect
return false;
} else {
renderMask.drawables.add(child);
}
}

return true;
});

Expand All @@ -135,3 +140,15 @@ class ActorLayerEffectRenderer extends ActorDrawable {
}
}
}

void _computeLayerNode(ActorDrawable drawable) {
ActorNode parent = drawable;
while (parent != null) {
if (parent.layerEffect != null) {
drawable.layerEffectRenderParent = parent;
return;
}
parent = parent.parent;
}
drawable.layerEffectRenderParent = null;
}
1 change: 1 addition & 0 deletions flare_dart/lib/actor_node.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ class ActorNode extends ActorComponent {
double _opacity = 1.0;
double _renderOpacity = 1.0;
ActorLayerEffectRenderer _layerEffect;
ActorLayerEffectRenderer get layerEffect => _layerEffect;

bool _overrideWorldTransform = false;
bool _isCollapsedVisibility = false;
Expand Down
2 changes: 1 addition & 1 deletion flare_dart/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: flare_dart
description: Vector design and runtime animation.
version: 2.3.1
version: 2.3.2
author: "Rive Team <[email protected]>"
homepage: https://github.com/2d-inc/Flare-Flutter
environment:
Expand Down
4 changes: 4 additions & 0 deletions flare_flutter/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## [1.8.3] - 2019-12-17 04:56:04

- Mark layers for drawable items by first computing which drawables are in the layer. Removes race conditions with layers not being set correctly.

## [1.8.2] - 2019-12-16 09:19:22

- Clear out layers when instancing artboards to prevent animations from other artboards being applied.
Expand Down
2 changes: 1 addition & 1 deletion flare_flutter/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: flare_flutter
description: Vector design and runtime animation for Flutter.
version: 1.8.2
version: 1.8.3
author: "Rive Team <[email protected]>"
homepage: https://github.com/2d-inc/Flare-Flutter
environment:
Expand Down

0 comments on commit b48d641

Please sign in to comment.