| <div align="center"> | |
| # Vello Tests | |
| [](#license) | |
| \ | |
| [](https://xi.zulipchat.com/#narrow/channel/197075-vello) [](https://github.com/linebender/vello/actions) | |
| </div> | |
| This is a development-only crate for testing the Sparse Strips renderers across | |
| a corpus of reference images: | |
| - CPU | |
| - WGPU | |
| - WASM32 WebGL | |
| The `vello_test` proc macro will create a snapshot test for each supported | |
| renderer target. See the below example usage. | |
| ```rs | |
| // Draws a filled triangle into a 125x125 scene. | |
| #[vello_test(width = 125, height = 125)] | |
| fn filled_triangle(ctx: &mut impl Renderer) { | |
| let path = { | |
| let mut path = BezPath::new(); | |
| path.move_to((5.0, 5.0)); | |
| path.line_to((95.0, 50.0)); | |
| path.line_to((5.0, 95.0)); | |
| path.close_path(); | |
| path | |
| }; | |
| ctx.set_paint(LIME); | |
| ctx.fill_path(&path); | |
| } | |
| ``` | |
| See all the attributes that can be passed to `vello_test` in | |
| [`vello_dev_macros/src/test.rs`](vello_dev_macros/src/test.rs). | |
| ## Testing WebGL on the Browser | |
| Requirements: | |
| - on MacOS, a minimum Clang major version of 20 is required. | |
| To run the `vello_tests` suite including the WebGL tests: | |
| ```sh | |
| wasm-pack test --headless --chrome --features webgl --release | |
| ``` | |
| To debug the output images in webgl, run the same command without `--headless`. | |
| Any tests that fail will have their diff image appended to the bottom of the | |
| page. |