error in 1.8.0 or bigger
akilinomendez opened this issue · 9 comments
Hi, running the same flr in 1.7.3 dont have errors in the 1.8.1 i have this error:
════════ Exception caught by rendering library ═════════════════════════════════
The following StackOverflowError was thrown during paint():
Stack Overflow
The relevant error-causing widget was
FlareActor
lib\main.dart:46
When the exception was thrown, this was the stack
#0 _TypedDoubleListMixin.setRange (dart:typed_data-patch/typed_data_patch.dart:752:3)
#1 ActorArtboard.artboardAABB
package:flare_dart/actor_artboard.dart:657
#2 FlutterActorLayerEffectRenderer.draw
package:flare_flutter/flare.dart:1320
#3 FlutterActorLayerEffectRenderer.drawPass
package:flare_flutter/flare.dart:1526
#4 FlutterActorLayerEffectRenderer.draw
package:flare_flutter/flare.dart:1363
...
The following RenderObject was being processed when the exception was fired: FlareActorRenderObject#dd552
RenderObject: FlareActorRenderObject#dd552
parentData: (can use size)
constraints: BoxConstraints(w=533.3, h=320.0)
size: Size(533.3, 320.0)
════════════════════════════════════════════════════════════════════════════════
════════ Exception caught by rendering library ═════════════════════════════════
Stack Overflow
The relevant error-causing widget was
FlareActor
lib\main.dart:46
════════════════════════════════════════════════════════════════════════════════
The main code:
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@OverRide
Widget build(BuildContext context) {
SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft]);
SystemChrome.setEnabledSystemUIOverlays([]);
return MaterialApp(
debugShowCheckedModeBanner: false,
title: testFlare',
theme: ThemeData(primarySwatch: Colors.blue),
home: MyHomePage(),
)
}
}
class MyHomePage extends StatefulWidget {
@OverRide
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State {
@OverRide
Widget build(BuildContext context) {
return new FlareActor("assets/ciclo_lanzarote.flr", alignment:Alignment.center, fit:BoxFit.contain, animation:"ciclo");
}
}
any ideas;
Thank you.
I found that the failure occurs, when I have masks in the animation
Remove this part in the flr file the app launch.
{
"name": "Node",
"parent": 6806,
"isActive": true,
"source": 6805,
"maskType": 0,
"type": "mask"
}
I'm waiting, in order to use the masks.
King regards.
Hi @akilinomendez, could you share the flr file and link to the file on https://rive.app if it is public? Thanks!
Hi, for now remove the masks and work,
I'm working on flutter clock app and I don't want to publish anything to date, but you can do in read mode here https://rive.app/a/aki/files/flare/ciclo-lanzarote
The problem occurs when I create a mask to change the color of the clouds.
Thanks for your answer.
I haven't had a chance to investigate this further yet, but have you tried using the binary format? Is the result the same? I'm still traveling for the next two days so I may not be able to get to this until a little later.
Could you export a version with the mask applied and send the crashing exported .flr file (both binary and json please) to luigi@rive.app?
Ok, I discovered the error, I really don't know if it's a bug or if I'm doing wrong.
When the shape with mask in the layer flutter don't run.
Nevertheless, if the mask outside the shape run
I will send you the four files, but now that it works for me this way if you want you can close the issue.
Thanks for your attention
I am experiencing the same issue with my animation at https://rive.app/a/Vincemoo/files/flare/hourglass-1
@luigi-rosso I already sent you an email containing my files.
Please let me know if you need anything else.
@vinceMuni could you try flare_flutter: ^1.8.2
and see if that improves things?
SideNote: I noticed you are using a lot of masks, but the shapes you are clipping against are solid. Try using clips instead, the performance will be better on lower-end GPUs. Masking has to draw to a separate layer in order to then do a per pixel blend that gets expensive, especially when applied to a lot of shapes.
In general: use masks when you need per-pixel alpha/faded masking and use clips where you want hard edges to simply cut one shape from another.
Hi @luigi-rosso,
Thank you for your advices. As you said, with the new version flare_flutter: ^1.8.2
everything is working smoothly! I changed my animation as well, so I got no problems on running it. Thank you for your job and all the time you spend on it. I think the issue can be definitely closed.