Releases: rive-app/rive-android
11.6.2
11.7.0
- feat(Android): Vulkan (#12653) 528ab110eb
37c0c09 - fix(Android): VMI read/write lock (#12811) 9f34ff6291
7cc8317 - feat(Android/Cmdq): Advance after pointer down and up (#12786) ba9b94960c
e167018 - feat(Android): Allow bindable artboard clearing with null (#12752) e171a0fd3f
63e24c5 - gl: route feathers to atlas on Mali-G52 to avoid PLS corruption (#12753) f60e429709
a3b9277 - Add gpu compressed decoders (#12237) 195d4fcb25
4da3150 - fix(Android): Unblock Android release flow (#12868) 77c82242bb
dea5f4f - feat(command-queue): add file asset listing via FileListener (#12662) 4a612198f1
1242226 - fix(runtime): invalidate all scripted VM property caches on instance swap (#12863) ca0054c077
3bbc564 - fix: Snap enabled scrolling not respecting last item padding (#12856) f11274b5d9
4f0b1a9 - chore(editor): Generate Windows pdbs for symbolication (#12720) 2fce4282b6
bd3babe - fix(renderer/d3d11): guard MicroProfile GPU init against multi-context re-entry (#12766) 13fba5c3d5
1c52f25 - chore: Stateful Component handling of source artboard databinds (#12776) e9483b78c4
95cf327 - fix(build): locate Visual Studio via vswhere as a fallback (#12840) c5d462f9d9
6e58351 - C++ Runtime Readme revamp (#12537) c8bb275d99
52faff2 - Nnnnn export bindable object with different (#12779) a680ab80e5
a568354 - Add Factory::ore() and drop the redundant ore context cache in ScriptingContext (#12769) 76eeeed5d9
b303552 - feat(js): poll Rive focus state to conditionally drive focus back to the canvas from elsewhere in the DOM (#12713) 6169c50d9f
d7aabe2 - fix(runtime): assign view model instances to the right view models (#12756) 018a0724d9
cc6984a - Bezier render prototype (#12727) 4b2501f748
b0ac863 - ore: gate float render targets and baseVertex on backend features (#12712) 10e90773d5
8bb1bbe - Deferred GPUCanvas reports speculative format (#12701) 557c18ea05
a562e3c - feat(editor): Expose ScrollConstraint velocity and scrollActive computed properties (#12671) d797171a0b
afed00d - feature(scripting): serialize implemented methods (#12670) 8957983a44
6afa5d6 - Nnnnn gamepad input support (#12646) 867dce9f73
4e19952
11.6.1
- fix(Android): Move command queue teardown to a thread (#12536) 6a45587c42
454eda4 - feat(android): add setViewModelInstance to ViewModelInstance (#12464) 0341fb374c
728946b - Support ktx2 (#12385) f454e3170e
b031c24 - feature(scripting): LuauDirectFieldGet for hot userdata reads (#12650) fe77b2ec3d
d1ae70a - fix(runtime): fix data bind container re-entries (#12649) 0649b58ff5
790b23d - ci: move linux + windows rive_native builds to self-hosted; fetch prebuilt premake on windows (#12640) 1548d0bb39
0b90e51 - remove lua_gc and set File reference as raw pointer (#12590) 1ff3ef872f
33c5190 - fix(luau): GC crash in markroot from FFlag flip after lua_newstate (#12638) 6f4bc8aa47
d3c8ba8 - chore: bump vendored luau fork to rive_0_36 (#12632) dc34cab787
71e09bb - GPUCanvas: deferred construction, beginRenderPass with view sugar, generator gets Context (#12634) 69767598c6
0e25cce - chore: Add "resize" Image fit type to differentiate from "fill" (#12627) 91c4dd9b77
c0cdd8f - fix(unity): add missing neon palette png symbols to fix iOS crash (#12620) 463745fd0b
75259fd - chore(focus): expose focus polling API (#12617) fdb0536723
958592d - refactor(ore): convert ore classes to be virtual with per backend implementations (#12599) e5c20369ec
f24e1dd - fix: Scroll to hidden layouts using scrollIndex (#12598) 679b808585
8613971 - fix: PropertyRecorder UB calling &front() on empty buffers (#12607) 623d5fe7a3
c705350 - feat(wgpu): Use wgsl (finally) in the WebGPU backend (#12541) d779307982
f865413 - fix(runtime): Incorrect modulo in scroll using snap and carousel (#12586) 308565c15e
d58706c - fix(tests): Update gms & goldens to support 16K page sizes (#12584) 4440cf2dec
2b97ff5 - feat: add user-driven focus management support for js/wasm. plumb through focus manager methods to SMI (#12522) ea3739b107
6b8bbd4 - fix(apple): retain and clear artboard/image property values in ViewModelInstance (#12561) d938779f2b
c20c238 - refactor(gpu): move beginRenderPass from GPUCanvas to Context (#12579) 1cac286905
0804011 - fix: drop 32-bit integer vector VertexFormats (#12570) 2e4ed32ffa
260517d - fix: pass file to data bind clone (#12569) 717b403dd9
8ced36d - fix(editor): Stateful component fixes (#12563) 26b149f92c
110573e - fix(runtime): pass pointerId to drag events (#12559) 43b857965b
0fe6e81 - fix: Make ViewModelInstanceTrigger keyable for Stateful Components (#12556) c2f1000a63
5b65f9b - Fix render_canvas_prepass_multi GL flip pivot (#12488) db997822be
b729ecd - chore(runtime): resolve build error after merge conflicts (#12545) 320eff3f97
73cf728 - feat(scripting_workspace): HLSLStructLayout v2 with per-resource stageMask (#12544) a9d6eff838
2581c13 - chore(rive_native): build microprofiler behind a flag (#12514) 44ba1a605e
5a3e9a7 - fix: memory pressure during dart allocations from luau trampoline cal… (#12540) 2dab5352d7
f594434 - fix(scripting_workspace): HLSL export cleanup (#12512) 60b685278c
0a7ebce - chore: Guard from calling markNeedsUpdate in update (#12525) fab85a4fd5
84b81dd - fix(editor): reset scripted objects initialization when data context is cleared (#12523) 9faec1e36e
cc6a0c0 - validate inputs for logging (#12521) 8e58f305c1
1ce8f3b - fix(android): address github issue template bug on duplicate ids (#12517) cdb5071597
fc284ec - Update profiler to fix build (#12515) 687a80a7a8
1ced3db - Nnnnn scripted interpolators (#12505) 44b83c5345
3401be7 - chore(editor): Move stateful toggle to NestedArtboard (#12490) 9f0dc79e3f
8fa57db - refactor(runtime): added overload for decoding shader (#12492) f1c2f2c776
2a4caf2 - chore: drop multi-shader machinery, drop legacy ScriptAsset-RSTB fallback (#12485) f74ec7dfd5
5c70df8 - chore(shaders): call draw canvases from the draw command and gate met… (#12489) afccc14a00
a82129c
11.6.0
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
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
SimpleArrayconstructor overflow safe(r) (#12313) ea38312ee14c735da - 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...
11.4.1
Fixes
This release includes 3 important fixes for the Android runtime:
- Properly handle the loss of OpenGL context, restoring it after loss with automatic recovery.
- Fixed a race condition during tear down if the surface was simultaneously being resized.
- 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.
- Manifested as
- 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
- 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
- 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
rivestdgot left behind by a merge (#11953) 50693238435072d62 - 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
- 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
- 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