61 Commits

Author SHA1 Message Date
27be816a46 Update flutter runtime
- ran ```dev/generate_core_runtime.sh build```
- cleaned up a lot of accumulated changes from the last few months that needed to be stripped/modified for the rutnime
- removed no longer supported lining options from analysis files
- fixed up defs for some editor only features so they don't transpile
- added some more details to changelog
- bumped pubspec version

Diffs=
aa8c750bd Update flutter runtime (#4835)
2023-02-15 23:47:35 +00:00
3941b7e932 Update ObjC formatting to look more similar to the C++
Also update the auto formatter to run on *.m and *.mm files, and effectively ban breaking on return types entirely, as I think this is ugly.

Diffs=
c7d125c7d Update ObjC formatting to look more similar to the C++
2023-02-15 17:24:54 +00:00
00798ca173 Perf/flutter runtime opacity check
- Adds checks to see if a drawable has a 0% opacity before performing draw commands
- Add skinning example

Diffs=
a61f4c6b5 apply changes to rive_core
8152b8a02 docs: update CHANGELOG
b8f61022c perf: check if opacity is 0 before drawing
4c4826e67 chore: add typedef argument names
ff94982f9 docs: add skinning sample
f1ddd88d4 Fix artboard pieces slowly popping in. (#4818)
3039909c2 Update to using deployment workflow similar to ios
53a8f9517 Fix direction when looping. (#4786)
4c5a576ad Fix ping pong hang (#4776)
ae1e02afc Fix tess test linking (#4773)
4ecbf9321 Fix remap based on issue JC caught. (#4771)
89e38b700 allow negative speed (#4770)
4d115b4c6 Adding GLSL100 for tess renderer. (#4767)
31a3972aa ios shaders for tess (#4765)
686e5125b Add dependency to correct grand parent for linear gradients. (#4753)
e737ee427 Revert "Update to using deployment workflow similar to ios"
de0e57d55 Update to using deployment workflow similar to ios
051769242 Runtime Text! (#4741)
331ad0d55 Build cleanups
2538229d6 Use Rive's libpng premake dependency in golden testing
42a0377bc Fix condition with trim paths where all contours are 0 length. (#4722)
ea1c83d02 Use os.copyfile() instead of the '{COPY}' command
5c03e1640 Remove forcing arch to arm64 for libpng (#4715)
404a04d35 Cleaning up libpng premake to be isolated/stand-alone. (#4713)
2023-02-13 18:13:08 +00:00
9d2fe267da Published rive_flutter 0.10.1
Some minor updates that I made when publishing 0.10.1

Diffs=
f39fc2bb8 Published rive_flutter 0.10.1 (#4657)
2023-01-11 21:54:05 +00:00
0767844a56 style: updated example and readme
Diffs=
a259b57b2 style: clean up example app
483978f10 docs: update readme
2023-01-11 21:04:30 +00:00
82e5dc984c perf: fix didUpdateWidget and artboard config
This resolves a performance and usability issue where certain conditions would result in Rive needlessly reconfiguring/initializing the Rive artboard (as well as downloading/loading Rive files). If `onInit`, `animations`, `controllers`, or `stateMachines` were passed in as an argument to `RiveAnimation` the above issue is triggered on each widget rebuild. Under certain conditions this could result in an animation constantly restarting, bad performance, or Flutter ending up in a `setState` callback loop.

This PR also clears the list of local controllers each time init is called.

Resolves: https://github.com/rive-app/rive-flutter/issues/277

This also fixes bugs in our example app
- Play/Pause not working
- One shot animation behaving oddly

Diffs=
9af05d044 docs: update changelog
cb7fd6d14 test: add rive animation onInit tests
107ae16bc refactor: naming and call logic
6857aa691 docs: add additional code docs
f3ba4f015 perf: fix didUpdateWidget configure loop
7d0aaaff3 Adjust RiveAnimation didUpdateWidget condition (https://github.com/rive-app/rive-flutter/issues/278)
d4c6dd4ab Add more helper functions
6a8f9e249 Fix tess for C++11 and add to github action (#4571)
c8b5fdadd More SIMD features
87f079a10 RawPath::Iter improvements
2023-01-10 08:59:52 +00:00
cac78883af Value Graph Export + Runtime Support!!
- Renamed CubicInterpolator to CubicEaseInterpolator so that CubicInterpolator can now be the base class for both CubicEaseInterpolator and CubicValueInterpolator.
- Added CubicValueInterpolator to cpp and Flutter runtimes.
- Test in cpp runtime for the new cubic value interpolation.

Diffs=
1e80ad08f Value Graph Export + Runtime Support!! (#4524)
c532f8658 Shorten harfbuzz/SheenBidi directory paths
312a6c778 Drop the runtime to C++11
de4fe4d71 export MAKE_SKIA_FILE from all top-level scripts that build Skia
75a6b74b8 Beef up testing in tools/*
79f98695a Don't show interactive download progress when premaking on bots
b7fd1d825 Move golden testing into tools/
2022-12-14 22:15:43 +00:00
af6e7d4c07 rive_common package
I started adding Text features to rive_core and realized that the dependency structure is going to be very difficult to manage here. Here's why:

## rive_core
 - has most of the runtime logic for things like IK, mesh, shapes, etc

## rive_flutter
 - depends on rive_core (not directly but we transpile rive_core to rive_flutter)
 - also includes the FFI/WASM text runtime

The problem is that rive_core needs the FFI/WASM text runtime. So we have a cyclic dependency. We've dealt with something similar (not quite as extreme) by abstracting things like nested artboards, but it gets very complex for a verbose API like the text one.

## rive_common
What this PR does is reworks a lot of shared logic like Math (Vec2D, Mat2D, etc), low-level text runtime (FFI/WASM), etc into a "rive_common" package. We've had shared packages before but none that have been shared by rive_flutter and rive_editor. I think it's finally time to bite the bullet here.

This will make it much easier to work through some of the obtuse abstraction patterns we've had to do to disambiguate if you're using a Vec2D from the runtime or the editor, for example.

Yes, this means we'll only have one set of math classes, one set of binary writer/readers, etc. I only did the bare minimum necessary to move text into rive_common in this first pass but we can do more as we go forward.

## TODO:
- [x] move Text WASM & FFI to rive_common
- [x] move Math used by text (Mat2D, Vec2D, TransformComponents, PathInterface, etc) to rive_common
- [x] move utilities used by text (binary reader/writer) to rive_common
- [x] fix core_generator and core_generator_runtime
- [x] fix github actions to use new paths
- [x] publish rive_common to pub.dev and unlist it

Diffs=
12c6ee130 rive_common package (#4434)
5a24e63d0 Initialize isClosed on TessRenderPath (#4431)
2022-11-19 20:19:05 +00:00
e618def5cd Text
Uses it in the artboard title but also updates the flutter runtime massively to support FFI & WASM C++ Rive Text. PRing to let the tests run.

Diffs=
3be5ff0d8 Text (#4372)
90245a5e1 Fix the Android debug build
0a0f3c267 Fix for missing animation in a blend state. (#4415)
440512dca Add simd::if_then_else (#4403)
ec9fb5bfc Revert "Update SIMD booleans to use bitwise logic operators"
701d8dee2 Update SIMD booleans to use bitwise logic operators
e98b93a61 Add SIMD fallbacks for missing builtins
466f68e3a Add some more core math and SIMD functions
2022-11-15 23:07:11 +00:00
6d229dcdd9 add simple test & an example showing selection of different rive files 2022-08-26 18:16:13 +01:00
ef8e8d63f5 cleanup for publish 2022-06-14 09:08:05 -07:00
b04b4a6469 Add missing lightswitch asset 2022-05-23 10:52:36 -04:00
fef6090e78 Cleanup based on previous PR 2022-05-18 11:15:37 -07:00
338d739bf7 Add a Listener to the RiveAnimation widget when a StateMachineController has events. 2022-05-18 11:15:37 -07:00
cfc5a5d10e Upgrade Android Flutter app to work with newer version 2022-05-16 15:30:16 +01:00
a2af8190e7 Prepping for assets release. 2021-12-22 10:37:32 -08:00
efdd943f39 Ran generator for constraints. 2021-07-13 17:41:43 -07:00
84d99621c9 Adds onStateChange callback 2021-06-21 14:34:56 -07:00
794bb90147 Adds artboard parameter to onInit callback 2021-06-18 11:02:53 -07:00
a8e27e3ef8 Simplifies simple controller 2021-06-14 17:18:29 -07:00
e22b403ee2 Adds custom controller for speed example 2021-06-14 16:18:39 -07:00
bf863bfa8d Fixes typo 2021-06-14 16:07:22 -07:00
941a2aa922 Updates docs 2021-06-14 15:49:01 -07:00
dddb78b62f Adds one-shot animation controller 2021-06-14 14:41:10 -07:00
93557a8557 Updates RiveAnimation with custom controllers 2021-06-14 12:25:07 -07:00
7d82d06c79 WIP on simplifying controller use 2021-06-11 18:45:57 -07:00
2102322937 Tweak example, bump version 2021-06-11 17:19:10 -07:00
ec8002ea05 Exposes antialiasing option in Rive and RiveAnimation 2021-06-11 13:49:03 -07:00
8d80ad2de8 Bump version and update docs 2021-06-10 13:18:49 -07:00
e8d9f59947 Getting instancing working. 2021-05-31 12:17:02 -07:00
1d54191031 Adds high level RiveAnimation widget 2021-05-27 17:37:54 -07:00
37adf790ee Blend states! 2021-05-07 19:41:50 -07:00
2851203e67 Improving state machine api and including more examples. 2021-04-12 16:57:40 -07:00
55d7996026 Fixing example. 2021-04-11 09:28:46 -07:00
1c7bccc36c Adding exit time to state machine. 2021-03-31 16:16:15 -07:00
88541f1596 More nnbd work 2021-03-22 21:29:26 -07:00
33ad1c9ac8 Working on nnbd. 2021-03-22 14:49:42 -07:00
462faf20ff Adding ability to control state machine. 2021-03-11 20:21:35 -08:00
8244e70151 Fixing resolve for format_7 2021-03-05 16:54:23 -08:00
a152b940bf Prepping for publish 0.6.6. 2021-01-18 17:01:00 -08:00
8e73700909 Fixes missing asset in example 2020-12-07 12:42:45 -08:00
39eddb4fd6 Preparing for pub 2020-11-17 16:04:42 -08:00
0089f7d55c Merging master 2020-11-10 18:55:46 -08:00
a13be5f2e2 Adds artboardByName to RiveFile and tests 2020-11-10 18:52:16 -08:00
d0df759001 Updated example and readme 2020-11-10 14:46:53 -08:00
2e4a8ace85 Fixes #15 and preps for publish. 2020-10-02 15:56:43 -07:00
97286a4442 Bumping to 0.6.1 to match WASM. 2020-09-30 12:22:50 -07:00
5bd55da4fc Bumping runtime version and murdering fractional. 2020-09-28 16:56:53 -07:00
317f9ca68d Adding new clipping. 2020-09-22 15:54:53 -07:00
c15236d7fc Adding trim path support. 2020-08-28 18:27:54 -07:00