541 Commits

Author SHA1 Message Date
2b91ad3e27 Nnnn data binding api part 2
Initial POC for a data binding api

Diffs=
f99c5665ce Nnnn data binding api part 2 (#8611)
82f5a0cf71 fix: inner feather did not update when path changed (#9178)
bb272ebb45 Layout Direction (#9154)
cbde8c6d6a Remove stray depth resource creation in renderer. (#9171)
60524e873a update range mapper (#9170)
28f17bd861 editor+runtime: expose Shape length via databinding (#9160)
fa9791bbda core_generator: avoid empty switch statements  (#9163)
df6ccaa5ff fix dat converter formula crash (#9168)
de0026bd59 Add RenderText to rive_native (#9146)
f161bf4679 Tighter RHI integration, extra build options (#9149)
57d81702cb do not delete data context from state machine instance (#9166)
63bfa217f8 delete instances when objects are destructed (#9158)
94c410ff25 Custom property group (#9145)
b03ce165b9 Renderer depth stencil resource creation (#9068)
39b813b46c editor+runtime: support text follow path with position (#9131)
98a0ac9b24 Implement the feather atlas on Vulkan (#9139)
492dfea655 fixed for unreal (#9138)
edf4df442e Rhi feather
ca138bb038 invalidate stroke effects when path changes (#9124)
0fc29149b9 testing codecov (#9128)
82449bcb3f Move curve softening math for feathers to the GPU (#9064)
d7ff8f1372 Adding more layout unit tests (#9116)
fbd8b8f429 test actual amplitude computation (#9117)
104dc6a456 Infra fixups (#9119)
99cf88f77d Report runtime test coverage (#9114)
16567a3417 Rename gold/ to zzzgold/ (#9108)
07ffc16467 Move feather join tessellation to the draw shader (#9107)
2a983cdd65 Nnnn listeners export fixes (#9105)
cfde2d5136 editor+runtime: allow setting tolerance to path measure (#9102)
2e739a0358 resort glyphs to compensate core text auto sorting (#9101)
f4f4d35d02 Simplify the GMs registry (#9097)
c99270e6b4 Unify Vulkan descriptor set layouts (#9091)
3f4949c892 use quadToCubic instead of quadTo (#9092)
e33be19c21 runtime: text follow path using text modifiers (#9082)
bfdb1dddb8 Gm no static registry (#9090)
94ce2b1930 Fix Layout Style CPP callbacks (#9087)
b07ff750ca cherry pick stack vector use in vulkan impl (#9066)
95583d0c8f add converters support in conditions state machines (#9080)
834ec98f33 Change Scroll DraggableProxy to use drawProxy (#9084)
6b1dd12462 Turn off android file logging by default (#9083)
abc5cb40b7 Renderer shader hotloading (#8848)
35e26fd9f2 Fix a crash on Galaxy A10 (Mali-G71) (#9079)
cb0f89f200 Math formula converter (#8952)
5153dac481 Fix up android browserstack gms (#9076)
63c22338aa runtime: refactor text.buildRenderStyles (#9009)
8f9da9d694 Nnnn duplicate state layers (#9067)
63642c62d4 Nnnn apply target to source on change (#9049)
e417bb4754 add support for state transition duration binding (#9061)
98cac08e6a Convert the feather texture to a texture1d array (#9027)
c54d22119e Nnnn add blend mode text support (#9056)
93e625c1d4 Fix layout update on font load (#9034)
a4c0954201 Only use GL_R32F for the atlas if EXT_float_blend is supported (#9050)
223ed4c89a fix dash with world path (#9041)
9058a3fdad Add RenderPath::addRawPath (#9038)
7a6019fb97 add support for paths as holes (#9030)
50d49d051e Revert checks when using percent margin (#9036)
71d26ec7be add support for negative corner radius (#9012)
b8c47bea69 invalidate parent paint when dash is invalidated (#9029)
670e8ea231 Update premake to use latest patched Yoga (#9011)
aee913977a make decodeFont and decodeAudio non virtual (#9025)
e816b03089 Use hardware textureGather on hlsl (#9016)
633c8ef979 Draw large feathers at lower resolution (#9013)
339867b4de Fix Yoga crash with percent margin (#9010)
7968fd06b8 Make the segmentation of feathered curves more uniform (#9008)
0d03957f83 Add some .rivs with feathering to golden tests (#9007)
fa0e111996 add support for non exportable view model instances (#9005)
b2886f2449 Nnnn feather fixes 2 (#9003)
8f7120837b Implement a feather atlas for msaa (#9001)
1be3488d52 change lerp (#9000)
19b64a2c1b Update layout display before propagating to children (#8999)
48a376c63f Nnnn data bind fixes 5 (#8997)
6833000393 Delete the draw cache (#8995)
54dcceba76 Fix NestedArtboardLeaf render when parent is a group (#8994)
fd830a66ca add support for uint properties (#8982)
71b138cf40 Adapt ScrollConstraint to work with NestedArtboardLayouts (#8968)
697637dd27 Foreground fill fix (#8991)
899ce7e893 add boolean negate converter (#8992)
a224ede43e fix backwards path with multiple segments (#8989)
cdf66e9c29 fix gap in trim paths (#8953)
4d61f56bc2 Fix MSAA stencil settings for clockwise paths (#8985)
fc0ae67847 use clockwise flag at runtime (#8983)
35c972070b Fix webgpu defines for image meshes (#8940)
8162af1425 Simplify the feather integral calculations (#8977)
84f6941eb9 Improve feathered curve chopping (#8971)
776e2050a9 extend string converter (#8972)
4d81ae69b5 Update to 5 5 (#8945)
f8115f9e5d run code generators to fix outdated values (#8963)
641fe2ba15 fix sync with state machine triggers (#8950)
0b17404745 Improve layout display change handling (#8951)
8d30360d74 add support to round decimals in to string converter (#8948)
a1f435cb94 Fix feathered corners (#8946)
a95cbfa147 Implementing ScrollPercent and ScrollIndex properties (#8886)
b534512945 Remove Skia from android runtime (#8738)
c1482a731b Turn storage buffers back on for Android ANGLE (#8939)
274578e4ac Player mouse events (#8896)
c23d37a730 add time based converter interpolator (#8936)
86f65a5bb7 Fix text rendering with overflow clip (#8933)
3dd8f44cf2 make opacity bindable (#8909)
4c1da5310e fix bad property in animation at load (#8927)
94fc10095c Fix for Windows android builds. (#8932)
16063fdc26 Get hug working with text autoHeight (#8928)
bf57f85d7f change inherit blend mode default value to 127 (#8926)
fcda031783 Nnnn feather fixes (#8924)
6e30b9bb43 Nnnn fix invalid viewmodel properties (#8922)
6d8854ec04 use transition only when it has been selected (#8921)
9a43fe0b41 add support to disable layers in state machines (#8912)
7f3314f4f9 check whether state can change before evaluating conditions (#8917)
d8d42c0f13 Which way is up? (#8911)

Co-authored-by: hernan <hernan@rive.app>
2025-03-06 02:01:57 +00:00
5159b80110 Editor + Runtime Feathers!
Adds feathering support to the runtime and editor.

A few important changes:
- Runtime now deals in RawPaths via ShapePaintPath. We no longer store a bunch of RenderPaths that we don't always end up using. Instead we use a light wrapper around RawPath (ShapePaintPath) to track intention of space (local, world, etc) and fill rule for the path so the runtime can pass that around and further mutate it or upgrade it to an immutable RenderPath only when it wants to actually draw it.
- Stroke effects like Dash and Trim now build on the update instead of render!

Diffs=
1b51fe394e Editor + Runtime Feathers! (#8891)
60a2eec998 Fix the notorious pnglibconf.h error for v2 (#8905)
24d9162103 Propagate layout's display to children in runtime (#8908)
90da85fbb4 editor+runtime: fix slow hit-testing (#8907)
b03d365c93 Fix more bit rotting in webgpu_player (#8906)
77a886e285 Work around Android GL driver bugs that surfaced with the feather change (#8901)
52c045aaf7 Require Android NDK r27c from premake (#8900)
d5a774b4b4 Add an android_api option for premake (#8892)
5328d573c7 Converter inspectors Part 1 (#8882)
7ed60faf76 Vector feathering v1! (#8799)
e042c0af4c Update the atan2 definition in shaders (#8883)
2240d091f8 Nnnn add extra functionality to string converter (#8876)
5574d9e34e add atan2 (#8878)
61e927c9cf Fix layout animation repeat (#8875)
5b9b388fe9 initial work for testing data binding in the editor (#8873)
88d24b0cd4 only reset state change on new frame (#8863)
ac230e44d0 export data enum names (#8870)
21c7498489 Vulkan Support ! (#8851)
f33a5984e2 use triggers per state machine layer (#8853)
20d09e2a84 More Android GL fixes (#8868)
9324024cc9 add more arithmetic operations (#8862)
b153a81b61 Fix premake tag (#8865)
8c9dc78dbd Android BrowserStack fixups (#8856)
eca00184b8 Runtime fix for image scale with mesh (#8840)
7c018ff174 editor+runtime: fix text hit-testing on a locally transformed text (#8860)
8e792d564f Reduce the number of GradientSpans (#8847)
2db9a9bd5c Update webgpu/glsl permutation #defines to "true" (#8845)
792049458c Delete the simple gradient texture transfer (#8844)

Co-authored-by: Alex Gibson <agibson.uk@gmail.com>
Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
Co-authored-by: Luigi Rosso <luigi.rosso@gmail.com>
Co-authored-by: hernan <hernan@rive.app>
2025-01-24 01:24:47 +00:00
63e42a19da Security warnings
trying to swat most of these https://github.com/rive-app/rive/security/dependabot?page=13&q=is%3Aopen+sort%3Amanifest-path+ecosystem%3Anpm

there are a few sets of issues here

`release-it` - i just updated these, we should be aware that on next release of android/ios/etc we may have an issue here, i did a dry run on rive_flutter which was fine mind you.

`_framework/examples` - i ran all of them successfully, *except for* the `vue` example which complains that we dont have `rive.lean.dev` in our dist. I actually suspect that this example stopped working but was hoping to confirm this @HayesGordon

`wasm/examples` - ran all of these successfully *except for* the `centaur_game` example. the scaling seems off, and the centaur is not in the frame properly, also the apples are being placed oddly & rendered "twice" once with a static apple and once with an animated one... I did a little playing around here, (changing a state machine to advanceAndApply etc) but once again was hoping to find out if this was actually working properly before. (will go and check out main and rebuild everything in a second to double check the state of this, but I couldnt even build this before updating packages... )

`runtime_wasm/js` hm this one is all just made up of dev bits, do we need to do more to test this than try the examples?

Diffs=
5893a12377 Security warnings (#8825)
6f306199ca add histogram arg to check golds to pass thru to diff.py (#8822)
9d07b638c2 move advanced call after update (#8807)
11afb83c7f Reset scroll constraint when state machine not running (#8817)
cff1067393 Merge path_utils.hpp and eval_cubic.hpp into the core runtime (#8794)
1be9b574d1 Ensure child layouts mark dirty when flex direction changes (#8792)
4f4e07a68b Fix straight lines being detected as cusps (#8790)
11d4e46498 Add FillRule::clockwise to the runtime (#8786)
49e1109e3f add bind once support (#8761)
d4a46062fb do not use frameOrigin to validate if artboard has its origin translated (#8788)
4b7454518f editor: minor text fixes (#8787)
de2a5cbf93 Replace Swiftshader with Nvidia gpu runner (#8644)
14dcaa0cde improve error reporting if exe in deploy script does not exist (#8618)
2a6cf9d0a6 Set supportsRasterOrdering in the webgpu backend (#8774)
f19a9c9399 editor: allow hit testing over text and text runs (#8719)
e37a0f285f rename property to avoid conflict with code generation (#8765)
d30f3e3ca6 do not exclude proxies from drawables list (#8762)
b9773680e3 Scripting begins! (#8751)
7cc6f5bbe3 GL MSAA tweaks (#8753)
3c322193bf More android tuning for PowerVR (#8747)
32636f7dde Work around gradient sync issues on Oppo Reno 3 Pro (#8745)
7d39d0fca7 fix artboard origin offset (#8737)
908fe3b784 Convert unity builds to use build_rive.sh (#8742)
d3123ff351 Tag custom premake builds on v5.0.0-beta3 (#8741)
0cdfd3bf32 Fix layout display issues (#8733)
6f70a0e803 Add visionOS and tvOS support to Apple runtime (#8107)
f69757c8dd fix triggers reset (#8732)
ab29c640cc Prevent negative layout size (#8731)
f9355c5d84 add data binding blend states support (#7731)
1a8c162151 Nnnn instance data converters part 3 (#8726)
f3d66c238a Nnnn fix js runtime listeners check (#8727)
567dd549f1 added missing_goldens and missing_candidates to diff.py result (#8722)
c7c1701511 Nnnn system data enums part 3 (#8635)
ce070a26e9 diff.py updates (#8721)
aaaf1a206e Allow $JAVA_HOME without java installed in deploy_tests.py (#8699)

Co-authored-by: Maxwell Talbot <talbot.maxwell@gmail.com>
2025-01-07 15:47:45 +00:00
90c91f60af Support 16kb devices by bumping to NDK r27
As suggested by the docs, this is the best way to support newer devices requiring 16kb page support.

https://developer.android.com/guide/practices/page-sizes#compile-r27

- [x] Looking to see that Goldens pass before merging.

Diffs=
f653f3f73f Support 16kb devices by bumping to NDK r27 (#8558)
572265df3b call syncStyleChanges on update (#8715)
e8d6e5db26 Override layoutcomponent x/y using layoutX/Y (#8714)
d3f6a49778 Nnnn data bind fixes part 3 (#8663)
baf832a6ce Instance data converters when attached to data binding objects (#8664)
0664f994df Snap verycomplexgrad gm stops to pixel boundaries (#8685)
39c62a94ef ScrollBar constraint autosize toggle (#8707)
7c3c8a3a1a Don't use GL_PIXEL_UNPACK_BUFFER (#8708)
5df5be1940 Add "no_rive_jpeg" and "no_rive_png" build options (#8702)
d7794cb556 Improve scroll time precision on web (#8705)
d0c9e98d2e Scroll fixes (#8698)
ca10c9ec63 re add clean to diff (#8697)
f00a5a6c78 do not break when component is found (#8695)
437688c18e Add yoga renames to non-v2 lua build scripts (#8693)
423301a95b Fix integer precision issues with pathID in vertex shaders (#8689)
b1c0e80625 use draw proxy for scroll bar draggables (#8692)
302606642c GL fixes for Imagination PowerVR GPUs (#8684)
e5879a1a5c Fix scrollbar thumb offset (#8691)
7414d20597 Sort by % diff pixels in diff.py when histogram is equal (#8683)
00e9ad43a7 fix sorting hittable components (#8690)
fa8f7c6755 fix crash when dividing by 0 (#8687)
cd310b1b68 Nnnn scrolling override poc part 2 (#8679)
ac7c458bc7 Small Scroll fixes (#8682)
0ff13be381 Make scroll physics core objects (#8672)
9dfd01fb3a made compatable with python 9_9 (#8678)
454bc50aaf diff.py: don't count identicals as differences (#8666)
c642488df3 added some changes to make building easier for unreal (#8667)
1647a7ad92 use actual sizes for calculating position offset (#8671)
599ab0eeb7 Reapply "Merge branch 'master' of https://github.com/rive-app/rive"
406a2ef952 Revert "Merge branch 'master' of https://github.com/rive-app/rive"
3c0cc1f329 skip object on animation reset if it is null (#8670)
1d2c9175d4 remove letter spacing subtraction (#8669)
96ec927371 fix fatal warnings compiler flag to use latest version (#8668)

Co-authored-by: Erik <erik@rive.app>
2024-12-10 03:09:42 +00:00
e922617d5c Flutter/fix missing hb style get value
Resolves: https://github.com/rive-app/rive-flutter/issues/437

Diffs=
c084b3c608 Flutter/fix missing hb style get value (#8665)
5d65f91a4d Draggables (aka scrolling) (#8493)
043dbff5a7 Nnnn data bind fixes part 2 (#8637)
8251557144 make nested animation properties bindable (#8642)
f846fe28e9 Layout display & animation duration keyable (#8553)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-12-02 13:39:35 +00:00
f737086960 Release/flutter 0.13.19
Releases rive_flutter
- Resolves more building issues from recent changes in text fallback (7986d64d83)
- Introduces `isTouchScrollEnabled` which behaves similar to the web runtime

Diffs=
42b2ac0cec Release/flutter 0.13.19 (#8661)
08df0095bb Add Android Gold checks (#8617)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-11-29 12:13:06 +00:00
16d549f77c feat: add isTouchScrollEnabled
Resolves https://github.com/rive-app/rive-flutter/issues/436, and
- https://rive.app/community/forums/support/fsnLLkXUaA62/flutter-scrolling-not-working-as-expected-on-mobile/ft3UcorwBVAf

Our web runtime has a `isTouchScrollEnabled`. This reproduces that behaviour.

```
  /// For Rive Listeners, allows scrolling behavior to still occur on Rive
  /// widgets when a touch/drag action is performed on touch-enabled devices.
  /// Otherwise, scroll behavior may be prevented on touch/drag actions on the
  /// widget by default.
  ///
  /// Default `false`.
```

I made some TODOs in the code for future considerations. We might want to opt in to give users more control over which gestures should be registered, and we can potentially be smart about doing this conditionally, depending on what the Rive graphic allows you to do. But this requires more investigation.

https://github.com/user-attachments/assets/81119bed-cb8a-4672-9559-d1c85832bad9

Diffs=
8d1fdd16ad feat: add isTouchScrollEnabled (#8651)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-11-27 19:17:23 +00:00
1848316d20 Support supplying mobile fallback fonts by style with caching
This pull request builds on top of fallback font support on iOS by including the ability to provide fallback fonts based on the styling of the missing character. Currently, the style information only contains weight. This weight is grabbed by calling `getAxisValue`. According to Luigi, this is a linear search, so perhaps there's room for a performance optimization later on.

There is one lower-level C++ change: `gFallbackProc` returns the font for the missing character, in addition _to_ the missing character (as a second parameter). This font will be used to generate the requested styling within the iOS runtime.

This adds a new class property to `RiveFont`: `fallbackFontCallback` (whose name I'm open to changing). This is a block (i.e closure) that will be called when a fallback font is requested. It supplies the styling of the missing character so that, for example, different fonts can be used based on the weight of the missing character. For example usage, see `SwiftFallbackFonts.swift`. This provider is what's used under-the-hood, and utilizes the pre-existing `fallbackFonts` class property

The "trickiest" bit here is the caching. NSDictionary requires equatable / hashable types as keys, and we want to minimize additional generation of a Rive font, so we cache any used fonts in a wrapper type, used as the value. When new fallback fonts are provided, either directly or when a new provider block is set, the cache will be reset. Once the weight is determined, generating the right key is as simple as calling the right initializer, and when set, generating the right value is simple as calling the right initializer with the created Rive font.

Finally, `RiveFactory` was getting a little bloated, so I did a little file cleanup.

This pull requests also includes Android support from #8621

Diffs=
7986d64d83 Support supplying mobile fallback fonts by style with caching (#8396)
fb8ecf3552 fixed url for canddiates and goldens in not pack mode (#8649)
4b82cf2e91 treat remapped animations as always settled (#8643)
d7db032e08 update measure function to use its text wrap and max size (#8640)
406e938c3d add support for standalone custom properties to bind values to (#8634)
8f3b760a6c Dx11 support (#8577)

Co-authored-by: David Skuza <david@rive.app>
Co-authored-by: Umberto <usonnino@gmail.com>
Co-authored-by: Umberto Sonnino <umberto@rive.app>
2024-11-27 16:54:48 +00:00
5a1d9a34dd Rive common release 0.4.13
Releases new `rive_common` and updates `rive_flutter` to use it. Resolves: https://github.com/rive-app/rive-flutter/issues/354#issuecomment-2491004291

Diffs=
de19b09fb3 Rive common release 0.4.13 (#8638)
11ff873bf8 support wrapping text in auto width inside a layout (#8624)
28582ea0fd fixed workflow stuff (#8628)
b32973afd6 updates to diff.py (#8623)
c7fe86a7bf Fix bug in draw key (#8620)
91f9ab8aec fix for incorrect android build option (#8608)
81709286ea Update linear animation advanceAndApply to return if more animation remains (#8610)
37c6987847 Add check to TextModifierGroup to prevent out of bounds access (#8606)
7be5f73b5a editor: update the repeat limit for n-slicing (#8604)
3eefba5039 CoreText fallback shaper ex (#8568)
807f9b20ac image diff hiistogram mode (#8601)
17474d3e2c feat: expose hit test to runtimes (#8598)
36e73f6b4b Fixup android_gms_browserstack (#8599)
88543fa792 Nnnn range data converter (#8585)
a2b0cb230a Normalize GM tests (#8586)
e10bb4aafd Rename USING_DEPTH_STENCIL to RENDERING_MODE_MSAA (#8584)
869816556f Fix invalid memory access (#8546)
8030dc05eb Fix clip planes on S22/Xclipse/ANGLE (#8582)
01e014f82d Add an android_gms job to browserstack (#8583)
1d23ae5782 editor: be more mindful of sending dirt recursively when n-slicing (#8576)
cc15ffa4f6 Fix NestedAnimation skipping export too late (#8573)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-11-25 11:19:27 +00:00
ec139a85e0 feat: expose speed multiplier for flutter runtime
Community contribution: https://github.com/rive-app/rive-flutter/pull/423

This also came from an internal request.

Diffs=
38c0d394bc feat: expose speed multiplier for flutter runtime (#8571)
527276dee4 Dart bump to 3.5.0 (#8550)
cda96cff1b Nnnn joystick not advancing (#8567)
6f1304ef0b Add a skeleton workflow for android gms on browserstack (#8566)
b9a4114eba Render gms to the screen when the test app is launched without a harness (#8559)
51c3bbcde2 return keep going when a state machine has changed its state (#8564)
f34822a124 accept constraints without targets (#8552)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
Co-authored-by: tguerin <thomas.guerin2@gmail.com>
2024-11-15 17:26:12 +00:00
5495a00012 Avoid initializing an AudioEngine instance if there is no audio present
Community PR from AOFL: https://github.com/rive-app/rive-flutter/pull/431

I'm co-authoring to get it in

Slack discussion: https://2dimensions.slack.com/archives/C073BQNPQ5T/p1731028216451459

We will need to look into the actual fix. I'm not that familiar with our Audio system, and not sure if there are edge cases to consider with this change.

Diffs=
aea593c2df Avoid initializing an AudioEngine instance if there is no audio present (#8541)
3a638e61b1 Work around Galaxy S22 compiler bugs (#8549)
01bc166a8e invert order of advance between parent and child (#8547)
26d8b495b6 Prevent NestedArtboard advance when not playing (#8542)
ded183b39c Rhi typeless uav support (#8507)
6804948c90 new arithmetic data converter that uses a viewmodel as input (#8536)
532ca5dfb3 Unreal build use build rive.sh (#8502)
692dc6f659 default data converters runtime (#8503)
9aa4503c18 LayoutComponent updates properly when scaleType changes (#8535)
46b0899967 fix data enum importer (#8531)
4bbd7d495c Fix marking nested artboard layout dirty (#8534)
fa4f11f061 add feather property (#8533)
97050e4fa7 Pass scaleType down to sizeable children (#8524)
071b19ba62 don't expose yoga includes (#8526)
ad1ca22bd5 Nnnn render update fixes (#8527)
8826406ff1 editor and runtime: fix vector n-slicer hit area (#8512)
98e6822f02 Rename "atlas" -> "coverage" in the clockwise shader (#8518)
01066ff6a0 Fix bidi (#8517)
8296d87711 conditionnally  add dirt and advance (#8516)
8738368345 Updates to AdvanceFlags (#8514)
17cbda4b69 Add AdvanceFlags (#8492)
6cb69b688b Fix for layout shape paint bug (#8498)
33dc66a73e editor and runtime: allow vertices in a vector nslicer to be out of bounds (#8495)
cba259e6cd add data bind support for vertex properties (#8494)
f4c87ee495 Nnnn merge fills and strokes (#8465)
af9e217d23 Use renderImage size to scale images in layouts (#8487)
ce9e44c6b3 editor: NSlicer should not clamp children (#8459)
446682cda9 web: decode image on demand, not render (#8484)

Co-authored-by: Anurag Devanapally <anurag.devanapally@gmail.com>
Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-11-13 19:37:26 +00:00
b3898a9d55 Working on option C for update cycle
https://2dimensions.slack.com/archives/C078KG6KAJY/p1729359775985179

Diffs=
aa20d8aad4 Working on option C for update cycle (#8409)
1d5a580041 Layout Fixes (#8468)
d60ea4cc71 Use imageAsset size for layout (#8462)
f5e5406185 Fix inconsistent layout overflow behavior (#8463)
ce39f8be9f Artboard object validation (#8464)
bdb9eb01db search for ios sysroot only when necessary (#8437)
91d092f4fc runtime: add support for gradients in vector n-slicer (#8447)
5a4418dba6 Add an experimental "clockwiseAtomic" rendering mode (#8442)
78adb5f60b Ensure LayoutComponent doesnt try to access bg path if layout not compiled in (#8453)
4c83df9b7a Updating to latest harfbuzz for coretext issue (#8443)

Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
2024-11-05 17:40:11 +00:00
5ae5403375 add viewmodel and data enum system core objects
This PR only has the boilerplate code to support system data enums.
System enums will be enums that are built-in in Rive, like text alignment, word wrapping, blend modes.
Those system enums won't be included in the .riv file, but they'll exist built-in in the runtime.
This PR creates 4 new core objects types. 2 extends from data_enum and 2 from viewmodel_property_enum.
The rest of the changes are renaming the base class to the custom one.

Diffs=
5297cf0cc2 add viewmodel and data enum system core objects (#8382)
f53d2d9c91 editor: bug fixes for image n-slicing (#8424)
2c83c60225 Nnnn fix layout hittest order (#8435)
afcf0992da editor: vector n-slicer should clamp all shapes contained (#8428)
c7de07c0ca fix for image_diff not correctly outputting newline in status file (#8438)
ea59076bf7 Expose RenderContext methods for allocating tessellation vertices (#8408)
e71b4cc081 feat: add runtime layout fit type for ios, android, web (#8341)

Co-authored-by: hernan <hernan@rive.app>
2024-10-30 20:56:43 +00:00
bcb15a494a fix flutter tests
Diffs=
960d8be2a1 fix flutter tests (#8429)
c64659be84 Make build script work on mac (#8421)
8178dd7936 fix for imagediff avrg being wrong (#8430)
7a9e69314d Fix resources getting deleted prematurely in vkutil::ResourcePool (#8411)
5cde901062 Upgrade legacy artboards to work with layouts (#8419)
aec431eeb7 Layout fractional sizes & flexBasis (#8405)
a02ac789ca imagediff -> opencv (#8397)
4fec171eac Fix crash on controlSize when image not yet available (#8414)

Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
2024-10-29 23:03:21 +00:00
8bc5a39b61 update text in flutter
Diffs=
1f3571277f update text in flutter (#8399)
bb3b386c15 Fix layout size propagation (#8407)
d73f590cf8 Fix for layouts alignment bug when created with fill type (#8402)

Co-authored-by: hernan <hernan@rive.app>
2024-10-25 17:17:01 +00:00
d62035e437 Call updateLayoutBounds on NestedArtboardLayout
I think this is the right fix here. Since the calls to updateLayoutBounds are now passed down through layout children rather than on advance, we also needed to call updateLayoutBounds on NestedArtboardLayout, since those "provide" their layout nodes to their parent artboards layout tree (thus updateLayoutBounds doesn't get called during their own Artboard's advance).

Diffs=
6931974fe3 Call updateLayoutBounds on NestedArtboardLayout (#8398)
c7cd1c8c74 editor: support vector n-slicing in runtime (#8395)
b3534f1f8f Nnnn text alignment and fit (#8385)
52963ca423 hierarchical updates to layout (#8386)
96d45f6824 Do not load files with invalid paint mutators. (#8366)
76f79a22e2 testing animation smoothing (#8363)
86f2d78a90 NestedArtboardLayout marks its parent artboard layoutNodeDirty (#8383)
2516daf1e0 Nnnn system data enums (#8380)
54629ea542 LayoutComponent clip defaults to false. (#8368)
0c8fa5c313 Add AdvancingComponent & animate flag to advance() (#8362)

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2024-10-23 22:46:37 +00:00
9abe92bbb7 chore: release rive_flutter 0.13.15 and rive_common 0.4.12
An attempt to release a new rive-common for the recent audio fixes. All the other recent text changes are kinda blocking an easy update here. I temporarily removed some functionality with the intension to add it back tomorrow in a bigger effort to support the new text properties for the Flutter runtime.

@luigi-rosso I did not include these files generated from the publishing script:
- packages/editor/web/rive_text.wasm
- packages/editor/web/rive_text.js

As I understand they are now created by rive_native?

----------

**Edit:** I also added the needed Text changes to support the new alignment, wrap, and fit.

Video comparing the Editor and Flutter for various text scenarios.

https://github.com/user-attachments/assets/807fb698-25d5-4fda-b33e-df93e555015c

Diffs=
80da365913 chore: release rive_flutter 0.13.15 and rive_common 0.4.12 (#8357)
d1372c444f use worldBounds for hittesting (#8361)
2be44a0f45 Deterministic lite rtti (#8349)
054e3c5b73 audio engine: fix order of uninit of context and engine (#8350)
a1484308fa reset effects when path changes (#8347)
f01d62e126 Add a clockwise fill experiment (#8345)
7ee1c7777f Batch interior triangulation draws (#8328)
9d5076b883 Fix layout animation runtime (#8340)
638ee6434e Make layout position type and scale type keyable (#8316)
0f805654cf Improve batching for interior triangulation draws (#8327)
4e8c555722 Unreal Runtime into Mono  (#8318)
50dfc9ee9a Fix runtime joystick with layout position (#8323)
e582b41aaa add bones and joystick bindable properties (#8322)
272db8c3af fix missing data bind path crash (#8321)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-10-18 14:35:58 +00:00
b4bfa2d69b Drop the ColumnLimit to 80 for clang-format
This gives better support for smaller screens and side-by-side windows.

Also standardize the formatting check on GitHub on version 17.

Diffs=
e52e9fff29 Drop the ColumnLimit to 80 for clang-format (#8320)
52913023ba add support for listeners on layout components (#8317)
1b5e50fcec Optimize atomic rendering for input attachments (#8310)
1cc5f2b6f6 Prep for rhi (#8270)
f9715435dd Nnnn fix databind state machine shared data context (#8307)
708a913eae Implement isHidden in DrawableProxy (#8302)

Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
2024-10-11 19:25:57 +00:00
049e6e8b9d use shared data context between artboard and state machine
this PR changes multiple files addressing three things:
the first two are pretty basic changes: rename the method `dataContextFromInstance` to `setDataContextFromInstance` and remove the side effect of setting the parent of the data context in `internalDataContext`.
The other change is commented in the code: instead of creating a new data context for nested state machines, it is shared between the nested artboard and its state machines. This was already so in the cpp runtime, but the flutter bridge wasn't doing the same.

Diffs=
eed8230f8 use shared data context between artboard and state machine (#8299)
56d95d200 Fix Apple runtime crashes on Macs with non-Apple-Silicon GPUs (#8301)
ab13be54d Drag and drop into layouts without Cmd modifier (#8293)
bc4d42b7b Layout misc fixes (#8292)
31bf5a44f Download python-ply inside of premake (#8285)
5d5d418b7 enable all viewmodels as source for a condition (#8284)
7bef90845 Calculate LOD ahead of time for image paints (#8260)
b0a3b89cf Premultiply clear colors (#8280)
018eb4b62 add enum bind core property (#8279)
bcd3c9218 Rename InterlockMode::depthStencil to InterlockMode::msaa (#8265)
348017707 add missing dirty flags (#8276)
0ee01f784 Fix layout animation not cascading (#8267)
a6aef22e9 fix uninitialized font features (#8266)
f84c14188 add text bindable properties (#8248)
4111579ac added #ifdef where it was missing (#8262)

Co-authored-by: hernan <hernan@rive.app>
2024-10-08 23:17:13 +00:00
d9df7cdbce fix: reduce audio polling
Addresses https://github.com/rive-app/rive-flutter/issues/411

I cannot reproduce the 100% CPU utilization; however, maybe this is a Flutter FFI bug with a specific version or environment.

@luigi-rosso, in the linked issue, you mention a `TrackingAudioPlayer.` It's not clear to me when we would need that at this stage of the audio capabilities we provide.

Currently polling every second. This is arbitrary, any suggestions on a value?

Diffs=
eccfca528 fix: reduce audio polling (#8238)
4566a1208 Clone draw for cache optimizations (#8176)
56511a285 Fix layout drag/drop offset (#8220)
f0c58200a fix text origin offset (#8223)
35734d2d5 change dash formula precision (#8219)
be2c46a3e add bindable layout properties (#8212)
cea19ecc6 add new properties to data bind (#8211)
e67109195 Layout text size fix (#8209)
77b9ee56d Add linux build step for rive_native changes (#8194)
37663bd03 advance iterator until distance does not equal 0 (#8165)
1713983ab runtime dashing! (#8191)
d0d1dbf33 fix dash glitch (#8188)
8a974784d Dashing (through the snow) (#8093)
9e4b81762 Update player to run without the python server (#8175)
aa91ffe21 Rename gpuAtomicResolve -> atomicResolve, et. al. (#8168)
adc240554 Overhaul Vulkan synchronization (#8166)
9dd20080c Remove Skia from ios_tests and quit building it on many runners (#8144)
5cdcc183f Nnnn data context fixes (#8148)
7e8100fee Colinear and bounds ffi (#8158)
15d3e9961 add support for elastic interpolation (#8154)
95e58ca40 editor: Stage UI for N-Slicing (#8136)
5719c5662 Add contour measure to Rive Native (#8145)
8441098ec adding length getter to dash path effect (#8140)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-09-28 08:48:48 +00:00
11f0c50ec7 Add NestedArtboardLayout hug
Add hug overrides for nested artboards.

There is one caveat. Since the Artboard is a special type of layout where children can exist in regular transform space OR inside a layout, in order for nested artboard hug to work, the nested artboard must be in AutoLayout mode (ie has at least 1 relative layout child) and when you set hug on the nested artboard (inside the parent artboard) it will hug to whatever the size of the layout children are. It will not currently hug to components in the Artboard that exist in regular transform space.

https://github.com/user-attachments/assets/eee4568e-c5d3-4987-b852-a52cbd2af563

Diffs=
95cad5c60 Add NestedArtboardLayout hug (#8137)
edc91a599 Initial refactor to simplfigy class structure (#8122)
e9918f249 d3d11 simplifications (#8134)
84f332761 Optimize draw to avoid creating when clip is empty (#8128)
c67b67083 Updates to layout hug (#8132)
30f5778b1 revisit sync between flutter and c++ runtime (#8101)
eb4c9d36b Fix intrinsically sizeable bug (#8131)
bc6010b6e bump premake (#8120)
06f13b3d8 Fix default target id for ListenerAlignTarget (#8110)
a4e15fb7b Add fallback font support for iOS and macOS (#7690)
24bb958f1 Fix dstreadshuffle gm (#8100)

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2024-09-14 16:47:10 +00:00
93c12806f8 add fixes and code improvements
some small fixes and changes
commented the more relevant parts

Diffs=
a84aea792 add fixes and code improvements (#8095)
5cd451423 Next set skia strip (#8092)
879e90709 Fix startup freeze on certain Macs (#8096)
5eadf5c17 skia removal (#8088)
722e60461 add viewmodel trigger support for c++ runtime (#8074)
6e89e230a add text vertical alignment (#8091)
fcbc28bbc Port to remove skia (#8086)
2f7836f9c SkChop party! mandoline and cubicpaths (#8085)
451599d03 pass wrap separately to support alignments (#8058)
e32e2fde0 Start converting trickycubicstrokes to Rive (#8089)
63a88a1ce removed skia from a few gms (#8076)
177921a51 Remove skia from labyrinth gm (#8084)
716d78164 Remove skia dependencies from strokedlines (#8087)
507af3256 Add android unit tests and remove running tests in platform testing (#8067)
b2894c99d Dance around a driver issue that generates garbage pixels (#8077)
0dcbf4d1f Implement keystrokes for the player test (#8065)
ac3b3c257 rename ios and android tools to tests (#8047)
e614bda68 Add a mechanism to skip flaky golden tests (#8062)
04f481d40 Fix glmsaa on Desktop GL drivers (#8026)
2719dc785 Update RiveRenderBuffer to support multiple maps per frame (#8005)
432e7ae6c inputs ref state machines and components ref artboards  (#8057)
bbc2bba5b fix playback mode and other small fixes (#8050)

Co-authored-by: hernan <hernan@rive.app>
2024-09-07 21:28:05 +00:00
3e495cd79a docs: update links
Updated various old links pointing to `help.rive`

I added additional information and updates as I saw them

Diffs=
d63786fee docs: update links (#7998)
727e0ba8b Add data converters to flutter runtime (#8029)
f25ee97a0 Opensource (tools) tests as part of runtime (#8035)
39b803c58 8020 text fit to box (#8042)
b06e05dc1 Fix dash increment (#8038)
5c312867e Fixing tool drawing (#8028)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-09-04 09:24:54 +00:00
bc7f4c1689 fixing rive_flutter tests
Diffs=
4a8f2c46f fixing rive_flutter tests (#8023)
2bd842b54 Tooling tweaks (#8015)
c88898459 Better support for BGRA in D3D (#8022)
bf121f507 Bye bye rive_common (#8007)
bdd2e9bfd Namespace corrections to rive instead of gpu (#8006)
cc4f27b8f Parallelize SPIRV compilation (#8009)
b172dca87 Add a "player" app to the tools (#8004)
9b755ed5b Unlink skia from goldens (#7991)
57a94aff0 Rename to remove unneeded pls in variable names (#7992)

Co-authored-by: Hernan Torrisi <hernantorrisi@gmail.com>
Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
2024-08-31 00:45:56 +00:00
797acc273f Rive flutter release v0.13.13
Diffs=
71ec9987a Rive flutter release v0.13.13 (#7997)
cc903ee02 Support Vulkan on Android (#7915)
c7bb5eb5a Change class names to strip PLS (#7988)
2be9ddc7e Set core audio session category to none (#7772)
25d423274 Initial file moves and renames (#7951)
69cffe900 Check if clipping shape's worldpath exists (#7956)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-08-29 12:17:43 +00:00
7db34cd180 feat: update build gradle to latest versions
Addresses: https://github.com/rive-app/rive-flutter/issues/398

I also created a fresh plugin using the latest Flutter and copied over the differences.

How to use:
In `android/local.properties` add:
```
rive.ndk.version=25.2.9519653 # set desired version
```

If not specified in a project, it will use the default.

Rive-Android still uses the same ndk version. Should we update that as well?

Diffs=
49bf612fd feat: update build gradle to latest versions (#7475)
a134ab656 Layout joysticks runtime (#7923)
728ac6286 runtime: add tiling to n-slicing (#7934)
e1b4a53ec Revive the WebGL backend (#7948)
813db58e7 Nnnn data binding editor native runtime (#7815)
c71a37173 fix for syntax issue (#7910)
e89437ef6 windows editor: fix format check and use raster ordering disabled (#7937)
7d00d35d3 Fix viewer tess builds (#7935)
455ebad60 Update rive cpp for submodules (#7932)
75e0f9aea runtime: support files with n-slicing defined (#7920)
85b28c39a Update readme of PLS (#7931)
21ecf2775 Fix actions yaml with rive-renderer (#7930)
c33d5d81b Update rive renderer readme (#7929)
b03895fcf Update pls README (#7927)
3316d15ca Refactor pls into runtime (#7914)
b2d27b6bd mark dirty when constraint changes (#7909)
5c14a4a30 Fix Android goldens (#7902)
46a3045ae Improve Vulkan loading and organization (#7873)
160d9eefb Add webp decoder. (#7883)
e992059d6 iOS images unpremult SIMD support (#7875)
ad34dd4da add arithmetic operation and group converters (#7801)
f99c93181 editor: setting up the update callbacks for n-slicing (#7869)
85343a4e1 Fix for bug in Runtime LayoutComponent proxy (#7867)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-08-27 15:46:27 +00:00
a0216e0e6b Use artboard properties as transition conditions
Adding support for transition conditions based on artboard properties.
transition_artboard_condition extends from transition_viewmodel_condition.
It might be good to rename  transition_viewmodel_condition to transition_property_condition at some point since it is extensible enough to support viewmodels, but also with other properties like here.

Diffs=
93cc33b45 Use artboard properties as transition conditions (#7796)
c5fc07de9 Init NestedAnimation's nestedArtboard as nullptr (#7857)
fb7756072 added some simple windows build scripts to make building on windows from powershell or command prompt easier (#7800)
ed56d2de6 editor: nine-slicing core data type definitions (#7840)

Co-authored-by: hernan <hernan@rive.app>
2024-08-16 17:40:06 +00:00
76b5584741 fix hovered state of group listeners
fixes #7838

Diffs=
4fb978a92 fix hovered state of group listeners (#7839)
e75b8fa63 Update version to macosx 11 for runtime. (#7829)
55de8286c feat: add nested text run getters and setters in Unity (#7808)

Co-authored-by: hernan <hernan@rive.app>
2024-08-14 01:17:46 +00:00
94ef390e70 skip custom events when creating listeners
fixes #7651
this fix had been applied [to the runtime](https://github.com/rive-app/rive/pull/7577) but not the editor

Diffs=
89f9b3bd5 skip custom events when creating listeners (#7819)
2c0927fc5 add two data converters (#7742)

Co-authored-by: hernan <hernan@rive.app>
2024-08-12 20:13:05 +00:00
3dbef04b8b update flutter objects
Diffs=
e0816fdfa update flutter objects (#7797)
8c7ac0329 added a blt command for render targets that do not support VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT (#7757)
66d9f1725 Better premake support for Visual Studio (#7779)
f0da6a7a0 Add Xcode support to build_rive.sh (#7780)
c12b0bb24 Added support for xcode builds (#7774)

Co-authored-by: hernan <hernan@rive.app>
2024-08-09 22:15:53 +00:00
de596cb916 Add width/height overrides for NestedArtboardLayout
Adds the ability to override width and height for NestedArtboardLayout. This allows each NestedArtboardLayout instance to respond to be sized differently. This is not supported in the NestedArtboard Node and Leaf types, since those are resized using differently (Node uses scale and Leaf uses a combination of scale/fit/alignment).

Implemented via FFI as discussed with @luigi-rosso because NestedArtboardLayout modifying the "taken" layoutNode directly could result in race conditions and other conflicts.

https://github.com/user-attachments/assets/c323a94f-f392-4c10-ac01-af112f70a256

Diffs=
0dc0b435f Add width/height overrides for NestedArtboardLayout (#7736)
1131f30e6 refactor conditions (#7747)
35a52873c Fix layout shape hug in CPP (#7770)
949c70600 Add a premake message when Xcode command line tools isn't installed (#7756)
4bf7c7545 add data converter and data types for conversion (#7734)

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2024-08-07 18:41:38 +00:00
05e454f70e add animation before setting exit time
fixes #7728
This fix is not necessary now that we have the renderer in the editor, since nested artboards run in c++.
But since I was looking into it, and just in case, I added the fix on the flutter runtime.

Diffs=
1b6afc1e9 add animation before setting exit time (#7729)

Co-authored-by: hernan <hernan@rive.app>
2024-08-01 15:11:28 +00:00
2ab7604760 Fix flutter validate() problem with drawable layouts
This is a bit of an odd one related to not updating the flutter runtime since we moved to rive_native.

@drawsgood and I observed that sometimes nested artboards weren't rendering properly to the stage (the nested artboard would appear as an empty node). I narrowed this down to whenever a file contained a layout with either a fill or stroke.

The reason this was happening is because when we add a nested artboard, we use genRuntimeFile, which exports, then imports and validates the objects in the file. During the validation, if the file had a layout with a fill, the fill would attempt to validate, one of the conditions of which is that it's parent is a ShapePaintContainer. LayoutComponent IS a ShapePaintContainer, BUT the validate() happens against the flutter object, and since we haven't pushed updates to flutter, LayoutComponent there is NOT a ShapePaintContainer.

The easiest fix for this is to just add the bits to LayoutComponent in flutter related to extending ShapePaintContainer. I think this should be ok since the added code doesn't have anything to do with rive_native and the new rendering pathway.

One question I have is whether we should be continuing to validate against the flutter objects when it comes to nested artboards, now that we're using rive_native. @luigi-rosso perhaps we can discuss further when you are back in office.

Diffs=
c3137b923 Fix flutter validate() problem with drawable layouts (#7727)
d9f5701ec add listener actions support for databind (#7710)
dcb165130 Fix alignment when flex wrap enabled (#7722)
fbfa3b545 Buildsystem fixes for build_rive.sh and PLS shaders (#7716)
405ca998b add click event support (#7668)
4732c37b5 Improve layout animation (#7712)
a56419984 Simple procedural text rendering API (#7701)
d6d79132b Add a test for nested events triggering listener in parent (#7709)
657f65e1c Fix for nested events in CPP (#7708)
0a11e599f Add a build_rive.sh script to unify the premake5 build process (#7691)
d25b9097d viewmodel transitions runtime (#7680)

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2024-08-01 14:45:50 +00:00
2eb6dbed79 chore: release flutter 0.13.12
Fixes: https://github.com/rive-app/rive-flutter/issues/410

Diffs=
462725b07 chore: release flutter 0.13.12 (#7693)
1c067cba8 Implement layout scale type in CPP runtime (#7665)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-07-25 22:33:33 +00:00
6b974b43f6 chore: release flutter 0.13.11
Forgot to expose this new API from rive_common to rive_flutter in previous release

Diffs=
e5920f4a0 chore: release flutter 0.13.11 (#7682)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-07-25 10:05:39 +00:00
aec635b137 updated keys for transitions
Diffs=
04597f29d updated keys for transitions (#7679)
da1bb7745 Make an HBFont from a CTFontRef. (#7661)

Co-authored-by: hernan <hernan@rive.app>
2024-07-25 01:17:06 +00:00
685e93964d add support for state machine conditions based on view models
This PR defines the core objects needed to support adding conditions to transitions based on view model values.
It also adds the editor UI necessary to create them based.
I added some comments on the most relevant parts of this PR.
The c++ part will be added on a separate PR to keep this one focused on the pieces needed to create these conditions.
The rest is boilerplate code from generate_core and generate_core_runtime.

Diffs=
190b920f8 add support for state machine conditions based on view models (#7659)
1a5f273bb Nested artboard types: node, leaf, layout (#7639)

Co-authored-by: hernan <hernan@rive.app>
2024-07-24 23:24:01 +00:00
f3bf1d16c8 chore: release flutter v0.13.10
Diffs=
a16c769ec chore: release flutter v0.13.10 (#7662)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-07-24 09:33:26 +00:00
a12486c8ca Xxxx improve hittest performance
In certain scenarios, there is no need to perform a hit test, so we precompute the conditions and early out from calculating the hit test.
If a shape has only listeners of type PointerDown and PointerUp, and is not an opaque target, it doesn't need to check for move events or exit events, which can save a lot of computations since it will skip most frames.

Diffs=
50bc398c4 Xxxx improve hittest performance (#7584)
a01b0467e Makeshadersinpremake (#7660)
114da4e39 Layout drawable (#7544)
b5f342002 add bindable properties for state machines (#7640)
f55ebd34f skip custom events when creating hitshapes (#7577)

Co-authored-by: hernan <hernan@rive.app>
2024-07-23 20:55:29 +00:00
7d814a782a Update compileSdkVersion for flutter android example
Thanks @umberto-sonnino!

Diffs=
33fb6021a Update  compileSdkVersion for flutter android example (#7647)

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2024-07-22 17:36:23 +00:00
65dcc9f8c6 fix spilled time for animations with speed applied to them
when calculating the spilled time of an animation, we were not accounting for their speed, so it would calculate the remaining time incorrectly.
It could end up returning a value larger than the elapsed time causing an exponential time loop.

Diffs=
58a9574ce fix spilled time for animations with speed applied to them (#7630)

Co-authored-by: hernan <hernan@rive.app>
2024-07-19 13:47:01 +00:00
0c3d4bdf84 fix: always advance
Fixes https://github.com/rive-app/rive-flutter/issues/408 and https://github.com/rive-app/rive-flutter/issues/409

I left some notes in the code for future consideration, @luigi-rosso. This is the least intrusive change that will not break golden tests (for us and users).

Diffs=
fd6aa55ed fix: always advance (#7615)
49cabe3cb update data bind mode to flags (#7612)
6c5c79b75 Only set Core Audio session category for iOS targets (#7624)
8e1be1223 Run tests, bench, gms, & goldens on a physical Pixel 8 on CI (#7618)
238bf2fe1 Set audio to mix on for iOS (simulator) and Catalyst (#7555)
ca56d7565 Vulkan! (#7553)
63b6a13d3 Use "python3" in make_viewer_skia.sh (instead of "python") (#7597)
8a67331a4 Fix build on web. (#7613)
44fae6bfe explicit linux arch (#7606)
2a1db3835 handle linux warnings (#7598)
c5eb69645 add pic (#7589)
3bf0df5c0 Fixing windows build with rive_native. (#7575)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-07-19 11:40:48 +00:00
4b30f0433b Renderer in editor
Starting to let tests run.

Diffs=
a0a6c0d3b Renderer in editor (#7495)
876a2dca5 Fix crash when skinnable isn’t found. (#7554)
8fbe13788 change how forAll iterates over children (#7546)
93fb6eb83 Fix jpeg and png decode overflows and error handling. (#7535)

Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
Co-authored-by: hernan <hernan@rive.app>
2024-07-11 17:52:36 +00:00
8a101ec945 feat: add applyWorkaroundToRiveOnOldAndroidVersions
Refactors the library loading to reuse the same code across the different FFI modules.

Introduces a workaround for Android library loading, potentially fixing [403](https://github.com/rive-app/rive-flutter/issues/403)

Diffs=
d5ed4ca9b feat: add applyWorkaroundToRiveOnOldAndroidVersions (#7485)
1e7b1c030 add missing validations (#7532)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-07-08 12:28:17 +00:00
baa18111b0 use varuint for writing/reading objectid, total properties and property key in animation reset
objectId, propertykey are definitely written as varuint, not sure if properties total needs to be, but doesn't hurt to have it that way either I think.

I'm not sure if this is everything that needs to be updated. I tried to use `generate_core_runtime` to update the flutter runtime but that made a bunch of changes like unused imports all over the place...

Diffs=
07cbce551 use varuint for writing/reading objectid, total properties and property key in animation reset (#7510)

Co-authored-by: Arthur Vivian <arthur@rive.app>
Co-authored-by: Hernan Torrisi <hernantorrisi@gmail.com>
2024-07-02 13:49:18 +00:00
532ad4f683 Xxxx transitions with base virtual animation
Diffs=
f9b1e8ec2 Xxxx transitions with base virtual animation (#7157)

Co-authored-by: hernan <hernan@rive.app>
2024-06-30 15:02:12 +00:00
34b0508c6b Layout bitfield to props with keying
- Move layout styles previously in bitfields to core properties
- Add KeyFrameUint for keying int values (hold keyframes)
- Add alignment property that can compute the layout properties related to alignment at runtime rather than storing them
- Add ComboBox in the keyed object hierarchy which displays style related enum values

https://github.com/rive-app/rive/assets/186340/ec2ecbde-e539-40cc-b964-2791ad28cc22

Diffs=
e5db5a652 Layout bitfield to props with keying (#7478)

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2024-06-29 01:25:27 +00:00
41bb1af7f1 Release flutter 0.13.9
Diffs=
2de19d657 Release flutter 0.13.9 (#7499)
1adf3dbf4 disable fallback font during artboard rendering (#7480)

Co-authored-by: Gordon <pggordonhayes@gmail.com>
2024-06-28 20:30:23 +00:00
21bd3765dd Miscellaneous Layout UX Fixes
- Fixes issues with edge constraints UX not updating
- Fixes issue with absolute/relative toggle not updating
- Fixes bug with incorrect point value when moving edge constraints to Left+Right and Top+Bottom
- Fix getting into bad state with inherited interpolator
- Fix layout animation advance bug
- Force layout bounds to be updated when parent changes (fixes a bug where relative layoutcomponents weren't updating because left/top value doesnt change when reparenting)

Diffs=
6f29a9c0c Miscellaneous Layout UX Fixes (#7491)
09ccc9ebb Add yoga to thumbnail generator build (#7494)
aa390d5dc change how viewmodel instances target their viewmodel (#7468)

Co-authored-by: Philip Chung <philterdesign@gmail.com>
2024-06-27 19:37:49 +00:00
90b8c81f0e Xxxx databinding add boolean
Adding booleans to the list of view model primitives

Diffs=
e66e242c6 Xxxx databinding add boolean (#7456)

Co-authored-by: hernan <hernan@rive.app>
2024-06-21 17:51:10 +00:00