| # 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 git@github.com: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 |