Specify a renderer to use at runtime.
Runtime | Default Renderer | Options |
---|---|---|
Android | Rive | Rive / Canvas / Skia (removed as of v10.0.0) |
Apple | Rive | Rive / Core Graphics / Skia (deprecated in v6.0.0) |
React Native | Rive | See Apple and Android |
Web (Canvas) | Canvas2D | Canvas2D |
Web (WebGL) | Skia | Skia |
Web (WebGL2) | Rive | Rive |
Flutter | Skia (other), Impeller (iOS) | Skia / Impeller |
v3.10
, Impeller has replaced Skia to become the default renderer for apps on iOS platforms and may continue to be the default on future platforms over time. As such, there is a possibility of rendering and performance discrepancies when using the Rive Flutter runtime with platforms that use the Impeller renderer that may not have surfaced before. If you encounter any visual or performance errors at runtime compared to expected behavior in the Rive editor, we recommend trying the following steps to triage:
--no-enable-impeller
flag to use the Skia renderer. If the visual discrepancy does not show when using Skia, it may be a rendering bug on Impeller. However, before raising a bug with the Flutter team, try the second point below👇master
channel. It is possible that visual bugs may be resolved on the latest Flutter commits, but not yet released in the beta
or stable
channel.RiveView
, rather than creating multiple instances of RiveView
s, or multiple RiveViewModel
s.Example: See this stress test example to see how you can override the drawing function on RiveView
to draw multiple times on the same view, with each graphic at an offset. You can switch out the renderer with the above config and test out the performance for yourself!Rive (default) / Core Graphics / Skia (deprecated in v6.0.0)
Below are some notes on configuring the renderer in UIKit and SwiftUI.App
protocol, but you can still add UIApplicationDelegate
functionality.AppDelegate
as such, including a line to set the defaultRenderer
to RendererType.riveRenderer
:UIApplicationDelegateAdaptor
to set the AppDelegate
created above for the application delegate.AppDelegate
as such, including a line to set the defaultRenderer
to RendererType.riveRenderer
:UIApplicationDelegateAdaptor
to set the AppDelegate
created above for the application delegate.