From 00b0dbef0df80433eaa78fe3cc68de867d5ca4f5 Mon Sep 17 00:00:00 2001 From: Anas <65850618+Anas35@users.noreply.github.com> Date: Sat, 28 Jan 2023 20:25:36 +0530 Subject: [PATCH] fix: Added useArtboardSize functionality (#2294) --- .../flame_rive/lib/src/rive_component.dart | 15 +++++++++---- packages/flame_rive/test/flame_rive_test.dart | 22 +++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/packages/flame_rive/lib/src/rive_component.dart b/packages/flame_rive/lib/src/rive_component.dart index 50c5a59b8..0be50adce 100644 --- a/packages/flame_rive/lib/src/rive_component.dart +++ b/packages/flame_rive/lib/src/rive_component.dart @@ -17,25 +17,32 @@ class RiveComponent extends PositionComponent { RiveComponent({ required this.artboard, bool antialiasing = true, - bool useArtboardSize = true, + @Deprecated( + "Will be removed in v1.8.0, use size's default value for ArtboardSize", + ) + bool useArtboardSize = true, BoxFit fit = BoxFit.contain, Alignment alignment = Alignment.center, // position component arguments super.position, - super.size, + + /// The logical size of the component. + /// Default value is ArtboardSize + Vector2? size, super.scale, double super.angle = 0.0, Anchor super.anchor = Anchor.topLeft, super.children, super.priority, - }) : _renderer = RiveArtboardRenderer( + }) : _renderer = RiveArtboardRenderer( antialiasing: antialiasing, useArtboardSize: useArtboardSize, fit: fit, alignment: alignment, artboard: artboard, - ); + ), + super(size: size ?? Vector2(artboard.width, artboard.height)); @override void render(ui.Canvas canvas) { diff --git a/packages/flame_rive/test/flame_rive_test.dart b/packages/flame_rive/test/flame_rive_test.dart index 4b4671f94..76884c544 100644 --- a/packages/flame_rive/test/flame_rive_test.dart +++ b/packages/flame_rive/test/flame_rive_test.dart @@ -125,6 +125,28 @@ void main() { expect(riveComponent.artboard.antialiasing, isFalse); }); }); + + group('Component size', () { + test('use specifiy size', () async { + final skillsArtboard = await loadArtboard(riveFile); + final riveComponent = RiveComponent( + artboard: skillsArtboard, + size: Vector2.all(250.0), + ); + + expect(riveComponent.size, Vector2.all(250.0)); + }); + + test('deafult value (ArtboardSize)', () async { + final skillsArtboard = await loadArtboard(riveFile); + final riveComponent = RiveComponent(artboard: skillsArtboard); + + expect( + riveComponent.size, + Vector2(skillsArtboard.width, skillsArtboard.height), + ); + }); + }); }); }