Skip to content

Releases: rive-app/rive-android

11.6.0

09 May 00:41

Choose a tag to compare

Fixes

This release includes three fixes:

  • Render target creation was at risk of producing an ANR during periods of high contention on the worker. This was resolved by making creation asynchronous and lazy at the time of first use.
  • (Legacy) If data binding values were updated during a frame advance, there was a chance of corrupting the buffer of data bind updates. This was resolved through locking the buffer.
  • (Legacy) If a Rive file had no data binding available but the user requested autoBind, the runtime would throw an error. This has been downgraded to logging an error.

  • fix(Android): Render Target ANR (#12470) fc77e0e0ef d8a3982
  • fix(Android): Legacy: Update databinds under lock (#12480) e1151b7f96 c372a04
  • fix(Android): Legacy: Log error instead of throwing when auto-bind fails (#12481) d596bba7a7 424170c
  • added internal asset loader so you can bypass cmdq (#12487) a53f08a914 de1a00f
  • chore: delay running data binds until necessary (#12469) ee223deb96 f40a473
  • Move from .rtex to .ktx2 (#12369) db268e8c81 842fd0d
  • Fix/render bc7 images (#12344) 3b74a52148 a8e7057
  • fix(browserstack): Fix the browserstack run for vk gms (#12473) b70b191146 de09be3
  • fix(glmsaa): Fix MSAA artifacts with dstBlend barriers and no KHR (#12413) 82af6951bf 4485dd5
  • chore: drop D3D11/D3D12 pre-compiled DXBC ingestion path (#12475) 1de58d297c 964fbcb
  • feature: track ShaderAsset assetId on ShaderModule (TRACK_RIVE_SHADER_ID) (#12474) d2e31a1f65 6bccaf7
  • chore(runtime): improve initialization performance of clipping shapes… (#12472) 666dc5691e ecee87a
  • fix(tests): gate render_canvas GMs behind with_rive_canvas (#12441) 1aab0beb60 c750894
  • fix: Absolute layout fill behavior (#12471) 6cce514679 3d5aea7
  • fix(runtime): Fix top level artboard hug behavior (#12462) 0e91142f40 9b28b2b
  • fixes(editor and runtime): follow path and editor reload (#12461) ed48c0a53d 760c6a5
  • fix(tests): make Rand produce identical sequences across platforms (#12432) 9a8f7e7a19 9744b71

11.5.0

06 May 21:23

Choose a tag to compare

Features

This release introduces hardware bitmap rendering as a method of rendering Rive content to an Android Canvas. Software bitmaps have been available since the release of the new API, but would be too slow for real time use due to the expense of copying between buffers. With hardware bitmaps, apps can achieve the same performance as Compose but instead rendering to a canvas. See the HardwareBitmapCanvasActivity sample for usage.

Software rendering has been moved to a new class, SoftwareRenderBuffer, and the old RenderBuffer class is marked deprecated. In the future, we may move to an asynchronous API.

This release also improves on tracing, adding more tracing to the Legacy API for easier comparisons, as well as the new canvas path.

Finally, this release refactors how surfaces work in the new API, making them closable from the main thread.

Fixes

This release includes a speculative fix for failures to link libandroid.so. See this commit for details. It may be that it surfaces a different, root issue, which may require an additional fix to resolve.


  • feat(Android): Hardware Bitmap Rendering (#12231) a22106e3db 0050823
  • Nnnnn focus management fixes (#12290) 12495d656d e873069
  • fix(Android): Non-recursive linking (#12293) 2ee033da32 da4428a
  • Runtime compressed texture support (#12026) 7009e7fdec a7bcf78
  • fix: null-terminate char-array shaders in MSVC mode (#12218) 6d3708536a fb16bd6
  • chore: add config yml files for issues so we disable the blank issue option and provide links to docs and community (#12235) f60572ccb0 bd7f0da
  • feat(scripting): Mat4 affine fast paths + reverse-Z perspective (#12454) 072832aecc 86bd024
  • feat(Command Queue): Add draw key cancellation (#12451) 7c539a46ff c4ddefb
  • track state machine state for profiler (#12434) 565f8ad739 58728ab
  • feat(scripting): first-class Mat4 type with SIMD multiply (#12445) a076a8abde 0a383c0
  • chore(recorder): enable scripted Canvas + Ore in the GPU recorder (#12430) 66b9d31e8f c86eb21
  • chore: Add more Stateful Component tests (#12438) 13be041786 28c21eb
  • Split Ore Context into per-backend subclasses (#12442) ee268b5467 5fd2231
  • refactor(unreal): main branch compatability (#12440) 66dbcd05f3 d594ffe
  • Add code for tier levels on profiler (#12411) 0a621bb320 7011190
  • fix(vulkan): Resolve driver crash on some mobile GPUs (#12403) 1deebb93aa 2fa1246
  • fix: make SimpleArray constructor overflow safe(r) (#12313) ea38312ee1 4c735da
  • Expose context:preferredCanvasFormat() to Dart-hosted scripts (#12419) 852622182f 9a34dbd
  • chore: Stateful component input/output display name (#12406) 1c0be407fa 5a9fa56
  • fix(ore): depth only pipeline (#12408) a2f90edf62 1c26944
  • feat(ore): 3D (#12319) 462e0574ec 7343fa3
  • fix(d3d12): sampler heap rotation must re-create immutable samplers & initialize unused SRV (#12399) 27bd52389b 489b8b4
  • feature(scripting): expose view model image properties (#12390) 48d4b69f15 8fa144e
  • Enumerate Compressed texture formats (#12358) 5e9fc9910b 30a4760
  • fix(d3d12): image samplers must use default-mode filter, not comparison (#12395) cdfb9acc06 33bc657
  • fix(cmdq) fix race condition (#12392) 3698608ea4 6645671
  • Nnnnn scripted properties lifecycle (#12375) 1df363d3b8 a4cc030
  • fix: Layout ScaleType keying with percent units bug (#12388) 1f4b65d3dd 025afd9
  • fix(d3d12): rebind invalidated root descriptor tables after sampler heap rotation (#12387) 9354e62e9a 353db3c
  • feat(ui update): data value toggle [flagged] (#12357) c8af6cfdcc 1063c73
  • chore: Rebaseline silvers (#12379) a3dd13b312 fcb46be
  • chore: validate size of lists before iterating (#12365) 1a5100efcf 1f15b29
  • fix(renderer): Only apply barriers on drawGoup boundaries (#12347) 31aa875e47 2a78c96
  • feat(cmdq): sync mouse events (#12322) d2cf8f885b a4fc6ae
  • Fix Runtime Compressed texture loading (#12338) 5e1daebe83 4a8c8fd
  • feature(scripting): expose access to list index property (#12286) 1b04939b52 efc5664
  • feature - RSTB edit-time generation (#12341) 25e5123be4 6a3ce27
  • feature(focus): add support for focus traversal actions (#12327) eb578eb9f6 75ad6e1
  • fix(scripting): clear scripted view model cache when instance changes (#12325) bc28f6b706 381a57e
  • chore(renderer): pre-Ore PLS misc fixes (#12324) 53d9569d3e 4fa863a
  • fix(d3d12): three spec-compliance fixes uncovered by stricter D3D12 validation (#12316) 68e0e5ef0d d9b41e5
  • feat(runtime): added clear list command (#12301) fe2c92535c 5c5fcba
  • chore: Add additional nullptr checks in ArtboardComponentList (#12292) 87fbb1cdff c98409f
  • refactor(semantic): simplify SemanticManager refresh() bounds and ordering (#12282) d5bd1a0bd8 1abbefb
  • feature: add support for data binding solos to enums (#12009) ab78bca1e5 dce3511
  • fix: do not default artboard value to 0 to avoid initializing to wron… (#12007) d722a63bb8 4c17cf8
  • feat: accessibility semantics (#11896) 30ace69c91 ac420b3
  • chore: ensure stateful components are bound (#12241) c352234f45 49dc081
  • Texture compression cli tool (#12115) 77f2cf82a4 2f0086f
  • fix: ListenerAction import and stateful ArtboardHost calls advanced() (#12238) 4ce0cedebd 7acb587
  • feature: add support...
Read more

11.4.1

17 Apr 19:07

Choose a tag to compare

Fixes

This release includes 3 important fixes for the Android runtime:

  1. Properly handle the loss of OpenGL context, restoring it after loss with automatic recovery.
  2. Fixed a race condition during tear down if the surface was simultaneously being resized.
  3. Fixed a linking error on older ARMv7 devices that did not support thread local storage (TLS) relocations
    • Manifested as java.lang.UnsatisfiedLinkError: dlopen failed: unknown reloc type 17.
    • Introduced by libsodium used for cryptographic random number generation (RNG) for scripting.
    • Solved by forcing emulated TLS at build time.

  • fix(Android): Context and surface loss fixes (flush crash) (#11726) d9776b5c2e 7350069
  • fix(Android): Race condition between resize and renderer deletion (#11831) 086750cc4a c1317cb
  • fix(Android): Fix linking issues on ARMv7 devices due to TLS relocations (#12175) a921b11eb8 4b3c801
  • chore(runtime): Remove tess renderer (#12207) 862f1ff44c ef4a55c
  • feature(scripting): add support for remove and removeAt (#12201) 0015c1d29e bfb459a
  • fix(editor): track orphan ScriptedProperty on ScriptingContext (WITH_… (#12195) 0475399dc5 bfdee65
  • fix(webgl): Update to latest PLS api (#12192) c8d7c868ca bf210eb
  • fix: include BlobAsset in File::read() asset import switches (#12191) a8142e0e4f d43efe4
  • fix: create new render path if a path is used multiple times in the s… (#12182) 85a72f0ffd 905a915
  • fix(wgpu): honor offscreen render target in testing_window_wgpu (#12174) f129648151 7a23d19
  • Handle linebreaks in single/multiline TextInput (#12154) dab97cd7b1 f70c981
  • Feat: Rive Renderer in Recorder (#12113) 7adf1e50c8 f258936
  • fix(editor): Fix Viewmodel duplicate naming & databind preview toggle stuck after undo (#12132) 223c4c3721 a7dfd12
  • fix(runtime): advance view models from bindable artboards (#12135) f1f9769606 9c7ec5f
  • fix: look for view model properties by name and type (#12133) 51992ddcda 5adc873

11.4.0

10 Apr 22:39

Choose a tag to compare

  • feature: add support for component based conditions (#12059) 5483819400 5e5ac49
  • fix(Vulkan): Fix saturation blend mode on some devices (#12111) b6b80d795a 9e84a3d
  • feat: Single/multiline support in TextInput and improved scrolling (#12127) 74f49dd1be d161a9e
  • Get the downstream rive-runtime Linux tests passing (#12121) 1902f9ddf3 aaa9dd7
  • chore(testing_window): Default shader compilation mode changes (#12119) 49e0b94a5f 487a8a6
  • refactor(tests): Refactored deploy_tests to use the same file instead of one per console (#12116) 478898e6b4 fc889d0
  • chore(unit_tests): Get inline shaders compiling in MSVC (#12100) d3d433b8b3 443c9a9
  • fix: add bash-native VS dev environment setup for Windows (#12094) d302b78b45 f8ca9e9
  • fix(editor): Store ScriptedContext on ScriptedObject for disposal (#12070) cb54233310 50f5d2e
  • fix(runtime): when an interpolation duration is set to zero, reset th… (#12086) 3afc336770 304dfc0
  • New runtime. (#11913) 183591cd06 470f9ad
  • fix: add support for data bound inputs in data converters (#12068) cdc30c9e74 ce3b27c
  • fix path effect advance (#12069) ef617a8d97 339682f

11.3.2

07 Apr 16:35

Choose a tag to compare

  • chore: Use structured Github Issue forms across runtimes (#11828) 50b70f682a b4aba05
  • chore: Bump core runtime to C++17 (#11946) 235eba5b6b b28267e
  • fix(android): keep RenderTarget alive for deferred draw callbacks (#11967) 7307f298ff 55bfabb
  • fix: remove Skia renderer from WASM builds and fix coop_cpp zlib dependency (#12073) ffd76947e8 8061f9f
  • feat: Image Fit & Alignment when parented by Layout (#12057) ca2ce7d096 41d8b1d
  • chore(runtime): Enum bitset refactor and new enum util functions (#12038) 19c486654a 45440f8
  • chore(glsl): Rename PLS_ATOMIC to PLS_UAV (#12056) 2390433e6b 0b5f26c
  • chore(runtime): Remove duplicate degreesFromRadians function (#12054) 44a307ef2e 0f2c511
  • fix(runtime): memory leak with listeners on scripted view model prope… (#12047) 3201f83d97 2323304
  • chore: add duration to audio API (#12040) a3c233b32a e30e8a6
  • feat(vulkan): Add ability to pre-build draw pipelines (#11945) 15be2c7178 bec6e0a
  • Bind stateful component VM instances with provided instances (#11999) 46c241d197 af1490b
  • feature: provide text and keyboard inputs to drawable scripts (#12002) b76bd385af 6f4cac6
  • test(gl): Reset atlas type back to r16f after changing it for testing (#12000) a5ba42dab9 3ee01f0
  • Stateful component fixes (#11982) a10b1aecc6 fafee33
  • Nnnnn state machine key input listeners part 4 (#11979) cf9c8526a5 0d6de60
  • fix(renderer) gamma correction fix (#11949) 5513f3f042 6cbdc3b
  • feat: expose view model name from view model instance as a property on viewmodel_runtime_instance (#11944) 85c89c739c 0394e2d
  • fix(editor/runtime): Honor path effect shape for inner vector feathering (#11971) 263c8a422d 6f4f199
  • Disable broken tests for now. (#11959) 31ff9f971a 9467087
  • Nnnnn state machine key input listeners part 3 (#11952) a77fcaadfe dfb7f7b
  • fix(runtime): Databind State machine transition duration (#11947) 98ac9c07a3 2a69004
  • fix(runtime): Add nullptr check for ConditionComparison during transition (#11955) fc1c3488ec 8b918ec
  • fix build: looks like a rivestd got left behind by a merge (#11953) 5069323843 5072d62
  • fix(unity): add symbol renames to prevent HarfBuzz collisions with Unity (#11951) c17d930238 e9daa5e
  • Nnnnn state machine key input listeners part 2 (#11936) 8a82cf2e25 edf6531

11.3.1

23 Mar 21:17

Choose a tag to compare

  • fix(runtime): store relinked view model instance on nested artboard (#11931) 76c7232fa1 4fc2199
  • feature: add support for sending keyboard inputs to focused elements (#11924) 19486d13d0 6ee8e8d
  • Add support for setting ViewModel value using Listeners and comparing ViewModels in Transition Conditions (#11917) 46a089fc12 fa2c0db
  • chore: skip focus nodes that are collapsed or fully transparent (#11916) 57139fa664 2114458

11.3.0

20 Mar 17:48

Choose a tag to compare

  • feat(Android): Do not draw when surface is lost (#11870) d117065966 c0ef434
  • Nnnnn library export fixes (#11884) 68176685ac 302b604
  • feat(vkcwa): Implement advanced blend (#11858) 37c39e85d4 343b243
  • Bind ViewModelInstanceList with Stateful Components (#11878) e4abf64f44 01d560a
  • fix: correct emoji image buffer size and dual-presentation fallback (#11876) 7640c5a47a ab1b727
  • feature: add support for removing all elements from a view model list (#11872) 354acb8533 363ed3b
  • feature: add support for multiple inputs on listeners (#11862) 501b7f488c 721e883
  • feature: emojis! (#11857) 89305a5fed 7f29656
  • fix(runtime): Don't early out when processing KeyedObjects with missing objects (#11856) 3eb4211852 0b3c55b
  • Component Input/Output Properties (#11854) 3034940065 b57099f
  • fix(apple): support language hints, create font from tables (#11807) 30fcb84a44 2e7f2dc
  • feat(renderer): Enable reordering on clockwise mode (#11843) b5b724b93a 9949a96
  • Stateful Component Properties (#11800) b09cb6b29e 6882784
  • feature: add support for replacing view model property values (#11826) c8242bfa23 29bab0e
  • chore: bump to luau 0.711 (#11837) e74f1cb12e 0a4d8e2
  • feature: RenderCanvas, a GPU texture usable as both render target and render image (#11836) 2b8d8a0b03 7698dbd
  • Focus nodes (#11814) 017a4f41e3 1fe50e5
  • fix(gl): Enable linear filtering on the atlas texture (#11818) 3312a8f159 f9f0948
  • fix: restore indexing order of view model symbols (#11817) f7c0374b8f 507b9fb
  • Simplify Renderer Sort Key Generation (#11782) dd441653df 523448a

11.2.1

02 Mar 22:16

Choose a tag to compare

Fixes

Removes debug symbols originally added in version 11.0.0, intended for debug builds only, but leaking into release builds. Users without proper NDK configuration would not strip these symbols and see increased deliverable app sizes. These symbols have now been removed again. In the future we will distribute symbols with builds in a side channel to be determined.


  • fix(Android): Do not include debug symbols (#11788) 806facbaca e9dff3c
  • fix: reinit scripted objects owned by the state machine (#11783) 72f38fef07 ad259f8
  • chore: make viewmodel references safer (#11781) 0961388866 2179cec
  • fix(unit tests): Update a test case to have a correctly-formatted category (#11778) 4edb867bde a7a0e8c
  • Intersection board in renderer now allows overlap (#11724) 352adc26ac efc4371
  • feat(vkcwa): Move borrowed coverage to a dedicated subpass (#11761) 57feaeef08 a1ff69a
  • fix: allow artboard conditions without data context (#11776) e9c66affc8 4e4ddd5
  • fix(editor): stop audio when playback is stopped (#11771) d8ff1c2d88 68182a6

11.2.0

26 Feb 17:09

Choose a tag to compare

  • fix: Restore the fallback to Canvas (#11648) cb97e4072f ef0eca1
  • refactor(android): improve native library load fallback diagnostics (#11698) aa1be23a94 b9b1c52
  • Armor the use of mapped gpu buffers (#11738) c4874f9ca2 8f573a9
  • Create TesselationDataFormat.txt (#11767) 2d76643c5e 5ee7df2
  • feature: expand view model instance support in scripting (#11744) a1966ba517 3218b5f
  • ArtboardComponentList optimizations (#11757) a3ef3daa73 d145a6d
  • fix: only disable microprofile’s webserver for rive_native (#11729) fba8d3eb5a 86187e1
  • chore: do not advance data binds without source (#11727) 44b4d20401 f274eae
  • refactor(rive_native): flutter runtime build without rive_tools (#11712) 0170b92c8c 5dee300
  • feat(vk): Implement clipRect and dither for clockwiseAtomic (#11709) 78c811b5dc 8926fed
  • Stateful Components (#11706) 37f69c268c 921ae32
  • fix(vk): Always use premultiplied alpha (#11674) 92387c12da 7eb7eb8
  • Improve Library Script dependency import (#11681) 7a527f1881 442eca1
  • Nnnnn update flamegraph UI 2 (#11695) 29c76e799a 54c0a51
  • fix(unreal): Fixed Mac RHI (#11694) 8e1ff5eb60 5da9dcb
  • chore(editor): get viewmodel instances from cpp on demand (#11680) d04d8106fb bee76d2
  • Optimized feather (#11625) 72f05121ea 98b10d5

11.1.2

16 Feb 15:53

Choose a tag to compare

Fixes

Fixes an issue with Luau scripting's vector methods.

Includes many other smaller core runtime improvements and fixes.


  • fix(Android): Fix CI tests (#11626) 4a2887534c babce47
  • Fix Lua stack imbalance when registering module (#11683) a03a19071f d4e5837
  • Make better dithertypes image (#11664) 3fb7ee93b6 6f8c64d
  • feat(renderer): Implement dither for clockwise mode (#11660) 1de6e822b1 0f43515
  • feature: Mirror Performance Profiling & Editor Performance View (#11667) 9ff17d62ca f52f0eb
  • feat(vk): Add an option to disable fixed function clockwise mode (#11666) 838cad2bf2 3625670
  • fix(shaders): fix for angle gm (#11670) f4c16df15d 520bb3d
  • Convert Atlas texture to be Float16 from Float32 (#11637) ce781fdcc0 9297538
  • fix(renderer): Interleave positive and negative feather atlas triangles (#11654) 37764336db ecc646e
  • fix: Check for bindableProperty nullptr in TransitionViewModelCondition (#11653) aa788cab46 a1a5c2a
  • Microprofile on Mac (#11650) c0ee8aa205 05a403c
  • feature: mirror! (#11640) c7217d5b3c b5ad9f0
  • fix: dispose ScriptedContext when ScriptedObject is disposed (#11616) a153b953bf 50ee7d3
  • feature: expose audio engine absolute time for synced playback (#11619) 3109712183 c286af2
  • Add dither functions (#11282) 599f58a196 3c48c08
  • feat(vk): Add a "virtual tile" feature (#11589) d4355212e2 493518a
  • Changed namespace of RectanizerSkyline (#11617) 68d898e3de 551fb87
  • fix(Unreal): UE platform updates (#11621) 9df72a3757 a421d69
  • feature(unreal): New Platform support (#11604) 7182effde6 2303263
  • fix: use after free of lua_State (#11618) fb6d35a8d3 2604f60
  • Fix script compilation speed (#11592) c286304f4d ea56ac6
  • feature: fast function calls for Vector (#11602) 953dd2021b b6055cc
  • feature: add audio support on scripts (#11582) 3e2bbcf7f0 4c8c550
  • fix: remove metatable creation (#11598) bd80286805 ef4bd54
  • feature: add support to provide view model instance to artboard and p… (#11590) 924040d3e2 690a29d
  • feature: add support for deterministicMode for tests (#11562) 0bd4a639ab e2cb1ec
  • feature: add support for asPath and asPaint script methods (#11580) 6ce4ab9eb1 175c975
  • chore(Vulkan): Vulkan "core" is now Vulkan 1.1 (#11581) 9b93015635 a601418
  • feature(editor): Importing a library script imports its dependencies (#11385) 11572bfdab 31fc166
  • fix: missing blob_asset.json files (#11574) 0e3db43471 f180922
  • fix: hit tests on leaves of collapsed layouts should not succeed (#11568) e680a845a5 63868cd
  • fix: luau stack on layouts (#11565) 55743a6610 38e997e
  • feature: expose data context via scripting (#11560) 02996b61bb 24bab58
  • refactor(Renderer): Better Offscreen render support (#11521) b840c40aa1 ff8f774
  • chore(Vulkan): Make the Vulkan bootstrapping code error handling more recoverable (#11536) 482babcfce 417831d
  • fix(fiddle_context): fix memory leak when window resized (#11557) 82290a8976 cb11992
  • fix(editor): Fix crashes when resizing hierarchy panel and generating share link (#11556) 84435c6038 34351f0
  • fix: Only apply layout interpolation on new frame (#11555) 4c6e0011da c11d0ad
  • feature: blob asset! (#11554) fdaec2ec5d e74834f
  • feature: ScriptedRenderImage! (#11473) 12f56c871a 0ac1ddf
  • feature: bump to luau 706 (#11544) 0edc7b14a8 a03f2fc
  • Prevent layout animation on Artboards just added to ArtboardHosts (#11548) f16f751405 a847b97
  • fix: crash on script dispose (#11542) e86db167ed dfc6a39
  • feature: expose root viewmodel to scripting via context (#11539) 0eadaaea47 c2978d6