Skip to content

2.49.4

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Nov 06:17
· 36 commits to master since this release

Fixes

  • Text input: The on-screen keyboard could appear when focus moved to an element that only listens for key presses, which was especially evident in mobile browser experiences. It now appears only when the focused element, or one of its parents, takes typed text. StateMachine.focusState() now also returns expectsTextInput, alongside the existing expectsKeyboardInput. (Fix)
  • @rive-app/webgl2-threads: In Safari, resizing the window could show a blank frame, because the canvas was cleared and shown before the frame at the new size was drawn. The canvas now resizes right before that frame is drawn, so no blank frame appears. (Fix)
  • Scripting: A sized 2D canvas created during a script's init could have no image yet, so canvas.image.view() returned null and scripts that relied on it failed. 2D canvases are now ready at init, the same as GPU canvases. (Fix)

Performance

  • Layouts: Building and syncing layouts now makes fewer memory allocations. Each layout's style was also being visited twice whenever the runtime went through a layout's children; that duplicate is gone. (Change)
  • Data binding: Creating instances of data-bound artboards now makes fewer memory allocations. Instances share their bind paths instead of copying them, and bound values are stored inline. Adding list rows that are bound to view models is cheaper as a result. (Change)

Commits

  • docs(runtimes): match READMEs and package metadata to rive.app positioning #15442
  • fix(scripting): build the linux cli release on clang 14 again #15423
  • fix(runtime, runtime_wasm): raise the soft keyboard for text focus only #15428
  • perf(runtime): share bind paths and hold bound values inline when instancing artboards #15411
  • fix(scripting): mint 2d canvases before the device binds, like gpu canvases #15399
  • fix(js): resize the replay worker's canvas in its frame's task #15374
  • perf(runtime): build and sync layouts with fewer allocations #15378