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 for draw index on artboard component lists (#12234) d83826e10b
4b12bea - fix(unity): add missing libpng symbol renames for Unity 6.4+ WebGL builds (#12236) 4744c8972a
7e89880 - fix(runtime): leak in ElasticScrollPhysics helpers (#12226) f6fa7f21cf
6c9eb2e - feat: TextInput Tool Improvements (#12221) 5bd28c734a
bec52e5 - feat(renderer): Implement clip for clockwiseAtomic (#12120) da326b3fca
806d908 - feat(cq): add success callbacks for instantiations (#12213) e5ce0c3387
2a457da - feature: add support for triggering actions on state transitions and … (#12209) 235ca76b31
e3c3c81