rive-renderer
rive-renderer copied to clipboard
Downstream repo for Rive renderer
Rive Renderer
The Rive Renderer is a vector and raster graphics renderer custom-built for Rive content, for animation, and for runtime.
This repository contains the renderer code and an example for how to interface with it directly. The code within this repository does not contain a Rive runtime. It contains the best in class concrete implementation of Rive's rendering abstraction layer, which we call the Rive Renderer.
Clone this repo
Make sure to clone this repo with submodules!
git clone --recurse-submodules [email protected]:rive-app/rive-renderer.git
Build GLFW
cd submodules/rive-cpp/skia/dependencies
./make_glfw.sh
Install Premake5
Grab the binary from the premake5 GitHub releases: https://github.com/premake/premake-core/releases/ or you can build your own for Apple Silicon:
git clone --depth 1 --branch master https://github.com/premake/premake-core.git
cd premake-core
make -f Bootstrap.mak osx PLATFORM=ARM
# binaries will be in bin/release/* put them in your path
Install Python PLY
python3 -m pip install ply
Call Premake & Build
PREMAKE_PATH="$(pwd)/submodules/rive-cpp/build" premake5 gmake2 --with_rive_text --config=release --out=out/release
cd out/release
make -j20
# run path_fiddle
./path_fiddle [/path/to/my.riv]
Build and serve for WebGL2
PREMAKE_PATH="$(pwd)/submodules/rive-cpp/build" premake5 gmake2 --with_rive_text --config=release --arch=wasm --out=out/wasm_release
cd out/wasm_release
# Ensure your emsdk_env is configured.
make -j20 path_fiddle
# serve to http://localhost:5555/
python3 -m http.server 5555
Helpful keys
-
h
/H
: add/subtract copies to the left and right (only when a .riv is provided) -
j
/J
: add/subtract copies below (only when a .riv is provided) -
k
/K
: add/subtract copies above (only when a .riv is provided) -
p
: pause runtime (for benchmarking the renderer in isolation) -
a
: toggle "atomic" mode