mirror of
https://github.com/rive-app/rive-cpp.git
synced 2026-01-18 21:21:17 +01:00
Adding more docs and utility tasks.
This commit is contained in:
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"disasexpl.associations": {
|
||||
"**/*.c": "${workspaceFolder}/build/bin/assembly/${fileDirname}/${fileBasenameNoExtension}.S",
|
||||
"**/*.cpp": "${workspaceFolder}/build/bin/assembly/${fileDirname}/${fileBasenameNoExtension}.S"
|
||||
},
|
||||
"files.associations": {
|
||||
"type_traits": "cpp",
|
||||
"string": "cpp",
|
||||
|
||||
36
.vscode/tasks.json
vendored
Normal file
36
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [{
|
||||
"label": "run tests",
|
||||
"type": "shell",
|
||||
"command": "cd dev && ./test.sh",
|
||||
"group": "test",
|
||||
"presentation": {
|
||||
"reveal": "always",
|
||||
"panel": "new"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "gen assembly",
|
||||
"type": "shell",
|
||||
"command": "mkdir -p ${workspaceFolder}/build/bin/assembly/${fileDirname}/ && clang++ -O3 -g -std=c++17 -o ${workspaceFolder}/build/bin/assembly/${fileDirname}/${fileBasenameNoExtension}.S -Wall -fno-exceptions -fno-rtti -I${workspaceFolder}/include -S ${file}",
|
||||
"group": "test",
|
||||
"presentation": {
|
||||
"reveal": "silent",
|
||||
"panel": "new"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "disassemble",
|
||||
"command": "${command:disasexpl.show}",
|
||||
"dependsOn": ["gen assembly"],
|
||||
"problemMatcher": [],
|
||||
"presentation": {
|
||||
"reveal": "silent",
|
||||
"panel": "new"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
35
README.md
35
README.md
@@ -1,18 +1,49 @@
|
||||
# rive-cpp
|
||||
C++ runtime for Rive
|
||||
C++ runtime for Rive. Provides these runtime features:
|
||||
- Loading Artboards and their contents from **.riv** files.
|
||||
- Querying LinearAnimations and StateMachines from Artboards.
|
||||
- Making changes to Artboard hierarchy (fundamentally same guts used by LinearAnimations and StateMachines) and effienclty solving those changes via Artboard::advance.
|
||||
- Abstract Renderer for submitting high level vector path commands with retained path objects to optimize and minimize path re-computation (ultimately up to the concrete rendering implementation).
|
||||
- Example concrete renderer written in C++ with [Skia](https://skia.org/). Skia renderer code is in [skia/renderer/src/skia_renderer.cpp](skia/renderer/src/skia_renderer.cpp).
|
||||
|
||||
## Build System
|
||||
We use [premake5](https://premake.github.io/). The Rive dev team primarily works on MacOS. There is some work done by the community to also support Windows and Linux. PRs welcomed for specific platforms you with to support! We encourage you to use premake as it's highly extensible and configurable for a variety of platforms.
|
||||
|
||||
## Build
|
||||
In the ```rive``` directory, run ```build.sh``` to debug build and ```build.sh release``` for a release build.
|
||||
|
||||
## Testing
|
||||
Uses the [Catch2](https://github.com/catchorg/Catch2) testing framework.
|
||||
|
||||
```
|
||||
cd dev
|
||||
./test.sh
|
||||
```
|
||||
|
||||
In the ```dev``` directory, run ```test.sh``` to compile and execute the tests.
|
||||
|
||||
The tests live in ```rive/test```. To add new tests, create a new ```xxx_test.cpp``` file here. The test harness will automatically pick up the new file.
|
||||
|
||||
There's a VSCode command provided to ```run tests``` from the Tasks: Run Task command palette.
|
||||
|
||||
## Memory Checks
|
||||
Note that if you're on MacOS you'll want to install valgrind, which is somewhat complicated these days. This is the easiest solution (please PR a better one when it becomes available).
|
||||
```
|
||||
brew tap LouisBrunner/valgrind
|
||||
brew install --HEAD LouisBrunner/valgrind/valgrind
|
||||
```
|
||||
You can now run the all the tests through valgrind by running ```test.sh memory```.
|
||||
You can now run the all the tests through valgrind by running ```test.sh memory```.
|
||||
|
||||
## Disassembly Explorer
|
||||
If you want to examine the generated assembly code, install [Disassembly Explorer](https://marketplace.visualstudio.com/items?itemName=dseight.disasexpl).
|
||||
|
||||
A ```disassemble``` task is provided to compile and preview the generated assembly. You can reach it via the Tasks: Run Task command palette or you can bind it to a shortcut by editing your VSCode keybindings.json:
|
||||
```
|
||||
[
|
||||
{
|
||||
"key": "cmd+d",
|
||||
"command": "workbench.action.tasks.runTask",
|
||||
"args": "disassemble"
|
||||
}
|
||||
]
|
||||
```
|
||||
Reference in New Issue
Block a user