Repository navigation
6.30.0
This release adds keyboard and focus navigation to the Apple Concurrency API, improves Metal rendering reliability, and speeds up text layout and large data-bound lists.
Added
Apple runtime
- Added focus navigation and keyboard input for Rive views with authored focus nodes.
- On supported Apple platforms, users can navigate with Tab, Shift-Tab, or directional keys and activate authored controls. On tvOS, users can navigate and activate controls with the remote.
- Focus participation is automatic; apps using the standard Rive views don’t need to opt in.
Core runtime
- Added language-aware shaping and font fallback for text, text runs, and text inputs. Text can use an authored language tag or inherit the device’s preferred languages.
- Custom Apple fallback font providers can inspect
RiveFontStyle.languagesto choose a font for the requested language.
- Custom Apple fallback font providers can inspect
- Masked layers now blend with the content behind them using their authored blend mode. Existing files that combine a mask with a non-Normal blend mode may render differently.
Scripting
- Added
loadImagein Luau and AnimaScript to turn encoded image bytes into anImagethat can be drawn or assigned to a view model property. - Added
bindableArtboardso scripts can bind an artboard from their own file to a view model property. - Added
Artboard.keyboardEvent(...)andArtboard.textEvent(...)so scripts can forward input to an artboard they host.
Fixed
Apple runtime
- Fixed a hang where GPU Canvas views could stop rendering after being covered and revealed if Metal presentation callbacks didn’t arrive. The runtime now recovers and resumes rendering. (#471)
- Fixed the final frame of an animation sometimes failing to appear.
- Fixed paused or settled views staying blank or stale after a Metal drawable couldn’t be acquired. The runtime now retries the draw.
- Fixed content using
.layoutfit staying stale or cropped after resizing a settled or paused view.
Core runtime
- Fixed pre-filled text inputs placing the caret before the text on initial focus without a pointer press. Existing caret positions and select-all behavior are preserved.
- Fixed right-to-left positioning for absolute layouts and blank nested artboards when a Solo first activates them.
- Fixed jumps when reversing a state machine transition mid-blend with Early Exit enabled.
- Fixed scroll views jumping during a two-finger drag and list rows retaining hover state after scrolling out of view or being removed.
- Fixed list item indices lagging behind changes to the underlying data list.
- Fixed layer masks freezing when nested artboard content changed, and redraws being missed after component updates or same-size image swaps.
Scripting
- Fixed idle scripted objects failing to update after asynchronous work completed.
- Fixed sounds staying silent when replayed or resumed after a fade-out stop.
Changed
Apple runtime
- Custom
CommandQueueProtocolandStateMachineListenerconformers must implement the new focus and keyboard methods or callbacks. Apps using the supplied implementations require no changes.
Core runtime
- Improved grid layout and text shaping by reusing results when their inputs haven’t changed.
- Reduced allocations when creating artboard instances and list rows. Virtualized lists also do less work for offscreen and idle rows.
- Reduced redundant property updates when multiple state machine layers animate the same property.
Scripting
- Improved AnimaScript interpreter performance and memory use. Native runtimes can return unused script memory to the system while the file remains open.
Commits
See the full commit history between 6.29.0 and 6.30.0.
- feat(apple): add focus management
4c7d4c6 - fix(apple): retry draws after drawable acquisition fails
f9c9b4f - fix(apple): prevent stale terminal Metal frames
b43d2dc - fix(apple): recover drawable slots after missing callbacks
06daf43 - fix(apple): update settled layouts on resize
83d9c87 - feat(text): language-aware shaping and fallback
a5c8591 - feat(renderer): blend masked layers with their backdrop
14beeaa - fix(runtime): reverse early-exit transitions from the blended pose
01b5cd1 - perf(layout): improve grid layout performance
271f7d8 - feat(scripting): load an image from encoded bytes
01c7bee - feat(scripting): bind artboards from the script’s own file
59997d6 - feat(scripting): forward keyboard and text events to hosted artboards
f8fe2e8