mirror of
https://github.com/rive-app/rive-cpp.git
synced 2026-01-18 21:21:17 +01:00
When the renderTarget doesn't support VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, we have to use an offscreen color texture instead. Previously, we would copy this offscreen texture back into the renderTarget after the render pass, which incurred a substantial amount of memory bandwidth. This PR instead transfers the offscreen texture to the renderTarget as part of the render pass, and then discards the offscreen texture, saving a fullscreen copy on TBDR architectures. Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
Rive Renderer
The Rive Renderer is a vector and raster graphics renderer custom-built for Rive content, for animation, and for runtime.
This directory contains the renderer code and an example for how to interface with it directly. It contains the best in class concrete implementation of Rive's rendering abstraction layer, which we call the Rive Renderer.
Clone the rive-runtime repo
git clone https://github.com/rive-app/rive-runtime.git
cd rive-runtime/renderer
Add build_rive.sh to $PATH
export PATH="$PATH:$(realpath ../build)"
Build & run
build_rive.sh release
out/release/path_fiddle [/path/to/my.riv]
Build & serve for WebGL2
build_rive.sh ninja wasm release
cd out/wasm_release
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