- chore(c++): clang-format changes (#14883) c87e67374e
3a27b20 - fix(Android): don't block on texture creation when destroying an image (#14814) 39f92affd5
3a59032 - perf(ore): stop stalling android frames on gpu canvas waits (#14879) ac444ea724
92b7ebc - fix(Android): Synchronize surface lifecycle cancellation test (#15011) 89da0d245a
c95bd71 - fix(Android): Stop legacy worker implementation before replacing surface (#15004) 1ec539982f
bbd4ebb - fix(Android): Avoid Vulkan device wait during pending surface cleanup (#14923) 0c4981b381
43c8c7d - test(Android): Recompose while the focus test awaits its state machine (#14837) 59c09434d3
2012eca - fix(rive-cli): draw layout backgrounds, clips and button state in REV (#15019) b5a4149aad
e59540e - fix(ore): delete gl textures ore creates (#15026) 9ad2c07208
c59e88e - refactor(renderer): Insert dstBlend barriers before building batches (#14992) 822d4a08d5
1117200 - fix(runtime, editor): angular gradient transforms animate in nested artboards; gradient rotation binds in degrees (#15001) c8a386f870
85addf9 - perf(renderer): Restructure initForMidpointFan to be more SIMD-compatible (#14902) 7bbd2f397e
df975d2 - chore(runtime): artboard memory sizeof (#15007) fcb5780ac1
2614d9d - fix(Android): Exclude invalid Vulkan shader warmup permutations (#15013) c4031da867
cf74c7d - fix(ore): build vulkan pipelines from single entry spir-v modules (#14998) 670ca2ccc7
ebe69d4 - feat(runtime, editor): global text style support (#14660) d5a254a548
816d4f7 - perf(runtime): stop artboard instances copying and recopying shared l… (#15000) 5bb99d58c5
9a9b479 - fix(rasc): deep review follow ups across typing, frame gc, hosts and the editor (#14954) 131893a9ca
aa8b343 - feat(cli): preview images and random numbers the way the web does (#14834) 7fefb25731
b4e786a - fix(renderer): fix WebGL blit feedback loop after the first PLS flush (#14944) 90175f40f2
62afc76 - fix(deploy_tests): fix minor error with previous change (#14984) 297f8d2efc
6613827 - fix(runtime): stop data converter interpolators holding a frame on re… (#14982) a2da115b3e
b6280ac - fix(deploy_tests): Fix a few minor issues with deploy_tests (#14973) 4cfff50106
1a903c8 - chore(runtime): remove two core graphics renderers that aren't needed (#14951) e2b1fd9333
bd02e78 - fix(ore): judge sampling per entry point and build fromRstb shaders on the host (#14972) 26e77e6f7d
a1d9d64 - fix(renderer): Flip the angular gradients upside-down (#14971) 2317858b7b
823753f - fix(masking): apply layer masks in the web editor (WebGL2 / depthSten… (#14950) 310ceef29d
fbeea4b - perf(runtime): skip redundant layout dirt (#14945) 71dc1f61cb
c8e596c - fix(unreal): clang format unreal shader fix (#14949) cda0a3d366
f51e64b - feat(text_input): max characters and max lines limits (#14926) 9125edcd6c
4bb5f5c - fix(runtime): rebuild inner feather path when inner changes (#14948) 36b38ae3d6
242efb3 - Update Discord invite link to discord.gg/rive-app (#14931) e6319d8176
4316ac1 - fix(ore): run animascript in the web test player and take anisotropic samplers on webgpu (#14924) fb3c617552
fcdc066 - fix(housekeeping): Reformat with clang-format 19.1.7 (#14927) 49c42f3a86
cb37d02 - perf(renderer): Make a ShaderFeature for angular gradients (#14826) 2fc1a52418
bb4a674 - feat(d3d/12): inkbleed (#14855) e8230e6d6c
ac1c1a1 - fix(deferred): replay only a canvas's last frame per session frame (#14913) d3495be515
f3593d3 - fix(ore): derive automatic layouts from a pipeline's own entry points (#14918) 0c99e9ed71
3d64487 - feat(text input): blur on a press outside the focused field (#14687) 315f0f8aa9
596e058 - fix(artemis): kit lanes build harfbuzz again (#14919) f6f6162502
b70c7d4 - perf(layout): make a stack's cell the stack (
minmax(0, 1fr)) (#14914) 5237e87d45087644e - perf(runtime): solve a text's layout once per change (#14905) ed4257407e
c623e15 - feat: base support for Angular (sweep) gradients (#14841) 82759fe334
9a40929 - fix(vulkan): stop aborting when the loader fails extension enumeration (#14832) b04bcf8b50
686e2be - fix(web): sync mesh buffers when a mesh samples a canvas image (#14894) f89f0962e1
cab9034 - perf(renderer): Track per-verb counts in RawPath (#14858) 8f26372882
92c7a61 - perf(renderer): Skip the full chop search for cubics that definitely don't need chops (#14859) 3054bea6d1
04f4258 - perf(renderer): Draw stroke cusps as full round joins (#14857) fddb30d8c4
bf0b152 - perf(math): SIMD helpers, and faster float min/max on 32-bit ARM (#14860) eacb8fd4c6
2abadde - fix(runtime): stop scripts without pointer handlers blocking pointer hits (#14650) 86830a1eaa
b653f8c - perf(renderer): Pixel bounds calculation perf improvements (#14856) 68469c17f4
10f4157 - fix (runtime) Ensure that when a variable font is updated, if the base font is null the variable font cache is cleared. (#14861) 39d02d9083
ff96d98 - CLI: add optional native REV authoring (#14708) 2690b5c2e6
5872f36 - fix(renderer): rotate and fence the GL storage-texture polyfill on Mali (#14846) cde30f8817
04202f2 - fix(scripting): stop the editor piling up script property wrappers, make untracking O(1) (#14854) b338e46bf8
c3bbbc5 - feat(unreal) Rhi inkbleed support (#14796) 34aabd1345
fbfd5cd - chore(renderer): Add ubershader pre-creation to GL render context (#14849) f652c01305
44a3d01 - feat(runtime): add support for painting with an artboard (#14661) 7e93df692d
85df53f - feat(renderer): Expose RenderContext::selectInterlockMode() (#14844) 7f0f87751a
f86556a - fix(core, runtime): stop script undo at its starting text and build editor runtimes again (#14836) ef0f2d25b2
34b2bc8