mirror of
https://github.com/rive-app/rive-flutter.git
synced 2025-10-25 11:26:11 +08:00
* chore(flutter): bump flutter min 3.27.0 and dart 3.6.0 * docs(flutter): update CHANGELOG chore: add support for zero width spaces as word breakers (#10899) c804e738de chore: add support for zero width spaces as work breakers fix: set dataContext to nullptr when unbinding (#10898) 684c603b1a fix(vulkan): Fix image/gradient rendering on some Android devices (#10894) d8e7fbdb7b On some Adreno models, gradients were not properly rendering properly, due to the texture/gradient coordinates always being 0 This was caused by what appears to be a driver bug, in which doing vkUpdateDescriptorSets with multiple descriptors (in our case, updating paintData and paintAuxData in a single call) would fail to properly commit the data from the second one. We're only doing this in the one place. Separating this into two calls causes gradients and images to now display as expected. chore(vk): Remove a redundant interlock mode from the draw pipeline key (#10887) 979c4feb82 The shader key and render pass key were both including the interlock mode, and the pipeline key was so full that adding a new interlock mode would overflow it. Only include the interlock mode once. Add fire events to player (#10758) 15693e8ff1 * Add code to player * Update player.cpp * Update player.cpp * Update player.cpp * Clang format * Update player.cpp fix: when the artboard is checking for ancestors it should return its… (#10883) d5b8889321 fix: when the artboard is checking for ancestors it should return itself as source when it is not the instance Add gamma texture test (#10856) e9b6d8a64e * Add gamma texture test * add texture gm * Create gamma_texture.png * Create gamma_texture.png * Create gamma_texture.png feat(Android): Multitouch and pointer exit support (#10848) 9bcc4a6d11 Adds multitouch and pointer exit support. Also bumps the compile and target SDK to 36, adding `core-ktx` dependency for one method. fix(gl): Fix a PLS regression on Oppo & Vivo (#10861) 33c9ac9f95 A recent refactor introduced an issue on Vivo Y21 and Oppo Reno 3 where writes to pixel local storage got disabled when the color mask was off. Just leave the color mask enabled in EXT_shader_pixel_local_storage mode. chore: add support for assigning dynamically loaded images from listeners (#10857) 8df6209168 feat: Merge fragment shaders for atlas blits & image meshes (#10852) 9794d81296 Previously we were trying to shoehorn atlas blits into draw_raster_order_path.frag, which led to a lot of hard-to-read #ifdefs since they're so different from paths. In reality, atlas blits are more similar to image meshes -- both are just triangle meshes that render directly without having to work out winding numbers -- so handle them in draw_raster_order_mesh.frag instead (which we renamed from draw_raster_order_image_mesh.frag). Additionally, for MSAA, the draws are all so similar that we can just merge them all into a common "draw_msaa_object.frag" shader. add drag event type support (#10807) 2f4ec0a570 * add drag event type support fix(build): Correct tracking of intended target OS in premake (#10853) c7a0379ab3 We've been testing _TARGET_OS in a lot of places in our build, but that is not actually updated in Android/Emscripten builds (it would continue to report, say, Windows). Among other things, this meant that we would build D3D12 shaders for every Android build, even though they were not needed. This adds a `rive_target_os` value to `rive_build_config.lua` which is updated manually for those two projects, so that scripts won't do the Windows/mac things when building for android/emscripten on those platforms. fix(vk, android) Workaround for Vulkan driver pipeline linking issues (#10756) 39741ac0c8 * Workaround for Android 9/10 Adreno 5- and 6-series Vulkan driver bug There's a bug in some of the early Adreno drivers where some of the Rive shaders will fail to compile due to hitting an internal limit. The workaround is to run a shader compilation pre-pass to inline functions before embedding the compiled shaders into the runtime. fix(runtime): Address issues requiring double advance (#10842) 5dd872763b This PR removes the double advanceAndApply(0) when running goldens. There were 3 seperate issues that are resolved here. NestedInput values which were keyed on a timeline did not take effect until the next frame when they were used to drive a Blend state. Fix: NestedArtboards and ArtboardComponentLists should check if needsAdvance() in addition to tryChangeState() Layouts where positionType (absolute/relative) were keyed on a timeline were behaving inconsistently depending on whether positionLeft/positionTop were also keyed on the same frame. Fix: Make sure changing positionType only overrides the positionTop/positionLeft values if those were not keyed on the same frame as positionType Text follow path modifier was rendering incorrectly in a specific case where a Text's width was bound to a VM property which gets its value from a Path's length. Fix: Call updateDataBinds before returning in Artboard::updatePass Fix path extraction (#10823) 76a19909c5 * Update contour_measure.cpp * Update trim_test.cpp * Update trim_test.cpp * Update contour_measure.cpp * clang format * Update contour_measure.cpp Co-authored-by: Gordon <pggordonhayes@gmail.com>
Rive Flutter Example
A demo application showcasing Rive Flutter.
Getting Started
Clone this repository:
git clone https://github.com/rive-app/rive-flutter
Run the example:
cd rive-flutter/example
flutter pub get
flutter run
Flutter Installation Instructions
If you're new to Flutter, see the official installation instructions.