Renderer Options and Default
You can opt-in to use a specific renderer, see Specifying a Renderer. The table below outlines the available, and default, renderers for Rive’s runtimes:| Runtime | Default Renderer | Options |
|---|---|---|
| Android | Rive | Rive / Canvas / Skia (removed as of v10.0.0) |
| Apple | Rive | Rive |
| React Native | Rive | See Apple and Android |
| Web (Canvas) | Canvas2D | Canvas2D |
| Web (WebGL) | Skia | Skia |
| Web (WebGL2) | Rive | Rive |
| Flutter | No default | Rive / Flutter (Skia / Impeller) |
Rive Renderer
The Rive Renderer is a new rendering engine designed to provide better performance and visual fidelity across all platforms. It leverages modern graphics APIs and techniques to deliver high-quality rendering for Rive graphics. It also allows Rive to innovate with new features, such as Vector Feathering, which are only supported through the Rive Renderer. See our Feature Support page for more information.- Apple
- Android
- Web(JS)
- React Native
- Flutter
Starting Version
The Rive Renderer was made the default renderer in Apple runtimes starting at v6.0.0, however, we recommend installing the latest version of the dependency to get the latest updates. See the CHANGELOG for details on the latest versions.Performance
The Rive Renderer will shine best on Apple runtimes in memory usage as an animation plays out, in comparison to previous default renderers.The Rive renderer is the sole renderer for the Apple runtime.The renderer is multi-threaded per
Worker object. This means that for each Worker object, a new thread will be created to process and render the Rive graphics.Specifying a Renderer
See below for runtime instructions to enable a specific renderer.- Apple
- Android
- Web(JS)
- React Native
- Flutter
Getting Started
Options:Rive (default) / Core Graphics / Skia (deprecated in v6.0.0)Below are some notes on configuring the renderer in UIKit and SwiftUI.UIKit
Set the global renderer type during your application launch:SwiftUI
New SwiftUI applications launch with theApp protocol, but you can still add UIApplicationDelegate functionality.iOS
Create a new file and class calledAppDelegate as such, including a line to set the defaultRenderer to RendererType.riveRenderer:UIApplicationDelegateAdaptor to set the AppDelegate created above for the application delegate.macOS
Create a new file and class calledAppDelegate as such, including a line to set the defaultRenderer to RendererType.riveRenderer:UIApplicationDelegateAdaptor to set the AppDelegate created above for the application delegate.