Skip to content

6.30.0

Choose a tag to compare

@github-actions github-actions released this 12 Nov 02:17
· 29 commits to main since this release

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.languages to choose a font for the requested language.
  • 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 loadImage in Luau and AnimaScript to turn encoded image bytes into an Image that can be drawn or assigned to a view model property.
  • Added bindableArtboard so scripts can bind an artboard from their own file to a view model property.
  • Added Artboard.keyboardEvent(...) and Artboard.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 .layout fit 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 CommandQueueProtocol and StateMachineListener conformers 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