Files
rive-flutter/platform_considerations.md

36 lines
1.4 KiB
Markdown
Raw Permalink Normal View History

# Platform Considerations
In order to support some of our more low level features, Rive brings some of its C++ runtime to Flutter.
Support 16kb devices by bumping to NDK r27 As suggested by the docs, this is the best way to support newer devices requiring 16kb page support. https://developer.android.com/guide/practices/page-sizes#compile-r27 - [x] Looking to see that Goldens pass before merging. Diffs= f653f3f73f Support 16kb devices by bumping to NDK r27 (#8558) 572265df3b call syncStyleChanges on update (#8715) e8d6e5db26 Override layoutcomponent x/y using layoutX/Y (#8714) d3f6a49778 Nnnn data bind fixes part 3 (#8663) baf832a6ce Instance data converters when attached to data binding objects (#8664) 0664f994df Snap verycomplexgrad gm stops to pixel boundaries (#8685) 39c62a94ef ScrollBar constraint autosize toggle (#8707) 7c3c8a3a1a Don't use GL_PIXEL_UNPACK_BUFFER (#8708) 5df5be1940 Add "no_rive_jpeg" and "no_rive_png" build options (#8702) d7794cb556 Improve scroll time precision on web (#8705) d0c9e98d2e Scroll fixes (#8698) ca10c9ec63 re add clean to diff (#8697) f00a5a6c78 do not break when component is found (#8695) 437688c18e Add yoga renames to non-v2 lua build scripts (#8693) 423301a95b Fix integer precision issues with pathID in vertex shaders (#8689) b1c0e80625 use draw proxy for scroll bar draggables (#8692) 302606642c GL fixes for Imagination PowerVR GPUs (#8684) e5879a1a5c Fix scrollbar thumb offset (#8691) 7414d20597 Sort by % diff pixels in diff.py when histogram is equal (#8683) 00e9ad43a7 fix sorting hittable components (#8690) fa8f7c6755 fix crash when dividing by 0 (#8687) cd310b1b68 Nnnn scrolling override poc part 2 (#8679) ac7c458bc7 Small Scroll fixes (#8682) 0ff13be381 Make scroll physics core objects (#8672) 9dfd01fb3a made compatable with python 9_9 (#8678) 454bc50aaf diff.py: don't count identicals as differences (#8666) c642488df3 added some changes to make building easier for unreal (#8667) 1647a7ad92 use actual sizes for calculating position offset (#8671) 599ab0eeb7 Reapply "Merge branch 'master' of https://github.com/rive-app/rive" 406a2ef952 Revert "Merge branch 'master' of https://github.com/rive-app/rive" 3c0cc1f329 skip object on animation reset if it is null (#8670) 1d2c9175d4 remove letter spacing subtraction (#8669) 96ec927371 fix fatal warnings compiler flag to use latest version (#8668) Co-authored-by: Erik <erik@rive.app>
2024-12-10 03:09:42 +00:00
| Platform | Technology | Dependencies |
| -------- | ---------- | -------------------------------- |
| iOS | FFI | statically linked |
| Android | FFI | `rive_text.so` |
| Windows | FFI | `rive_plugin.dll` |
| Mac | FFI | statically linked |
| Web | WASM | `rive_text.js`, `rive_text.wasm` |
## iOS & Mac
Support 16kb devices by bumping to NDK r27 As suggested by the docs, this is the best way to support newer devices requiring 16kb page support. https://developer.android.com/guide/practices/page-sizes#compile-r27 - [x] Looking to see that Goldens pass before merging. Diffs= f653f3f73f Support 16kb devices by bumping to NDK r27 (#8558) 572265df3b call syncStyleChanges on update (#8715) e8d6e5db26 Override layoutcomponent x/y using layoutX/Y (#8714) d3f6a49778 Nnnn data bind fixes part 3 (#8663) baf832a6ce Instance data converters when attached to data binding objects (#8664) 0664f994df Snap verycomplexgrad gm stops to pixel boundaries (#8685) 39c62a94ef ScrollBar constraint autosize toggle (#8707) 7c3c8a3a1a Don't use GL_PIXEL_UNPACK_BUFFER (#8708) 5df5be1940 Add "no_rive_jpeg" and "no_rive_png" build options (#8702) d7794cb556 Improve scroll time precision on web (#8705) d0c9e98d2e Scroll fixes (#8698) ca10c9ec63 re add clean to diff (#8697) f00a5a6c78 do not break when component is found (#8695) 437688c18e Add yoga renames to non-v2 lua build scripts (#8693) 423301a95b Fix integer precision issues with pathID in vertex shaders (#8689) b1c0e80625 use draw proxy for scroll bar draggables (#8692) 302606642c GL fixes for Imagination PowerVR GPUs (#8684) e5879a1a5c Fix scrollbar thumb offset (#8691) 7414d20597 Sort by % diff pixels in diff.py when histogram is equal (#8683) 00e9ad43a7 fix sorting hittable components (#8690) fa8f7c6755 fix crash when dividing by 0 (#8687) cd310b1b68 Nnnn scrolling override poc part 2 (#8679) ac7c458bc7 Small Scroll fixes (#8682) 0ff13be381 Make scroll physics core objects (#8672) 9dfd01fb3a made compatable with python 9_9 (#8678) 454bc50aaf diff.py: don't count identicals as differences (#8666) c642488df3 added some changes to make building easier for unreal (#8667) 1647a7ad92 use actual sizes for calculating position offset (#8671) 599ab0eeb7 Reapply "Merge branch 'master' of https://github.com/rive-app/rive" 406a2ef952 Revert "Merge branch 'master' of https://github.com/rive-app/rive" 3c0cc1f329 skip object on animation reset if it is null (#8670) 1d2c9175d4 remove letter spacing subtraction (#8669) 96ec927371 fix fatal warnings compiler flag to use latest version (#8668) Co-authored-by: Erik <erik@rive.app>
2024-12-10 03:09:42 +00:00
We use CocoaPods to build and statically link to your project the portions of Rive's C++ runtime that are necessary for text features.
## Android
Support 16kb devices by bumping to NDK r27 As suggested by the docs, this is the best way to support newer devices requiring 16kb page support. https://developer.android.com/guide/practices/page-sizes#compile-r27 - [x] Looking to see that Goldens pass before merging. Diffs= f653f3f73f Support 16kb devices by bumping to NDK r27 (#8558) 572265df3b call syncStyleChanges on update (#8715) e8d6e5db26 Override layoutcomponent x/y using layoutX/Y (#8714) d3f6a49778 Nnnn data bind fixes part 3 (#8663) baf832a6ce Instance data converters when attached to data binding objects (#8664) 0664f994df Snap verycomplexgrad gm stops to pixel boundaries (#8685) 39c62a94ef ScrollBar constraint autosize toggle (#8707) 7c3c8a3a1a Don't use GL_PIXEL_UNPACK_BUFFER (#8708) 5df5be1940 Add "no_rive_jpeg" and "no_rive_png" build options (#8702) d7794cb556 Improve scroll time precision on web (#8705) d0c9e98d2e Scroll fixes (#8698) ca10c9ec63 re add clean to diff (#8697) f00a5a6c78 do not break when component is found (#8695) 437688c18e Add yoga renames to non-v2 lua build scripts (#8693) 423301a95b Fix integer precision issues with pathID in vertex shaders (#8689) b1c0e80625 use draw proxy for scroll bar draggables (#8692) 302606642c GL fixes for Imagination PowerVR GPUs (#8684) e5879a1a5c Fix scrollbar thumb offset (#8691) 7414d20597 Sort by % diff pixels in diff.py when histogram is equal (#8683) 00e9ad43a7 fix sorting hittable components (#8690) fa8f7c6755 fix crash when dividing by 0 (#8687) cd310b1b68 Nnnn scrolling override poc part 2 (#8679) ac7c458bc7 Small Scroll fixes (#8682) 0ff13be381 Make scroll physics core objects (#8672) 9dfd01fb3a made compatable with python 9_9 (#8678) 454bc50aaf diff.py: don't count identicals as differences (#8666) c642488df3 added some changes to make building easier for unreal (#8667) 1647a7ad92 use actual sizes for calculating position offset (#8671) 599ab0eeb7 Reapply "Merge branch 'master' of https://github.com/rive-app/rive" 406a2ef952 Revert "Merge branch 'master' of https://github.com/rive-app/rive" 3c0cc1f329 skip object on animation reset if it is null (#8670) 1d2c9175d4 remove letter spacing subtraction (#8669) 96ec927371 fix fatal warnings compiler flag to use latest version (#8668) Co-authored-by: Erik <erik@rive.app>
2024-12-10 03:09:42 +00:00
We use Gradle & CMake to build `rive_text.so`. Rive's runtime uses modern features that are only available on newer NDKs. For this reason we recommend updating your build.gradle to include `ndkVersion "27.2.12479018"`.
Support 16kb devices by bumping to NDK r27 As suggested by the docs, this is the best way to support newer devices requiring 16kb page support. https://developer.android.com/guide/practices/page-sizes#compile-r27 - [x] Looking to see that Goldens pass before merging. Diffs= f653f3f73f Support 16kb devices by bumping to NDK r27 (#8558) 572265df3b call syncStyleChanges on update (#8715) e8d6e5db26 Override layoutcomponent x/y using layoutX/Y (#8714) d3f6a49778 Nnnn data bind fixes part 3 (#8663) baf832a6ce Instance data converters when attached to data binding objects (#8664) 0664f994df Snap verycomplexgrad gm stops to pixel boundaries (#8685) 39c62a94ef ScrollBar constraint autosize toggle (#8707) 7c3c8a3a1a Don't use GL_PIXEL_UNPACK_BUFFER (#8708) 5df5be1940 Add "no_rive_jpeg" and "no_rive_png" build options (#8702) d7794cb556 Improve scroll time precision on web (#8705) d0c9e98d2e Scroll fixes (#8698) ca10c9ec63 re add clean to diff (#8697) f00a5a6c78 do not break when component is found (#8695) 437688c18e Add yoga renames to non-v2 lua build scripts (#8693) 423301a95b Fix integer precision issues with pathID in vertex shaders (#8689) b1c0e80625 use draw proxy for scroll bar draggables (#8692) 302606642c GL fixes for Imagination PowerVR GPUs (#8684) e5879a1a5c Fix scrollbar thumb offset (#8691) 7414d20597 Sort by % diff pixels in diff.py when histogram is equal (#8683) 00e9ad43a7 fix sorting hittable components (#8690) fa8f7c6755 fix crash when dividing by 0 (#8687) cd310b1b68 Nnnn scrolling override poc part 2 (#8679) ac7c458bc7 Small Scroll fixes (#8682) 0ff13be381 Make scroll physics core objects (#8672) 9dfd01fb3a made compatable with python 9_9 (#8678) 454bc50aaf diff.py: don't count identicals as differences (#8666) c642488df3 added some changes to make building easier for unreal (#8667) 1647a7ad92 use actual sizes for calculating position offset (#8671) 599ab0eeb7 Reapply "Merge branch 'master' of https://github.com/rive-app/rive" 406a2ef952 Revert "Merge branch 'master' of https://github.com/rive-app/rive" 3c0cc1f329 skip object on animation reset if it is null (#8670) 1d2c9175d4 remove letter spacing subtraction (#8669) 96ec927371 fix fatal warnings compiler flag to use latest version (#8668) Co-authored-by: Erik <erik@rive.app>
2024-12-10 03:09:42 +00:00
```gradle
android {
compileSdkVersion 31
Support 16kb devices by bumping to NDK r27 As suggested by the docs, this is the best way to support newer devices requiring 16kb page support. https://developer.android.com/guide/practices/page-sizes#compile-r27 - [x] Looking to see that Goldens pass before merging. Diffs= f653f3f73f Support 16kb devices by bumping to NDK r27 (#8558) 572265df3b call syncStyleChanges on update (#8715) e8d6e5db26 Override layoutcomponent x/y using layoutX/Y (#8714) d3f6a49778 Nnnn data bind fixes part 3 (#8663) baf832a6ce Instance data converters when attached to data binding objects (#8664) 0664f994df Snap verycomplexgrad gm stops to pixel boundaries (#8685) 39c62a94ef ScrollBar constraint autosize toggle (#8707) 7c3c8a3a1a Don't use GL_PIXEL_UNPACK_BUFFER (#8708) 5df5be1940 Add "no_rive_jpeg" and "no_rive_png" build options (#8702) d7794cb556 Improve scroll time precision on web (#8705) d0c9e98d2e Scroll fixes (#8698) ca10c9ec63 re add clean to diff (#8697) f00a5a6c78 do not break when component is found (#8695) 437688c18e Add yoga renames to non-v2 lua build scripts (#8693) 423301a95b Fix integer precision issues with pathID in vertex shaders (#8689) b1c0e80625 use draw proxy for scroll bar draggables (#8692) 302606642c GL fixes for Imagination PowerVR GPUs (#8684) e5879a1a5c Fix scrollbar thumb offset (#8691) 7414d20597 Sort by % diff pixels in diff.py when histogram is equal (#8683) 00e9ad43a7 fix sorting hittable components (#8690) fa8f7c6755 fix crash when dividing by 0 (#8687) cd310b1b68 Nnnn scrolling override poc part 2 (#8679) ac7c458bc7 Small Scroll fixes (#8682) 0ff13be381 Make scroll physics core objects (#8672) 9dfd01fb3a made compatable with python 9_9 (#8678) 454bc50aaf diff.py: don't count identicals as differences (#8666) c642488df3 added some changes to make building easier for unreal (#8667) 1647a7ad92 use actual sizes for calculating position offset (#8671) 599ab0eeb7 Reapply "Merge branch 'master' of https://github.com/rive-app/rive" 406a2ef952 Revert "Merge branch 'master' of https://github.com/rive-app/rive" 3c0cc1f329 skip object on animation reset if it is null (#8670) 1d2c9175d4 remove letter spacing subtraction (#8669) 96ec927371 fix fatal warnings compiler flag to use latest version (#8668) Co-authored-by: Erik <erik@rive.app>
2024-12-10 03:09:42 +00:00
ndkVersion "27.2.12479018"
...
}
```
## Windows
Support 16kb devices by bumping to NDK r27 As suggested by the docs, this is the best way to support newer devices requiring 16kb page support. https://developer.android.com/guide/practices/page-sizes#compile-r27 - [x] Looking to see that Goldens pass before merging. Diffs= f653f3f73f Support 16kb devices by bumping to NDK r27 (#8558) 572265df3b call syncStyleChanges on update (#8715) e8d6e5db26 Override layoutcomponent x/y using layoutX/Y (#8714) d3f6a49778 Nnnn data bind fixes part 3 (#8663) baf832a6ce Instance data converters when attached to data binding objects (#8664) 0664f994df Snap verycomplexgrad gm stops to pixel boundaries (#8685) 39c62a94ef ScrollBar constraint autosize toggle (#8707) 7c3c8a3a1a Don't use GL_PIXEL_UNPACK_BUFFER (#8708) 5df5be1940 Add "no_rive_jpeg" and "no_rive_png" build options (#8702) d7794cb556 Improve scroll time precision on web (#8705) d0c9e98d2e Scroll fixes (#8698) ca10c9ec63 re add clean to diff (#8697) f00a5a6c78 do not break when component is found (#8695) 437688c18e Add yoga renames to non-v2 lua build scripts (#8693) 423301a95b Fix integer precision issues with pathID in vertex shaders (#8689) b1c0e80625 use draw proxy for scroll bar draggables (#8692) 302606642c GL fixes for Imagination PowerVR GPUs (#8684) e5879a1a5c Fix scrollbar thumb offset (#8691) 7414d20597 Sort by % diff pixels in diff.py when histogram is equal (#8683) 00e9ad43a7 fix sorting hittable components (#8690) fa8f7c6755 fix crash when dividing by 0 (#8687) cd310b1b68 Nnnn scrolling override poc part 2 (#8679) ac7c458bc7 Small Scroll fixes (#8682) 0ff13be381 Make scroll physics core objects (#8672) 9dfd01fb3a made compatable with python 9_9 (#8678) 454bc50aaf diff.py: don't count identicals as differences (#8666) c642488df3 added some changes to make building easier for unreal (#8667) 1647a7ad92 use actual sizes for calculating position offset (#8671) 599ab0eeb7 Reapply "Merge branch 'master' of https://github.com/rive-app/rive" 406a2ef952 Revert "Merge branch 'master' of https://github.com/rive-app/rive" 3c0cc1f329 skip object on animation reset if it is null (#8670) 1d2c9175d4 remove letter spacing subtraction (#8669) 96ec927371 fix fatal warnings compiler flag to use latest version (#8668) Co-authored-by: Erik <erik@rive.app>
2024-12-10 03:09:42 +00:00
We use CMake to build `rive_plugin.dll`. Note that Clang compiler is required, [see here](https://learn.microsoft.com/en-us/cpp/build/clang-support-msbuild?view=msvc-170) for how to enable it in your Visual Studio.
## Web
Support 16kb devices by bumping to NDK r27 As suggested by the docs, this is the best way to support newer devices requiring 16kb page support. https://developer.android.com/guide/practices/page-sizes#compile-r27 - [x] Looking to see that Goldens pass before merging. Diffs= f653f3f73f Support 16kb devices by bumping to NDK r27 (#8558) 572265df3b call syncStyleChanges on update (#8715) e8d6e5db26 Override layoutcomponent x/y using layoutX/Y (#8714) d3f6a49778 Nnnn data bind fixes part 3 (#8663) baf832a6ce Instance data converters when attached to data binding objects (#8664) 0664f994df Snap verycomplexgrad gm stops to pixel boundaries (#8685) 39c62a94ef ScrollBar constraint autosize toggle (#8707) 7c3c8a3a1a Don't use GL_PIXEL_UNPACK_BUFFER (#8708) 5df5be1940 Add "no_rive_jpeg" and "no_rive_png" build options (#8702) d7794cb556 Improve scroll time precision on web (#8705) d0c9e98d2e Scroll fixes (#8698) ca10c9ec63 re add clean to diff (#8697) f00a5a6c78 do not break when component is found (#8695) 437688c18e Add yoga renames to non-v2 lua build scripts (#8693) 423301a95b Fix integer precision issues with pathID in vertex shaders (#8689) b1c0e80625 use draw proxy for scroll bar draggables (#8692) 302606642c GL fixes for Imagination PowerVR GPUs (#8684) e5879a1a5c Fix scrollbar thumb offset (#8691) 7414d20597 Sort by % diff pixels in diff.py when histogram is equal (#8683) 00e9ad43a7 fix sorting hittable components (#8690) fa8f7c6755 fix crash when dividing by 0 (#8687) cd310b1b68 Nnnn scrolling override poc part 2 (#8679) ac7c458bc7 Small Scroll fixes (#8682) 0ff13be381 Make scroll physics core objects (#8672) 9dfd01fb3a made compatable with python 9_9 (#8678) 454bc50aaf diff.py: don't count identicals as differences (#8666) c642488df3 added some changes to make building easier for unreal (#8667) 1647a7ad92 use actual sizes for calculating position offset (#8671) 599ab0eeb7 Reapply "Merge branch 'master' of https://github.com/rive-app/rive" 406a2ef952 Revert "Merge branch 'master' of https://github.com/rive-app/rive" 3c0cc1f329 skip object on animation reset if it is null (#8670) 1d2c9175d4 remove letter spacing subtraction (#8669) 96ec927371 fix fatal warnings compiler flag to use latest version (#8668) Co-authored-by: Erik <erik@rive.app>
2024-12-10 03:09:42 +00:00
We use Emscripten to build a WASM and JS file which are statically served via UNPKG similarly to how Flutter delivers the CanvasKit WASM file.