├── examples ├── headless │ ├── outputs │ │ └── .tracked │ └── Cargo.toml ├── assets │ ├── colr_test_glyphs │ │ ├── README.md │ │ └── test_glyphs-glyf_colr_1.ttf │ ├── downloads │ │ └── .tracked │ ├── splash-flower.jpg │ ├── inconsolata │ │ └── Inconsolata.ttf │ ├── roboto │ │ └── Roboto-Regular.ttf │ └── noto_color_emoji │ │ ├── NotoColorEmoji-Subset.ttf │ │ ├── NotoColorEmoji-CBTF-Subset.ttf │ │ └── README.md ├── run_wasm │ ├── Cargo.toml │ └── src │ │ └── main.rs ├── with_winit │ ├── src │ │ ├── main.rs │ │ └── hot_reload.rs │ └── README.md ├── simple │ └── Cargo.toml ├── simple_sdl2 │ └── Cargo.toml └── scenes │ └── Cargo.toml ├── vello_tests ├── current │ └── .gitignore ├── comparisons │ └── .gitignore ├── debug_outputs │ └── .gitignore ├── snapshots │ ├── .gitignore │ ├── smoke │ │ ├── layer_size.png │ │ ├── two_emoji.png │ │ ├── filled_circle.png │ │ ├── filled_square.png │ │ ├── data_image_roundtrip.png │ │ └── gradient_color_alpha.png │ ├── big_bitmap.png │ ├── big_colr.png │ ├── bitmap_undef.png │ ├── clip_blends.png │ ├── colr_undef.png │ ├── deep_blend.png │ ├── fill_types.png │ ├── funky_paths.png │ ├── little_colr.png │ ├── many_clips.png │ ├── splash.png │ ├── gradient_extend.png │ ├── image_sampling.png │ ├── little_bitmap.png │ ├── luminance_mask.png │ ├── scaled_hinted.png │ ├── simple_hinted.png │ ├── stroke_styles.png │ ├── stroke_width_zero.png │ ├── tricky_strokes.png │ ├── big_bitmap_apple.png │ ├── blurred_rounded_rect.png │ ├── image_luminance_mask.png │ ├── integer_translation.png │ ├── longpathdash_butt.png │ ├── stroke_styles_skew.png │ ├── text_stroke_width_zero.png │ ├── non_integer_translation.png │ ├── stroke_styles_non_uniform.png │ ├── image_extend_modes_bilinear.png │ ├── rounded_rectangle_watertight.png │ └── image_extend_modes_nearest_neighbor.png ├── Cargo.toml └── build.rs ├── sparse_strips ├── vello_bench │ ├── data │ │ └── .gitignore │ ├── src │ │ ├── fine │ │ │ ├── mod.rs │ │ │ └── pack.rs │ │ ├── lib.rs │ │ └── tile.rs │ ├── Cargo.toml │ ├── README.md │ └── benches │ │ └── main.rs ├── vello_sparse_tests │ ├── .gitignore │ ├── tests │ │ ├── assets │ │ │ ├── cowboy.png │ │ │ ├── rgb_image_2x2.png │ │ │ ├── rgb_image_2x3.png │ │ │ ├── rgb_image_10x10.png │ │ │ ├── luma_image_10x10.png │ │ │ ├── lumaa_image_10x10.png │ │ │ └── rgba_image_10x10.png │ │ ├── layer.rs │ │ └── opacity.rs │ └── snapshots │ │ ├── clip_clear.png │ │ ├── compose_xor.png │ │ ├── full_cover_1.png │ │ ├── mask_alpha.png │ │ ├── mix_color.png │ │ ├── mix_darken.png │ │ ├── mix_hue.png │ │ ├── mix_normal.png │ │ ├── mix_screen.png │ │ ├── clip_with_rotate.png │ │ ├── clip_with_scale.png │ │ ├── compose_clear.png │ │ ├── compose_copy.png │ │ ├── compose_dest.png │ │ ├── compose_dest_in.png │ │ ├── compose_dest_out.png │ │ ├── compose_plus.png │ │ ├── compose_src_atop.png │ │ ├── compose_src_in.png │ │ ├── compose_src_out.png │ │ ├── compose_src_over.png │ │ ├── deep_compose.png │ │ ├── filled_circle.png │ │ ├── filled_triangle.png │ │ ├── filter_flood.png │ │ ├── glyphs_filled.png │ │ ├── glyphs_scaled.png │ │ ├── glyphs_skewed.png │ │ ├── glyphs_small.png │ │ ├── glyphs_stroked.png │ │ ├── image_luma_image.png │ │ ├── image_rgb_image.png │ │ ├── image_rgba_image.png │ │ ├── mask_luminance.png │ │ ├── mix_color_burn.png │ │ ├── mix_color_dodge.png │ │ ├── mix_difference.png │ │ ├── mix_exclusion.png │ │ ├── mix_hard_light.png │ │ ├── mix_lighten.png │ │ ├── mix_luminosity.png │ │ ├── mix_multiply.png │ │ ├── mix_overlay.png │ │ ├── mix_saturation.png │ │ ├── mix_soft_light.png │ │ ├── no_anti_aliasing.png │ │ ├── oversized_star.png │ │ ├── recording_basic.png │ │ ├── stroke_scaled.png │ │ ├── stroked_circle.png │ │ ├── stroked_triangle.png │ │ ├── transparent_paint.png │ │ ├── tricky_strokes.png │ │ ├── bevel_stroked_rect.png │ │ ├── clip_single_wide_tile.png │ │ ├── clip_transformed_rect.png │ │ ├── clip_with_opacity.png │ │ ├── clip_with_translation.png │ │ ├── clip_wrong_command.png │ │ ├── compose_dest_atop.png │ │ ├── compose_dest_over.png │ │ ├── filled_aligned_rect.png │ │ ├── filled_unaligned_rect.png │ │ ├── filling_evenodd_rule.png │ │ ├── filling_nonzero_rule.png │ │ ├── filter_drop_shadow.png │ │ ├── filter_empty_layers.png │ │ ├── filter_extreme_blur.png │ │ ├── filter_nested_layers.png │ │ ├── filter_rotated_blur.png │ │ ├── filter_set_effect.png │ │ ├── filter_stroked_paths.png │ │ ├── glyphs_bitmap_apple.png │ │ ├── glyphs_bitmap_noto.png │ │ ├── glyphs_colr_noto.png │ │ ├── glyphs_skewed_long.png │ │ ├── glyphs_small_unhinted.png │ │ ├── gradient_color_alpha.png │ │ ├── gradient_padded_stops.png │ │ ├── gradient_radial_inside.png │ │ ├── image_complex_shape.png │ │ ├── image_global_alpha.png │ │ ├── image_lumaa_image.png │ │ ├── image_pad_x_pad_y.png │ │ ├── image_pad_x_repeat_y.png │ │ ├── image_reflect_x_pad_y.png │ │ ├── image_with_opacity.png │ │ ├── incorrect_filling_1.png │ │ ├── incorrect_filling_2.png │ │ ├── incorrect_filling_3.png │ │ ├── incorrect_filling_4.png │ │ ├── incorrect_filling_5.png │ │ ├── incorrect_filling_6.png │ │ ├── incorrect_filling_7.png │ │ ├── incorrect_filling_8.png │ │ ├── mask_non_isolated.png │ │ ├── mix_color_with_solid.png │ │ ├── opacity_on_layer.png │ │ ├── recording_glyphs.png │ │ ├── round_stroked_rect.png │ │ ├── strip_inscribed_rect.png │ │ ├── stroked_aligned_rect.png │ │ ├── basic_alpha_compositing.png │ │ ├── blurred_rounded_rect_none.png │ │ ├── clip_rectangle_and_circle.png │ │ ├── clip_triangle_with_star.png │ │ ├── clip_with_save_restore.png │ │ ├── complex_composed_layers.png │ │ ├── compose_non_isolated_clear.png │ │ ├── compose_non_isolated_copy.png │ │ ├── compose_non_isolated_dest.png │ │ ├── compose_non_isolated_plus.png │ │ ├── compose_non_isolated_xor.png │ │ ├── compose_wide_tile_nested.png │ │ ├── composed_layers_nesting.png │ │ ├── filled_circle_with_opacity.png │ │ ├── filled_overflowing_circle.png │ │ ├── filled_transformed_rect_1.png │ │ ├── filled_transformed_rect_2.png │ │ ├── filled_transformed_rect_3.png │ │ ├── filled_transformed_rect_4.png │ │ ├── filling_unclosed_path_1.png │ │ ├── filling_unclosed_path_2.png │ │ ├── filter_drop_shadow_corners.png │ │ ├── filter_gaussian_blur_zero.png │ │ ├── filter_transformed_blur.png │ │ ├── filter_transparent_shapes.png │ │ ├── glyphs_colr_test_glyphs.png │ │ ├── glyphs_filled_unhinted.png │ │ ├── glyphs_glyph_transform.png │ │ ├── glyphs_scaled_unhinted.png │ │ ├── glyphs_skewed_unhinted.png │ │ ├── glyphs_skewed_unskewed.png │ │ ├── glyphs_stroked_unhinted.png │ │ ├── gradient_color_alpha_unmul.png │ │ ├── gradient_linear_2_stops.png │ │ ├── gradient_linear_4_stops.png │ │ ├── gradient_linear_vertical.png │ │ ├── gradient_on_3_wide_tiles.png │ │ ├── gradient_padded_first_stop.png │ │ ├── gradient_padded_last_stop.png │ │ ├── gradient_radial_2_stops.png │ │ ├── gradient_radial_4_stops.png │ │ ├── gradient_radial_c0_bigger.png │ │ ├── gradient_radial_outside.png │ │ ├── gradient_radial_swapped.png │ │ ├── gradient_sweep_2_stops.png │ │ ├── gradient_sweep_4_stops.png │ │ ├── gradient_with_global_alpha.png │ │ ├── image_bicubic_10x_scale.png │ │ ├── image_bicubic_10x_scale_2.png │ │ ├── image_bicubic_2x_scale.png │ │ ├── image_bicubic_5x_scale.png │ │ ├── image_bicubic_identity.png │ │ ├── image_bilinear_10x_scale.png │ │ ├── image_bilinear_2x_scale.png │ │ ├── image_bilinear_5x_scale.png │ │ ├── image_bilinear_identity.png │ │ ├── image_reflect_x_reflect_y.png │ │ ├── image_repeat_x_repeat_y.png │ │ ├── image_with_transform_scale.png │ │ ├── mix_saturation_with_solid.png │ │ ├── mix_with_transparent_bg.png │ │ ├── nested_clip_path_panic_2.png │ │ ├── no_anti_aliasing_clip_path.png │ │ ├── opacity_nested_on_layer.png │ │ ├── overflowing_stroked_rect.png │ │ ├── recording_can_be_cleared.png │ │ ├── rectangle_above_viewport.png │ │ ├── rectangle_left_of_viewport.png │ │ ├── stroked_transformed_rect_1.png │ │ ├── stroked_transformed_rect_2.png │ │ ├── stroked_transformed_rect_3.png │ │ ├── stroked_transformed_rect_4.png │ │ ├── stroked_unaligned_rect.png │ │ ├── tile_clamped_off_by_one.png │ │ ├── clip_deeply_nested_circles.png │ │ ├── clip_non_isolated_outside_canvas.png │ │ ├── clip_with_linear_gradient_fill.png │ │ ├── clip_with_multiple_transforms.png │ │ ├── clip_with_radial_gradient_fill.png │ │ ├── clip_with_sweep_gradient_fill.png │ │ ├── compose_non_isolated_dest_atop.png │ │ ├── compose_non_isolated_dest_in.png │ │ ├── compose_non_isolated_dest_out.png │ │ ├── compose_non_isolated_dest_over.png │ │ ├── compose_non_isolated_src_atop.png │ │ ├── compose_non_isolated_src_in.png │ │ ├── compose_non_isolated_src_out.png │ │ ├── compose_non_isolated_src_over.png │ │ ├── filled_fully_overflowing_circle.png │ │ ├── filled_overlapping_circles.png │ │ ├── filled_vertical_hairline_rect.png │ │ ├── filled_vertical_hairline_rect_2.png │ │ ├── filter_drop_shadow_zero_offset.png │ │ ├── glyphs_skewed_long_unhinted.png │ │ ├── gradient_linear_complex_shape.png │ │ ├── gradient_linear_with_downward_y.png │ │ ├── gradient_linear_with_upward_y.png │ │ ├── gradient_linear_with_y_reflect.png │ │ ├── gradient_linear_with_y_repeat.png │ │ ├── gradient_radial_complex_shape.png │ │ ├── gradient_radial_natively_focal.png │ │ ├── gradient_sweep_complex_shape.png │ │ ├── gradient_sweep_not_in_center.png │ │ ├── gradient_with_color_spaces_1.png │ │ ├── gradient_with_color_spaces_2.png │ │ ├── gradient_with_color_spaces_3.png │ │ ├── image_bicubic_with_rotation.png │ │ ├── image_bicubic_with_translation.png │ │ ├── image_bilinear_10x_scale_2.png │ │ ├── image_bilinear_with_rotation.png │ │ ├── image_bilinear_with_translation.png │ │ ├── image_with_multiple_clip_layers.png │ │ ├── image_with_transform_identity.png │ │ ├── image_with_transform_rotate_1.png │ │ ├── image_with_transform_rotate_2.png │ │ ├── image_with_transform_skew_x_1.png │ │ ├── image_with_transform_skew_x_2.png │ │ ├── image_with_transform_skew_y_1.png │ │ ├── image_with_transform_skew_y_2.png │ │ ├── image_with_transform_translate.png │ │ ├── issue_filter_canvas_boundaries.png │ │ ├── layer_multiple_properties_1.png │ │ ├── mix_non_isolated_color_dodge.png │ │ ├── mix_non_isolated_difference.png │ │ ├── mix_non_isolated_soft_light.png │ │ ├── recording_incremental_build.png │ │ ├── stroked_unaligned_rect_as_path.png │ │ ├── triangle_exceeding_viewport_1.png │ │ ├── triangle_exceeding_viewport_2.png │ │ ├── blurred_rounded_rect_large_std_dev.png │ │ ├── blurred_rounded_rect_medium_std_dev.png │ │ ├── blurred_rounded_rect_small_std_dev.png │ │ ├── blurred_rounded_rect_with_radius.png │ │ ├── blurred_rounded_rect_with_transform.png │ │ ├── clip_rectangle_with_star_evenodd.png │ │ ├── clip_rectangle_with_star_nonzero.png │ │ ├── eo_filling_missing_anti_aliasing.png │ │ ├── fill_command_respects_clip_bounds.png │ │ ├── filter_drop_shadow_fractional_offset.png │ │ ├── filter_gaussian_blur_no_decimation.png │ │ ├── glyph_recording_outside_transform.png │ │ ├── glyphs_glyph_transform_unhinted.png │ │ ├── glyphs_skewed_unskewed_unhinted.png │ │ ├── gradient_linear_2_stops_with_alpha.png │ │ ├── gradient_linear_negative_direction.png │ │ ├── gradient_linear_spread_method_pad.png │ │ ├── gradient_linear_spread_method_repeat.png │ │ ├── gradient_linear_with_transform_scale.png │ │ ├── gradient_radial_2_stops_with_alpha.png │ │ ├── gradient_radial_focal_on_circle.png │ │ ├── gradient_radial_non_overlapping_cone.png │ │ ├── gradient_radial_spread_method_pad.png │ │ ├── gradient_sweep_2_stops_with_alpha.png │ │ ├── gradient_sweep_spread_method_pad.png │ │ ├── gradient_sweep_spread_method_repeat.png │ │ ├── gradient_sweep_with_transform_scale.png │ │ ├── image_with_transform_negative_scale.png │ │ ├── mix_compose_combined_test_matrix.png │ │ ├── mix_modes_non_gradient_test_matrix.png │ │ ├── recording_handles_offscreen_content.png │ │ ├── recording_mixed_with_direct_drawing.png │ │ ├── repeatedly_compose_to_bottom_layer.png │ │ ├── blurred_rounded_rect_with_large_radius.png │ │ ├── clip_non_isolated_deeply_nested_circles.png │ │ ├── filter_gaussian_blur_with_decimation.png │ │ ├── gradient_linear_spread_method_reflect.png │ │ ├── gradient_linear_with_transform_identity.png │ │ ├── gradient_linear_with_transform_rotate_1.png │ │ ├── gradient_linear_with_transform_rotate_2.png │ │ ├── gradient_linear_with_transform_skew_x_1.png │ │ ├── gradient_linear_with_transform_skew_x_2.png │ │ ├── gradient_linear_with_transform_skew_y_1.png │ │ ├── gradient_linear_with_transform_skew_y_2.png │ │ ├── gradient_linear_with_transform_translate.png │ │ ├── gradient_radial_center_offset_top_left.png │ │ ├── gradient_radial_center_offset_top_right.png │ │ ├── gradient_radial_non_overlapping_same_size.png │ │ ├── gradient_radial_smaller_r1_with_reflect.png │ │ ├── gradient_radial_spread_method_reflect.png │ │ ├── gradient_radial_spread_method_repeat.png │ │ ├── gradient_radial_with_transform_identity.png │ │ ├── gradient_radial_with_transform_rotate_1.png │ │ ├── gradient_radial_with_transform_rotate_2.png │ │ ├── gradient_radial_with_transform_scale.png │ │ ├── gradient_radial_with_transform_skew_x_1.png │ │ ├── gradient_radial_with_transform_skew_x_2.png │ │ ├── gradient_radial_with_transform_skew_y_1.png │ │ ├── gradient_radial_with_transform_skew_y_2.png │ │ ├── gradient_radial_with_transform_translate.png │ │ ├── gradient_sweep_spread_method_reflect.png │ │ ├── gradient_sweep_with_transform_identity.png │ │ ├── gradient_sweep_with_transform_rotate_1.png │ │ ├── gradient_sweep_with_transform_rotate_2.png │ │ ├── gradient_sweep_with_transform_skew_x_1.png │ │ ├── gradient_sweep_with_transform_skew_x_2.png │ │ ├── gradient_sweep_with_transform_skew_y_1.png │ │ ├── gradient_sweep_with_transform_skew_y_2.png │ │ ├── gradient_sweep_with_transform_translate.png │ │ ├── image_with_transform_scale_and_translate.png │ │ ├── image_with_transform_scaling_non_uniform.png │ │ ├── triangle_above_and_wider_than_viewport.png │ │ ├── clip_non_isolated_rectangle_with_star_evenodd.png │ │ ├── filter_varying_depths_clips_and_compositions.png │ │ ├── gradient_linear_with_transform_negative_scale.png │ │ ├── gradient_radial_center_offset_bottom_left.png │ │ ├── gradient_radial_center_offset_bottom_right.png │ │ ├── gradient_radial_non_overlapping_c0_larger.png │ │ ├── gradient_radial_non_overlapping_c0_smaller.png │ │ ├── gradient_radial_with_transform_negative_scale.png │ │ ├── gradient_sweep_with_transform_negative_scale.png │ │ ├── recording_can_be_repeatedly_executed_in_layers.png │ │ ├── recording_is_executed_at_recorded_transform.png │ │ ├── recording_is_executed_with_multiple_transforms.png │ │ ├── gradient_linear_with_transform_scale_and_translate.png │ │ ├── gradient_linear_with_transform_scaling_non_uniform.png │ │ ├── gradient_radial_with_transform_scale_and_translate.png │ │ ├── gradient_radial_with_transform_scale_non_uniform.png │ │ ├── gradient_sweep_with_transform_scale_and_translate.png │ │ └── gradient_sweep_with_transform_scale_non_uniform.png ├── vello_cpu │ ├── src │ │ └── fine │ │ │ └── common │ │ │ ├── mod.rs │ │ │ └── gradient │ │ │ └── linear.rs │ ├── examples │ │ ├── wasm_cpu │ │ │ ├── README.md │ │ │ ├── src │ │ │ │ └── main.rs │ │ │ └── Cargo.toml │ │ └── winit │ │ │ └── Cargo.toml │ └── LICENSE-MIT ├── vello_api │ ├── src │ │ └── lib.rs │ ├── Cargo.toml │ └── LICENSE-MIT ├── vello_example_scenes │ ├── README.md │ ├── Cargo.toml │ └── LICENSE-MIT ├── vello_sparse_shaders │ ├── src │ │ └── lib.rs │ ├── Cargo.toml │ └── LICENSE-MIT ├── vello_hybrid │ ├── examples │ │ ├── winit │ │ │ ├── Cargo.toml │ │ │ └── README.md │ │ ├── wgpu_webgl │ │ │ ├── README.md │ │ │ ├── src │ │ │ │ └── main.rs │ │ │ ├── tests │ │ │ │ └── webgl.rs │ │ │ └── Cargo.toml │ │ └── native_webgl │ │ │ ├── README.md │ │ │ ├── src │ │ │ └── main.rs │ │ │ ├── Cargo.toml │ │ │ └── tests │ │ │ └── webgl.rs │ ├── src │ │ └── render │ │ │ └── mod.rs │ ├── LICENSE-MIT │ └── CHANGELOG.md ├── vello_dev_macros │ └── Cargo.toml ├── vello_common │ ├── src │ │ └── blurred_rounded_rect.rs │ └── LICENSE-MIT └── vello_toy │ ├── Cargo.toml │ └── README.md ├── doc └── images │ └── piet-gpu-diagram.jpg ├── rustfmt.toml ├── vello_shaders ├── shader │ ├── permutations │ ├── shared │ │ ├── cubic.wgsl │ │ ├── tile.wgsl │ │ ├── clip.wgsl │ │ ├── bump.wgsl │ │ ├── bbox.wgsl │ │ ├── util.wgsl │ │ ├── transform.wgsl │ │ └── segment.wgsl │ ├── bbox_clear.wgsl │ ├── path_count_setup.wgsl │ ├── path_tiling_setup.wgsl │ ├── UNLICENSE │ ├── pathtag_reduce.wgsl │ └── pathtag_reduce2.wgsl ├── src │ └── cpu │ │ ├── path_count_setup.rs │ │ ├── bbox_clear.rs │ │ ├── path_tiling_setup.rs │ │ ├── pathtag_reduce.rs │ │ ├── backdrop.rs │ │ ├── pathtag_scan.rs │ │ └── draw_reduce.rs └── LICENSE-MIT ├── image_filters └── vello_filters_cpu │ ├── src │ └── lib.rs │ ├── Cargo.toml │ └── LICENSE-MIT ├── .gitattributes ├── .gitignore ├── vello_encoding ├── src │ ├── binning.rs │ ├── monoid.rs │ └── glyph.rs ├── Cargo.toml └── LICENSE-MIT ├── .cargo └── config.toml ├── .taplo.toml ├── .clippy.toml ├── AUTHORS ├── xtask ├── README.md └── Cargo.toml ├── .typos.toml ├── LICENSE-MIT └── vello └── LICENSE-MIT /examples/headless/outputs/.tracked: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vello_tests/current/.gitignore: -------------------------------------------------------------------------------- 1 | *.png 2 | -------------------------------------------------------------------------------- /sparse_strips/vello_bench/data/.gitignore: -------------------------------------------------------------------------------- 1 | *.svg 2 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/.gitignore: -------------------------------------------------------------------------------- 1 | diffs 2 | -------------------------------------------------------------------------------- /vello_tests/comparisons/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /vello_tests/debug_outputs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /vello_tests/snapshots/.gitignore: -------------------------------------------------------------------------------- 1 | *.oversized.png 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /examples/assets/colr_test_glyphs/README.md: -------------------------------------------------------------------------------- 1 | Font is taken from https://github.com/googlefonts/color-fonts -------------------------------------------------------------------------------- /examples/assets/downloads/.tracked: -------------------------------------------------------------------------------- 1 | This directory is used to store the downloaded scenes by default 2 | -------------------------------------------------------------------------------- /doc/images/piet-gpu-diagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/doc/images/piet-gpu-diagram.jpg -------------------------------------------------------------------------------- /examples/assets/splash-flower.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/examples/assets/splash-flower.jpg -------------------------------------------------------------------------------- /examples/assets/inconsolata/Inconsolata.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/examples/assets/inconsolata/Inconsolata.ttf -------------------------------------------------------------------------------- /examples/assets/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/examples/assets/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /vello_tests/snapshots/smoke/layer_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/vello_tests/snapshots/smoke/layer_size.png -------------------------------------------------------------------------------- /vello_tests/snapshots/smoke/two_emoji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/vello_tests/snapshots/smoke/two_emoji.png -------------------------------------------------------------------------------- /vello_tests/snapshots/smoke/filled_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/vello_tests/snapshots/smoke/filled_circle.png -------------------------------------------------------------------------------- /vello_tests/snapshots/smoke/filled_square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/vello_tests/snapshots/smoke/filled_square.png -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | use_field_init_shorthand = true 2 | newline_style = "Unix" 3 | # TODO: imports_granularity = "Module" - Wait for this to be stable. 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/smoke/data_image_roundtrip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/vello_tests/snapshots/smoke/data_image_roundtrip.png -------------------------------------------------------------------------------- /vello_tests/snapshots/smoke/gradient_color_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/vello_tests/snapshots/smoke/gradient_color_alpha.png -------------------------------------------------------------------------------- /examples/assets/noto_color_emoji/NotoColorEmoji-Subset.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/examples/assets/noto_color_emoji/NotoColorEmoji-Subset.ttf -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/tests/assets/cowboy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/sparse_strips/vello_sparse_tests/tests/assets/cowboy.png -------------------------------------------------------------------------------- /examples/assets/colr_test_glyphs/test_glyphs-glyf_colr_1.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/examples/assets/colr_test_glyphs/test_glyphs-glyf_colr_1.ttf -------------------------------------------------------------------------------- /examples/assets/noto_color_emoji/NotoColorEmoji-CBTF-Subset.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/examples/assets/noto_color_emoji/NotoColorEmoji-CBTF-Subset.ttf -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/tests/assets/rgb_image_2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/sparse_strips/vello_sparse_tests/tests/assets/rgb_image_2x2.png -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/tests/assets/rgb_image_2x3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/sparse_strips/vello_sparse_tests/tests/assets/rgb_image_2x3.png -------------------------------------------------------------------------------- /vello_tests/snapshots/big_bitmap.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dbbb7dfcbd868f2e047fcbe4e9a6923ca01f1b8e8f77840a4e0570e8aad53c56 3 | size 8873 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/big_colr.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e6818d30d7ac531c62c5131c7bededf9143b0e07ccb321eae68a5abfaa3e54b1 3 | size 10144 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/bitmap_undef.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f6ad9b23c2e46ffcb23839d7b7468e5052564839fbc111a380e50c5a745c601a 3 | size 68 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/clip_blends.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d97c772959dce64ac9ace6e7adf141489153d538ffdf8cafc040be838b34eba2 3 | size 445 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/colr_undef.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f6ad9b23c2e46ffcb23839d7b7468e5052564839fbc111a380e50c5a745c601a 3 | size 68 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/deep_blend.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d6e7226ea4fee23c5dbc240b2da00b143e5234acae143baa31735a479f676d4b 3 | size 236 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/fill_types.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:75d59d57f7650b68b882c772f55ec9a9745a6e5175c735fa4a233739ec4490e6 3 | size 27765 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/funky_paths.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0d92d7633f699b1bc98a212f88e3cc4961b155d523f3e2ca39de059699e79323 3 | size 2310 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/little_colr.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c79824aeb9445f21d7e7e7dc731390b6e9ba50b7531cd7f67bca8b8cce9c97d0 3 | size 1351 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/many_clips.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5a7090a4f807af400ddfc7e5e2467879e1574a23189741d1ed4cea5f957972d3 3 | size 14475 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/splash.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:988cd8820203c7de4824a83fdcbd4553bd11845c818250709f5e5909f2ede6e9 3 | size 49776 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/tests/assets/rgb_image_10x10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/sparse_strips/vello_sparse_tests/tests/assets/rgb_image_10x10.png -------------------------------------------------------------------------------- /vello_tests/snapshots/gradient_extend.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f8b12df14a0bc1c8c2a5de0c769fe49132e7452c816060fa07fa74da15c798f3 3 | size 11227 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/image_sampling.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:56643b6de0979b1f46b728da613b59e53aa1f236f4da815ebf48a67911f8d722 3 | size 17144 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/little_bitmap.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6c15d1afcadc18fa6fcd262f5d699b7c1894ca4725dd5cfff489f13b51051a03 3 | size 759 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/luminance_mask.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:af11a41dc1b174ddb89d414bdc72673b3fcd8350ffdbecfc66142dab45873de5 3 | size 268 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/scaled_hinted.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:be1e44851141a0b1f55761cc68decb8ff3212a7d43a3610387f83e22f8d44a03 3 | size 1015 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/simple_hinted.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a9a10c9c4da6dd502b7e0228e911aa5f2ae35b76dd6b1597a6b889a91c2c0071 3 | size 647 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/stroke_styles.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8fba100d2e427b14c86ebe22e5dc83dc93c78ab7962492dba84bc1f06dc5a780 3 | size 42301 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/stroke_width_zero.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3ff82360a2b7fdc3f7d803c62a73bbdb8f16b141eeed52e438e3486f542db558 3 | size 70 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/tricky_strokes.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d6417c4427c6766f9688bca3f5b4ca6bfb8c4b8e8e77666dd799a0d6ddbc1fa8 3 | size 17374 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/tests/assets/luma_image_10x10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/sparse_strips/vello_sparse_tests/tests/assets/luma_image_10x10.png -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/tests/assets/lumaa_image_10x10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/sparse_strips/vello_sparse_tests/tests/assets/lumaa_image_10x10.png -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/tests/assets/rgba_image_10x10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linebender/vello/HEAD/sparse_strips/vello_sparse_tests/tests/assets/rgba_image_10x10.png -------------------------------------------------------------------------------- /vello_tests/snapshots/big_bitmap_apple.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:94ac356a56c7b0f31036bdab49a9da927aab8ff24062216e87043014fd2236e8 3 | size 13305 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/blurred_rounded_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:49558756e3ff3a5f44881956f74ec047fd74cf5c91655b541cc36f8d9a03ade4 3 | size 19249 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/image_luminance_mask.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cc1fa4ec6bca0be8a70b3bc3e3dff7847b90817e67c6e225c5246690a072f63c 3 | size 49877 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/integer_translation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:be1c8b6ed42626e883312d9687fb8d0493ac76cdb394313750968f6a3d469a0a 3 | size 657 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/longpathdash_butt.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2551028a04ebc72038ae089963f768c4d6cdd9084235807538ee7a88c0c6a57c 3 | size 13619 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/stroke_styles_skew.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5ee32924ba9a733d648687bd0aaab467c8ea33cf7209ed117096255eafa257ab 3 | size 44076 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/text_stroke_width_zero.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5c55b36a187e551170e375a72791878ea321ec1edb7c1a6bf69d6ca403f1ccc4 3 | size 68 4 | -------------------------------------------------------------------------------- /vello_shaders/shader/permutations: -------------------------------------------------------------------------------- 1 | pathtag_scan 2 | + pathtag_scan_large 3 | + pathtag_scan_small: small 4 | fine 5 | + fine_area 6 | + fine_msaa8: msaa msaa8 7 | + fine_msaa16: msaa msaa16 8 | -------------------------------------------------------------------------------- /vello_tests/snapshots/non_integer_translation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:07ced116645b718c60973a9158c1739cec82b1b223a84c1a43c1ac4c9e477418 3 | size 657 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/stroke_styles_non_uniform.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:131d38a1afd1fdee42705e7911ada6288f7cd592c34370b244b1c05aa6725755 3 | size 42732 4 | -------------------------------------------------------------------------------- /image_filters/vello_filters_cpu/src/lib.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! A library of image filters which run on the CPU. 5 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_clear.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5df0da52aaba923344202c1e30e377e11cce5ceef303d4dc1c460078637e908c 3 | size 98 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_xor.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1aa13d91a796f3dc6d90a0f6588ba1ea510ab8c91000a7994dd42be8509e9e60 3 | size 129 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/full_cover_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:be89580e1e064c90f7773de4442a2dd105c0d2200f3000160de2f07246e20f06 3 | size 74 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mask_alpha.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b4e33e8ea13c90ad52cd41e5921eaad3805f88102fbd488cdbcb76cb677151fd 3 | size 238 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_color.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:de8d4f9ed15ae0f074021d21670eba70c9e8390ae1b5a4b44bc6c71521982685 3 | size 4624 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_darken.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:17b943cc82ec9eebd93a735498308deeb791d7dcf054d77576ca6cb81c696d5c 3 | size 4021 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_hue.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:55739c0cbab808b79d2e42432d4dd55ed8a8a75a5136d17561b7e6525b569a13 3 | size 4705 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_normal.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7b78fab50fdc988b329b02556aa92bb1dd95d246589c012be9de47bf931c7b55 3 | size 3112 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_screen.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a8c4b2f4020c4a17b0a582e1ec9783211a952cf2ac36f6dde235abfac4167e41 3 | size 4038 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/image_extend_modes_bilinear.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:757f96f30df7885da11f4f3c2bbeb7434e796aeb654cfc62a6de3e86c0100cce 3 | size 18810 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/rounded_rectangle_watertight.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cda5c1c06f76b30a362e0dd7e6dab02b769782e68b49dbe806f1257ad363ebe9 3 | size 183 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_with_rotate.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6635e2a8264933d03e800c14cd366fb48881df3d82754a2aca54ababf1bd352c 3 | size 352 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_with_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:37bce430184b186b7ce1e3c002b0c3595ee3c0ad79b92b8ceb05a5347a39d1e9 3 | size 125 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_clear.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:56f57423e0ff37d0284ae02f3dfa6ceffad893302f86b5aa4d17dabb5ba1b25d 3 | size 82 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_copy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:921a77336d03383eeeae186907d7b322849c0a67299d8c6dc749321426ba410c 3 | size 103 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_dest.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:059e2689072418af7aaffffd9321234093c437e0e3df37ae91acc95d149d118a 3 | size 102 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_dest_in.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:41116f36e630dceb4549ab929872b94193aa8f08380ec518c4b7733396a9638f 3 | size 103 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_dest_out.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:91ca22bf393e8221e814107839fed2d57cf62b456e8438a7cdf43857270939a7 3 | size 106 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_plus.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1aa13d91a796f3dc6d90a0f6588ba1ea510ab8c91000a7994dd42be8509e9e60 3 | size 129 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_src_atop.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:feb33331a1d8644178cd753657f610777c5186a84e981c323955d7424ee33ce0 3 | size 120 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_src_in.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3eaf0202a94d482dfc475a6f273644b3c00d4b1e7e703fe43fb88034b5f64689 3 | size 103 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_src_out.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4ed6a4401157e7aa1522c9b4f81d53081dec364022a55961d3675b7b41e49c27 3 | size 108 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_src_over.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:370d186540ce5c7b9236acb544032a738584cdd7b352b8a8ebfc6ebd2d5934a6 3 | size 121 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/deep_compose.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:11fe1729aa2d2ed870c02294b2bd8358ea36906c0592e9cbaecdfdf3ff4c1d2f 3 | size 1850 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_circle.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:398192d81c78a385cd8f129e5564374ecd83de97b7d92d4d2fd33ac84f338c62 3 | size 651 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_triangle.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7ca969d2d1ef83e8290fc25de021a69e0b9fac7fe32aacc7a2c682f546d9f71b 3 | size 260 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_flood.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2c18a68085696abc8230f878677137a3152ee77df121069623a0395a21f2f241 3 | size 1026 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_filled.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d04433f79b627b11a8c0d67f3699c3fb3ef81d3485b50a07a234815be886b4bf 3 | size 2409 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_scaled.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e534019a6743bc3624712b5f199e9ed3b561a51eaf39e92f4fffbfb55132fddc 3 | size 2384 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_skewed.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6a21c3467032cb8676bf4f61314b8cde596b112878c36cc2f9307e853041c515 3 | size 3163 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_small.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:09cee718b28686b4a00068e9e419cb8b5d9b0d12816312e38c0402aa707e2e2d 3 | size 647 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_stroked.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:488ec752e4248c18edcdf44e5707108f99e7a211efb503fe647f7bd713ecb2a0 3 | size 3326 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_luma_image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:39de8f5a43bc96f0309e363293fbb35f37d19a1a199044fc55306292fd174dd8 3 | size 152 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_rgb_image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8742a1ddbbbfadb84df8d7520989fec1472328d0cc6e9c300d421a17277a442d 3 | size 152 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_rgba_image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1b95b70ff1685b84e98b8b43eca5750b71497757fcc8f007a97d2a979ac5d23e 3 | size 154 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mask_luminance.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fffe5139b6ad63b2b7251c97f19851607a9617d84c3ba733f991e8d5c94c2f32 3 | size 263 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_color_burn.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9d6962fd98ea18eef745df863babcc63b4164d126f667b2e00c9349a189999c9 3 | size 4033 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_color_dodge.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a4307d77bbb1e8416fa4af158c6d451ddab6179f7f75e5d3e85fc7adb8fa1ce0 3 | size 3986 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_difference.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b0defe1ea8e8ddc9038d1992f5d207d0441c6ec7b4589650902ca90f78493d61 3 | size 4584 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_exclusion.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f2ce363b588972c9debab113b929c2f9287939ae4dceba8bf11eb97d670353a6 3 | size 4436 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_hard_light.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c3aa1fe2316ec2ad1df4ce7863853420b49d5fb0f29011461b09829ea6855992 3 | size 3674 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_lighten.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:77f33456014a0ff432da86d26c899990e36db3867da1d4b9ba8555cf003b3765 3 | size 3962 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_luminosity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:822e16380c4d79396ae72ba67045658be52ab8f8796033d32e86de498516f800 3 | size 4076 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_multiply.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e19c5e256131360602d5b2dc7c8b1aacd572aa315a9ae77e792ad42602239f80 3 | size 4188 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_overlay.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b881c92de93cfbc5f337e8647b166d60cf32dedb3e6b4b00db8126b73ec85cc3 3 | size 4222 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_saturation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5034012b76d5a7f6e30189af67258bcde179a45dce77f11f817d39058a794309 3 | size 3483 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_soft_light.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:49afb9596a273043eb669ac4b015ad705fba78eb0e5b9ac7ae35c1a2ba0ccdf0 3 | size 4525 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/no_anti_aliasing.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3ed40b7670c55e26354ab307f5e5fc9ae69536eca878c26091d0fed189f6ecf8 3 | size 238 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/oversized_star.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5cb3e3ec6a1f047c2e9c805a2cc7ead68660ad3ebb4dc141010746d2a485550a 3 | size 1770 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/recording_basic.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a993966cca4c8b4ac88d1c3766e1c679dab24dc92e780f357c1b6635bc657c8d 3 | size 175 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/stroke_scaled.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:065eef551c1535fc4e84dabb57b7ceab415b1c30afe56755e00066c378e338bc 3 | size 1426 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/stroked_circle.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7ed2d0d6a3285f8778ac4a8e383e4e9db8155f5c21fe1ff416a43c76958fd5a8 3 | size 1000 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/stroked_triangle.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:17a84ac769d18e19602f2c3fcd9e78757ef24b43b405a5397ec8e70429171c7a 3 | size 364 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/transparent_paint.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5df0da52aaba923344202c1e30e377e11cce5ceef303d4dc1c460078637e908c 3 | size 98 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/tricky_strokes.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:966272c249a8020d10a17aa9a133fdc3790ed467d5a42e7db475db626be01ecc 3 | size 35009 4 | -------------------------------------------------------------------------------- /vello_tests/snapshots/image_extend_modes_nearest_neighbor.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:41a5a145306bd455947ad2686312ae6d2b7f236c4ba0519c42f992d43cc32cb9 3 | size 911 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/bevel_stroked_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b91138ddaaeea2cb5ddead2021b09c5979a643a930f5b36d26e65bca8ca4421e 3 | size 140 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_single_wide_tile.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0e132702668d75143d7e60789ee0bd1b909f40f367dd6869f6a6173a72c7b281 3 | size 106 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_transformed_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a8aaf43c78d67053aa2c4103af4917ebf986dfafc5ba76305eb63846306074e8 3 | size 308 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_with_opacity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7391f11d02b89498a76ad22ceceb719b5d5ff3d857c4dc3f705bcb40667b5d98 3 | size 131 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_with_translation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9dda4f0c1780b682f18c1f1c028302e735bd417478fb9e071351ed3c6dd78a8e 3 | size 125 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_wrong_command.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d11640e163ed8ad96c865a5139112d26e43b5538753330a4d75580975fae39ca 3 | size 391 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_dest_atop.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d2f43ba78eb5ae968b17658a3ef53046e318dfe51af88e1a5e447d8464ee51dd 3 | size 125 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_dest_over.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c492c6f7211581277324a1ed431f2314d3f20b7549c6e9efe3fa070eed5bb1f7 3 | size 130 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_aligned_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3a2ca4e040b4ad21e0e9fa66686d3adbec1f0146c9a99b4e962e6a716a23a9cb 3 | size 94 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_unaligned_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4aa25a278f8fc9101f42f2b1ff44b69e64308cd4e72abb8aa9b86b032e3e2984 3 | size 108 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filling_evenodd_rule.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2600bf4b5b2aef9495e2dfac6b1bc18b834139206694a8c585971d55495114a2 3 | size 840 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filling_nonzero_rule.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bdf5f6a7e865d1cafed4e9393c56c2bc596328257f3274a200c94356ebea73c9 3 | size 723 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_drop_shadow.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d970d915cf7ac1bc4f29bd78a56a8871b3d61141173b9108206cd317972e95c3 3 | size 3920 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_empty_layers.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:56f57423e0ff37d0284ae02f3dfa6ceffad893302f86b5aa4d17dabb5ba1b25d 3 | size 82 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_extreme_blur.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f14569d9b529376bb49098e8ad7ecc2d2445b7aaed2e5aa8b65ff97749655768 3 | size 2122 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_nested_layers.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c5076b68ff83e48b932d0fcf723ab171e3ee03e5903894dee5fd1230e0fe9260 3 | size 1893 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_rotated_blur.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a356226792c255770e44b5730c49a7d4a22eb91d84d7fcebb9b7fefdde1d8e8a 3 | size 3768 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_set_effect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2a6976c4a8b10a326f4010fa6ffe5f29bb80cdc288fd32757a73b9241fd19ed0 3 | size 1992 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_stroked_paths.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c48d8d1f46c14683eb7bda42e50d9f899cc881f34bf0d9f40665f72fb269735f 3 | size 856 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_bitmap_apple.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:63f1b46d7f1fb05972aef00ac06798751e3ffba0d6112facc333e81977a3fcbd 3 | size 14019 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_bitmap_noto.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:42c171625da5fcbbb9037fc45ec81c884abbda617bea8b8f41496f60456e3a78 3 | size 10033 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_colr_noto.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ed554945b6cb845bdaa7d958e31e0ea22932f1ceb6649a4faa6e113d0c4594a5 3 | size 9918 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_skewed_long.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e9889d20e42612d8945337ce9369736bc599b9c907320a8a7f975d56e40ce845 3 | size 5791 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_small_unhinted.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0bb9c0256beeb0e16064d453b52418eaec4d5e27a5d4ecf364f46c6e5f77f568 3 | size 749 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_color_alpha.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0df0449cb22aa9e55380c790f9ff73dd0a398f32bbc830de119259d470fc2c07 3 | size 162 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_padded_stops.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:48fde0245d49bf33f0be27cb382063eacb617aa33a32d5208d2aae38bb22d763 3 | size 258 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_inside.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8faffe06b314cc68315b3e2265c79ef5464f5701fbbe07ba07352db5b5434566 3 | size 86 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_complex_shape.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:60a710540050d9492787a3393575c5bc2c903f9c99f0e6cf803a5d647b655ad0 3 | size 1199 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_global_alpha.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:80361dd8b6b60829419f5d6b413536b38cb707b5a59c752f50b7b1dd76ac53a9 3 | size 152 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_lumaa_image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e0bdb672b8d45eb81d023039f34fb54c3e594c094e9b8463b9d2618ba9d9bb18 3 | size 154 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_pad_x_pad_y.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:385122f028251918f717348450dd3369b4cd8f5c695523c3335dfc5cbad3d50d 3 | size 141 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_pad_x_repeat_y.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aeec94e34aa0ab79eeab6a81fb85943dc74b1f7aad2dc1062567b4a6750245c6 3 | size 148 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_reflect_x_pad_y.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d580452ab65aaf697145866a3f332eb0a6cfe9d9aec379a06ae098d351da1957 3 | size 149 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_opacity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:001350ccad11b3120dbf2b44350734ac145c5a41e277c281a5da2969e4e13001 3 | size 152 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/incorrect_filling_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4213f969a73ad625a16ddd1a91988da482cdbcad760288b8526d594afa464dd0 3 | size 103 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/incorrect_filling_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:33425230e99ebb2401c017bc1a8ff9c2ae8df30ce6268333afcffaf0ea50b60c 3 | size 96 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/incorrect_filling_3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5d14df7a3bbb91d23a7d25ea58895616418310f3474e92cd87caa13f66d25562 3 | size 111 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/incorrect_filling_4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:40cb96fd76c9da7939f49485b8b702b6ee10aa27dd653b69adf172c15507fde5 3 | size 93 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/incorrect_filling_5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1f8d5d6a6618636c8fb64fb4f630559817c6d8a45137e705e81f031b17b2b478 3 | size 91 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/incorrect_filling_6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1f8d5d6a6618636c8fb64fb4f630559817c6d8a45137e705e81f031b17b2b478 3 | size 91 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/incorrect_filling_7.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:32b9440eb7b2f11776896ed7651f4101f03cb9d5c743392b305ca7a844610fba 3 | size 90 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/incorrect_filling_8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1f8d5d6a6618636c8fb64fb4f630559817c6d8a45137e705e81f031b17b2b478 3 | size 91 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mask_non_isolated.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fffe5139b6ad63b2b7251c97f19851607a9617d84c3ba733f991e8d5c94c2f32 3 | size 263 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_color_with_solid.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5c6bccf8858565393aa0d8443ae46549ab75c3aa06c7a6a9fc3dbb3819f57b3d 3 | size 104 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/opacity_on_layer.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:70a1ccddcc88cb35dc49cf9fdb5cbc884b5fae92c2d49f8232f705010b44e6a4 3 | size 1256 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/recording_glyphs.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d04433f79b627b11a8c0d67f3699c3fb3ef81d3485b50a07a234815be886b4bf 3 | size 2409 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/round_stroked_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:df1d34cd3229747da2b22886d5c745c0ca51e5f32eda725ae4dffc1e1413d11b 3 | size 134 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/strip_inscribed_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6daccaec096ae9f6c2926d31a545eaf29059a423262e7d9ec641987c0c126bf4 3 | size 106 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/stroked_aligned_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:65e55dd01cfbb06d05562adf34dbd1e95fda6898ab797da96f8ed7fef6c93551 3 | size 101 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/basic_alpha_compositing.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b2ddfc31ec5ae52ee604ac88c1cdc921a5b6e3b082984f25f5ce3877931a3a99 3 | size 136 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/blurred_rounded_rect_none.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:645af102d301dc098f4447514bed87a9cde8a9a921f381c9068b78e8b82af614 3 | size 103 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_rectangle_and_circle.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1cee5aa5723d74c18e84d2df3c33d86a33c2e0fb41d6d1187b8700865e383e00 3 | size 730 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_triangle_with_star.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:11eadc9827bfdc3c92d162004266e0bdacb0391f0593e86e37e6be559d7b0876 3 | size 1516 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_with_save_restore.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:88cafc7c2956bc493b78c4402ee2267ac753ee85155dd67013d4dd93c958dc34 3 | size 373 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/complex_composed_layers.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2eb78c87a22193a0df4b91230c86ed583db0c7658cf2a50fe4f7b04c44df97b1 3 | size 3658 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_clear.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1162cd4baa80c52c219771936b9f2bbc8f2eb4f4f6ee6b4cbadff39aa6df0401 3 | size 162 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_copy.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1da340de40c66d16545be38bd3735bcf219c721c4a8a336af24792ec1abcb3d8 3 | size 193 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_dest.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4d71814329ebba6b5a2113cddfacf18cf4d5a84a4a5a9ec3c5849b5c9d389ffe 3 | size 126 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_plus.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:12df58a3e0d230eae0ea03356fef543d598bfe3ba20083fd1f36d760bd7e95a0 3 | size 209 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_xor.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:744a10a3cb8e461434c0e4b7ebc85b9a8013a52e692f1158f36fbe5e91a11661 3 | size 212 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_wide_tile_nested.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f1a1ce220e274058046d90d9b07d436417c891a44cc9577dd759ae9f8ce1a026 3 | size 92 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/composed_layers_nesting.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5d9cabed0151a61bc11b40f4641392636e891818a976eb63ec46cdd577e0a2b6 3 | size 99 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_circle_with_opacity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:63b858440d85ea17eaa2671c57daec93af132c2da44d240eeae4de048e1dc717 3 | size 634 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_overflowing_circle.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:405459f46441075eeabeb602772bf72573be75c1bbfaff338854d49f918964b0 3 | size 583 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_transformed_rect_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c4ffe18872d99224fa7cb98e9d381448a42257dd7ab465421edb01a8fdb9b736 3 | size 92 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_transformed_rect_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c4ffe18872d99224fa7cb98e9d381448a42257dd7ab465421edb01a8fdb9b736 3 | size 92 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_transformed_rect_3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3e7d4422bda98262f9ce1038f6d7be2d2f8b059f20aaade04051d28bd9082c7f 3 | size 94 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_transformed_rect_4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:838a7575eabd073ebf6bb4f6dcfd26d1d447e650be9e65e056c9be511f99b74c 3 | size 133 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filling_unclosed_path_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3a89a3e8cfc432077b9b03fde0d3d3a9d1791a6ef6b15f4d1a86deb8d78f1f0a 3 | size 198 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filling_unclosed_path_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ac02e9501d077fa6cd57bf7913324f87645cd8519bd1982243296b00e7b38fc6 3 | size 196 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_drop_shadow_corners.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2fb6670a42d1f0bb16e1ccf2187cb386af6ec1e3dd9687c9434e1af5891e95f2 3 | size 963 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_gaussian_blur_zero.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0ecec48e1e3cf7c746b5c56c66a9150d1234ddcab238e63198055f33ab75b6e0 3 | size 103 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_transformed_blur.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7b4dd2aedca588e0aa3449e8071a48bb3aaf28a965c72f65e9ef9b75afe7187b 3 | size 3902 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_transparent_shapes.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1b2b9415f2cd3393923bb95a243cb918c9a11a7901c3cec2f0af299829e484dc 3 | size 1616 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_colr_test_glyphs.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:90e305c058485d609c0493287ee66baf4b59ef7a526f9f402a9e12c29f4d88b7 3 | size 122914 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_filled_unhinted.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0d8978f01cd3a2ddb2ebc266b2e7253c893ed6b5d587ad970c8379997ee8e6ee 3 | size 2530 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_glyph_transform.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:417a56a235811505fd50afb0155f6d25f49b41069a42aba436d7cac6fb131cb9 3 | size 2200 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_scaled_unhinted.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4e0b175c7d284cc6f8bacd7def7f05b4b94c169844a088ed80ad79e0d3893aca 3 | size 2529 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_skewed_unhinted.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3023eb2693edba4081811430b029c3d6410033b9d9c4819c024368f3125b2ddc 3 | size 3307 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_skewed_unskewed.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fbee1f50a10a7da10770a12e74eda22a06d067d1b235e77e5f91819ddfe079a7 3 | size 2468 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_stroked_unhinted.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1d8debf5601b03b5ab18ccb94909ea7c811a3336f7605ca1b3d7a4eab041bf21 3 | size 3405 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_color_alpha_unmul.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:abdcde1d89e80b4b9f07e4834b6d1883e976404b95522e206595f4394c16815a 3 | size 299 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_2_stops.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f76cbe522958a3f9d85d32e39ef5823cf6d57b21cf35c56d453ee71883456885 3 | size 240 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_4_stops.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7cb03ba38a35f2bc4c53fe73c2e8339da7e6b4278a4de4bad4f99596cb83fd1a 3 | size 283 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_vertical.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8d94455fef04f0caa16ce2b8b0668be7aa32ac751c692c80dce72d17751819f6 3 | size 272 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_on_3_wide_tiles.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:13982dcae03d3472858e9662b7ac28aa861c5ac23d3d1ed30c27f251f17249b7 3 | size 923 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_padded_first_stop.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3f71d89af1bb009bffffb04e75ae640afc8a314eed06fcf90118fd01dafaf3b2 3 | size 246 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_padded_last_stop.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d84109a548e618f77a34a55d6190a0ab4eff08b1ab1faa80744a8710fb3bf3a9 3 | size 244 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_2_stops.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:966d4e1d22267b2afcd7ea7061e97d48bbb35f75bc823b453c27b5cafcc9d391 3 | size 1390 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_4_stops.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6e161ce860a43c75685aa9b97d61df669859916aa65382fa27718eadfbd83fad 3 | size 2542 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_c0_bigger.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:62405707c4212ef1fab994f107d8b782d477e5700dfec9d2312429649cb1fb47 3 | size 2775 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_outside.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8faffe06b314cc68315b3e2265c79ef5464f5701fbbe07ba07352db5b5434566 3 | size 86 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_swapped.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a2f3bd0bb74631a698558d02eeb7e08afc45f8d5f3cb0fff2477849dc988db34 3 | size 2667 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_2_stops.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4a65c969afe547be1d1c313019e7718f5e27e86ae419d90572b5705f1050dfa7 3 | size 1854 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_4_stops.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:902bcab3c9aa8cf2a9af77dd9b34f4a63bb498666f4f5f80d3d40e633a8b789a 3 | size 3435 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_with_global_alpha.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b77f75b72e6f48be7063e701876ac7793f59204a95bbab8b8bd26ad57e14ac10 3 | size 276 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bicubic_10x_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:120e923898552c1135db0bf56ca572669977e0f4f32979561a659bf6c2d2c7bb 3 | size 1896 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bicubic_10x_scale_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:431358c15d2870aeae87edc2e467c72253a592a05595364283f31b7637074760 3 | size 2604 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bicubic_2x_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cc8fe6cd1596679ed0a26012936ec2c4153988ea8b6f9d74240246aac9f353b1 3 | size 236 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bicubic_5x_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:052b7577732da50b010491a7865135789a15b27a76786d60d1088ce92d3c6ab7 3 | size 584 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bicubic_identity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c138195844e69298a60ee41f81c624db4f529d5e201d9254b9e554c3658de9e0 3 | size 151 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bilinear_10x_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7bab551dfee52664ef43dbfdedb5f300902a69b8d7a24a0ed420dccc934647ee 3 | size 953 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bilinear_2x_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ad50015f270247b7a68b57dbfbf8464165c65920fe6910093e38c9b79b5668cf 3 | size 236 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bilinear_5x_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9d29295e2fcd3d508aec6cf11a81353c25d1ba8a3e830e15a64f4c7c4d8068c2 3 | size 365 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bilinear_identity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0766ff15fdf0f6bfe8660d98c06b969a28834dd5b859e7c738da2830bcd3e74e 3 | size 151 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_reflect_x_reflect_y.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:83892656c4dd506dd4304d2e981f05f8209716dbda1b8c26b3245a53946745e8 3 | size 157 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_repeat_x_repeat_y.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8128b25335d8d0fe38c01430ac8d3faf15688734658418915e552ee8904de7ce 3 | size 152 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:62e5cf71ed60d187b09b3366e196f4f3e12e5212f09edcb0b79985bd744ee90a 3 | size 152 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_saturation_with_solid.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1810ae799f5f25cc975688d27062858b5d58f65f3332fd111b08179243b3ae6f 3 | size 104 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_with_transparent_bg.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ed6d22cc3b8c35f56c76948762fd1bc85cbc792b9515fb448a3d9417999c4e19 3 | size 117 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/nested_clip_path_panic_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:91df01ad3fae2cb2034fadc75d9f32af6bdbcb7b4631577408191b8913ce0af0 3 | size 95 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/no_anti_aliasing_clip_path.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a4b9aeb675ad788bd723d9ac04fc4f0849d5e8310faf502a9369f9c1b49f3754 3 | size 258 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/opacity_nested_on_layer.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:64fc2ddea367996f4e2e6fdd9c70db522895bf08258e5340c73d3bc4f30cf709 3 | size 136 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/overflowing_stroked_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c4ffe18872d99224fa7cb98e9d381448a42257dd7ab465421edb01a8fdb9b736 3 | size 92 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/recording_can_be_cleared.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5d3ee5faa021e9320485268cd1aabaf5cd76342643fcef97593d89f24040cc2a 3 | size 335 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/rectangle_above_viewport.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1e4addaf416903e6e8c460459f2d41666eeaf7d7ccb2750ee927bf90f9e90182 3 | size 83 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/rectangle_left_of_viewport.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee9905a1766aa6f91d840f8a711bdbe8583c6b740ecab26e591d032b648db762 3 | size 80 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/stroked_transformed_rect_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:da038944af04e03a2d262cacfcd415c0e9e33d36bd89ce554c7ea5938039ee2c 3 | size 98 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/stroked_transformed_rect_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d1e22b5d65f52e43711eecb527df6f5218fe5b2d06e55b6cd24e3c507d2356a3 3 | size 98 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/stroked_transformed_rect_3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7d08142b6aaba4222fb87ff5fbc415005cb7992acd76390a76f1dd3303cfb0ef 3 | size 101 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/stroked_transformed_rect_4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:70e09d8105b8b7e3ded3e0d11fae0a14df339e2f7df487994f43e7fa7f96d002 3 | size 176 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/stroked_unaligned_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:45be2ace4baa62aac53d43a8f78f72b8a44c723a4150add11a62aa3de6f676f6 3 | size 117 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/tile_clamped_off_by_one.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8213b9c80b0420d773f103303275b617d264f66fa76e05a5f72dec1f696e26f1 3 | size 71 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_deeply_nested_circles.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2d62873acad1c121caa7b881ddc669cd4a2f9e272c76f3da24316774e9ebb097 3 | size 5720 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_non_isolated_outside_canvas.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:acc4f4602f91b71ca283af813d72694e7cca36b27690f0561e0be5f55638d746 3 | size 71 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_with_linear_gradient_fill.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b1614b950a775ca51cb072ad2e372b42a89cf29bbe5de41667e7d14b6acc698f 3 | size 1049 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_with_multiple_transforms.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8a1ca895a065ee1bd1692126036afd3ed763e3847ed3120539f3b836da548473 3 | size 443 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_with_radial_gradient_fill.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9222b31ac692b8a6eabdb95de4f571765bfb434ee03e6d65cd3d4527ca7e38d2 3 | size 5087 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_with_sweep_gradient_fill.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:48b4492ed379d446768acc3e48ae2781e2d5499a49d245148398646d3ad35fea 3 | size 7671 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_dest_atop.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:744a10a3cb8e461434c0e4b7ebc85b9a8013a52e692f1158f36fbe5e91a11661 3 | size 212 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_dest_in.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:98bb15711aba628fd58854ad1eecdb6c71d36cf11bf0bef4239f2a2e810c70e2 3 | size 174 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_dest_out.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:98bb15711aba628fd58854ad1eecdb6c71d36cf11bf0bef4239f2a2e810c70e2 3 | size 174 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_dest_over.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:41d2e13333b09dd0095f6d376f537aeba245e5f8b50be5ca3b9483ef064ad1fd 3 | size 209 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_src_atop.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1309a33c48e0d9f200996123bd150931fe6809dcd9ccf81654d8f6643c229576 3 | size 181 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_src_in.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dcdef3a315dd79ebab72bfb8d5838233f349b220ae59d73cf586d8c80eb8bda6 3 | size 181 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_src_out.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a5cb255962113ffbca5e0f51de219c14318cd3b56ebbac4d54274a298d7790b3 3 | size 209 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/compose_non_isolated_src_over.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6d3f1709f9bf1ddf1cc532ff8a6ddb08990849615fe113f3413c6aac8031dfdc 3 | size 212 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_fully_overflowing_circle.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:370f6acde4d6770f06ce24137d209c71cbc8ebd4ca07c5e3e4d9f7186876af09 3 | size 91 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_overlapping_circles.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6ffb87bd094a21d88da0ea2496af16329c9ab8de3c132c5aa9b8ce76714b1f51 3 | size 2000 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_vertical_hairline_rect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:07c4457a692cb26c12d94579eae5811f0db4b929035914cf356fcf40ddf82715 3 | size 77 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filled_vertical_hairline_rect_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3c77ff16411446b8894ca0477b2448a43dd6ef5da7d0f488056e1d647ea63b9a 3 | size 88 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_drop_shadow_zero_offset.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:16f1471998892567fda606eee95c10d05a97fd75102ddd9e2444610bdb41261c 3 | size 677 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_skewed_long_unhinted.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a90efd56c92992938dbda50ff8ca40995287b45c9d8ec4f4f0daf55a8e9af1c1 3 | size 6221 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_complex_shape.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3b1faf0c2c2cead6b3c3e9effb3acc294a34ad00a1e07b125c4ea1037fd5883d 3 | size 1744 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_downward_y.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:97e227e8dea90299b4884dfd1adccbb7292d799c45a946e1d9b6d884c6a7d319 3 | size 510 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_upward_y.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ce48aff0dfe521528605933a7889c89eb17faefc3ca066a30161a35cf3242b39 3 | size 511 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_y_reflect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a15add953f4eeabeb944a86cacabd8cea5c243a81f02e6596295ec614d1b8fda 3 | size 593 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_y_repeat.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6bff7003314d30874978eb845420cbf94ae60619e52b1ecf71242b5321c744a0 3 | size 455 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_complex_shape.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:822f52fff935a2fd66994f52873b339c8bd89476ee5ef7167982dd97fe8a0ded 3 | size 3107 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_natively_focal.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ae6f817f151bd2e3b96f4d40999069456ff2489ac284e47290c8b48736c56ea9 3 | size 2857 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_complex_shape.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fbc0a260d6f8ff3edf0b1a875966ace7ba9818e39bff8946de0e0875f35ab5dd 3 | size 3365 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_not_in_center.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3612b04a8619019133e525b44cef3e4e6a4ebd92ebd218e19b0b92de9729b246 3 | size 2042 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_with_color_spaces_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f258164eab2bcd13389615d0a2e365fc0d84af5dddd4592c630fe2a1b51e724d 3 | size 278 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_with_color_spaces_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:03c79384258f7753bb2895cc2e384614b3b1a60e68b34fc982671cf9a6ce5d6d 3 | size 621 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_with_color_spaces_3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9dc86a46e38bf00d6d16642494fffa91011a16bf8e582fe76b9d23cad410001b 3 | size 740 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bicubic_with_rotation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9168ea3230043b1a56b9ca967a1ae0a2f50e058507dbd0fd53f1f971ac1af8dc 3 | size 12719 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bicubic_with_translation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:52e9abf295f3a8e083c685dc8a41f4f39623f6b8b69b9a1c5f6ba3ed9287032c 3 | size 644 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bilinear_10x_scale_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:caca8d8c4f8f2e1176d7381505145dcd4fbb9543ea2b646151653bb590840add 3 | size 1391 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bilinear_with_rotation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fcc8281282e8f6f89bb1cb4e6879cbb7d4812cbbd9813c23b703d079ce22722e 3 | size 6956 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_bilinear_with_translation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e91518858dc4a1f8fe34bbd9e7eab0246a18d797b935aef468ba049358ad589e 3 | size 365 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_multiple_clip_layers.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cb94d43df371385e172f29059c205df61bae88b68f1fafa817ee53ec74501c98 3 | size 731 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_identity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:002bba3c3816a1613590e6ad7cd08229638afa26a1242d027b9a99f5e3ce68b6 3 | size 150 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_rotate_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9b26c87471adacba00494788000ef33dedfd22ff694bfe12cabab73366904dca 3 | size 606 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_rotate_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2887c89a2e19f9f7e38be1067ceaccf7141d3ef6a87c7ed5c03f9b36c429649a 3 | size 593 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_skew_x_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c8254c076f4696a530fb15126ec7d2f4f742db8669a98d606441eed269a1122a 3 | size 167 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_skew_x_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3621a2ec080f47882f1c43436b72ecf80bc493fa56195926cda2850826d4b8e8 3 | size 173 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_skew_y_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4e4845f4b959226b1a0c43e7b91f6f2d145aa3215fb726ddbed712686fff7ce7 3 | size 394 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_skew_y_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fd39139982043996e84c1d220ddc58c7c6a58cb818ae46543d4b045bc1a4abf5 3 | size 383 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_translate.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7743573b5b5b45057ac060d2dafa46b89f280948f93de60232e155dbb14c4a1 3 | size 149 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/issue_filter_canvas_boundaries.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aec4c1e972869eb06bb14c88aae2279d455ec0c9b82a8c2f7e6b55c87463d2d9 3 | size 3385 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/layer_multiple_properties_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:51724c0acb2c480e060f10c00acaf63d8d6066292f92e7b2339083dc783ec220 3 | size 1126 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_non_isolated_color_dodge.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:41d2e13333b09dd0095f6d376f537aeba245e5f8b50be5ca3b9483ef064ad1fd 3 | size 209 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_non_isolated_difference.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3b4d29f0024407c30ea274268ad2d0455cec2a2cb30f9e65ae513d82537ab472 3 | size 212 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_non_isolated_soft_light.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:41d2e13333b09dd0095f6d376f537aeba245e5f8b50be5ca3b9483ef064ad1fd 3 | size 209 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/recording_incremental_build.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fd33c91b2b8a16a61bbcb8461ae5fb3d10ff8d26d4915125fad3c2b9aa9c532b 3 | size 233 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/stroked_unaligned_rect_as_path.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:45be2ace4baa62aac53d43a8f78f72b8a44c723a4150add11a62aa3de6f676f6 3 | size 117 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/triangle_exceeding_viewport_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:02678cc80f64c9e592577aefa960f82f024f1c1d0e10fd69ca075f1bb3a3b690 3 | size 174 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/triangle_exceeding_viewport_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3e22054877f82070e573546b3549eea8a3a9bf22e5ad5f08ca4b3d8929683792 3 | size 168 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/blurred_rounded_rect_large_std_dev.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cffe311f879a12bc0a69b0835fe0132dfe103a38881cda2759647a4aff75a1c8 3 | size 2731 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/blurred_rounded_rect_medium_std_dev.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:85c24a0a05ebe5bcf992158e4c9eea308d04ce80bc4bdf41b8592a4c2bb39ea2 3 | size 2088 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/blurred_rounded_rect_small_std_dev.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:943f6abb5c7e6a9bf6e572498f5190ad117ca0f522455d7571498473cb296567 3 | size 1073 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/blurred_rounded_rect_with_radius.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:052ab40cdbf12631c7891c9bbdb3fe10bb367ef779e23b4059121397cfaf0d7c 3 | size 2282 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/blurred_rounded_rect_with_transform.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d97a4cc2bdbb9e01e7c1e5a2c78f0757e0d8588faa0c9ecfe3ad65256ac74cff 3 | size 3686 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_rectangle_with_star_evenodd.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6aef5976250fcb517718c06c045da9cd052b8a52c2902026a9217bfdc8ae18b9 3 | size 840 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_rectangle_with_star_nonzero.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:100aebc47f61d7b13c70757c111d29c414c12905a81b13643dfb496b4e19f7d3 3 | size 723 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/eo_filling_missing_anti_aliasing.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:18fa5af2e5279deb475be420e2772cd9a82e77dc025c108bd61f8bc569938501 3 | size 213 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/fill_command_respects_clip_bounds.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0ce47e8dfe449ec3eb487e353956e24f679f7ab6d4465f99ed58eb8ca8a5aca4 3 | size 189 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_drop_shadow_fractional_offset.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:feb90e29ca7c64db02607c119af7870258b981f71d66f9a9e61e337d0915cef3 3 | size 279 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_gaussian_blur_no_decimation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5d4d9e400ba51b4246e99500f83d7fb22918088370317e86b5ee7cb44e98e781 3 | size 623 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyph_recording_outside_transform.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d04433f79b627b11a8c0d67f3699c3fb3ef81d3485b50a07a234815be886b4bf 3 | size 2409 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_glyph_transform_unhinted.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4947658a1427743f895f54999c424044506bb1c4d1e6c4a360c94761865c10c2 3 | size 2315 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/glyphs_skewed_unskewed_unhinted.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f748b6b9ad162ad47c94507f5e820d48944eb32f67b34af1edfc256c4ba3ca59 3 | size 2648 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_2_stops_with_alpha.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d0a20abeb64430774244f2384bbc0ef30aeadc52ecf91e25d36e4a4911965f4c 3 | size 255 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_negative_direction.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d434502a112ad131276dc3357d25426999824d5e67e7d77ea20e8fa4924107e8 3 | size 243 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_spread_method_pad.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:af80e4220f8403a4389fa773b37f06d9ceba40c11bf4c64b58daa33d04a1899d 3 | size 435 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_spread_method_repeat.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4c1176f9bcc2da251a970914c50025868f00a5264d40f03c94ee3605cd974b46 3 | size 415 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:99abb99abbab8b14a88f6cb1408e7bd84a11e4452701b69bc62da290757379ee 3 | size 438 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_2_stops_with_alpha.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c8ce095079f238deb79512589755461d6d2763500ccc4dfd6f0f9f03e39985bc 3 | size 1635 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_focal_on_circle.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1cdfcacb829df714e1ade0568f2825bc9412b34e4e6f91db2f98ac06429c1310 3 | size 1329 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_non_overlapping_cone.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2f853d13e71c682de06c994c7c27997b1442a79612ab9e1085191d07382f5556 3 | size 739 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_spread_method_pad.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7a5f5f8ae752109b7c1fe53fbeceebe9806b65c556ab36d832feac734077f0e1 3 | size 785 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_2_stops_with_alpha.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c70c01c26c642eb752dca28e7c39ed7072d6635c148b998787b7f5f086db29ae 3 | size 2213 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_spread_method_pad.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7d087895dc7401484f00c94023fcba37bfa7cedcb3063a22ef285dab1f4d5125 3 | size 1314 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_spread_method_repeat.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:06cb890a2fda826793de64616e06a6d62c4f05c82e876a5357f47c3321f216d8 3 | size 6501 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8324ffe56a602d936281a992a2ab3bc76da78a43bcb0ebe8b6170c751ac7d906 3 | size 855 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_negative_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:12d2185bd73c9d35385c5d42df5f8c07257bb19a62ece20d9443777fff2c95a5 3 | size 152 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_compose_combined_test_matrix.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e31cdc9c5cecc018212de3ec57f933dde6095f65d71b66dfc22a6c69688ab9cb 3 | size 1167 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/mix_modes_non_gradient_test_matrix.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f7fa6aafe204b71a08f0a296ba8b0bc5930da92d503d985d24155c3a67a40950 3 | size 1601 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/recording_handles_offscreen_content.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:108bdd50a674a7af2e73be72cefe99663d89c144aade8be489d3ab294acd01ee 3 | size 463 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/recording_mixed_with_direct_drawing.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d6226ef72abdb69e6d850fb17072afb1a5072e7a90ff7f86f7a3242c07b7c7b8 3 | size 765 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/repeatedly_compose_to_bottom_layer.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cd5fc6cf2a5683faa1b37b1aac6f32a59b2220720037cdc62710d5ce167dbf4d 3 | size 102 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/blurred_rounded_rect_with_large_radius.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:af1cd2bce091aa93dfcb5b9a7881fddbee50d4df51ad68740d3178cc07f55eb4 3 | size 2903 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_non_isolated_deeply_nested_circles.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2d62873acad1c121caa7b881ddc669cd4a2f9e272c76f3da24316774e9ebb097 3 | size 5720 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_gaussian_blur_with_decimation.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6332f541484982bad0cd273f01861fb921bf54b2b57aa59cee34ac675d964cdd 3 | size 1409 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_spread_method_reflect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8e3e96654c0bd8a7dd45080db879a09c93a67eb66e0b3b2f4d69c31e20a57ed5 3 | size 478 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_identity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:99abb99abbab8b14a88f6cb1408e7bd84a11e4452701b69bc62da290757379ee 3 | size 438 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_rotate_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:20c73d79313465d95163fdf6b705b96e0d6f20c7cc66a1a51e652c5b627e82de 3 | size 1282 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_rotate_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:375be76f3a99cf58b046d70a4636a1c4585ca1243fe62935b9cfd0fe0511cecb 3 | size 978 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_skew_x_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:154ba987dc7dab1ee7161a2da550bc757270eaadf8017e1802ed0f121f263611 3 | size 920 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_skew_x_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:af9b5e888b5fca6347a66f1c1c16333b09833ae32e11fbf739c3d9762de22f21 3 | size 920 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_skew_y_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d81896d2f003ade64ab436d9c893af8fee2fc54c589d737cdb1ea434d91df678 3 | size 1114 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_skew_y_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:26f197d71e0a2e27200d41bc095977f3af007e0b3f409ec36e43bf61ee995faf 3 | size 1023 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_translate.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:99abb99abbab8b14a88f6cb1408e7bd84a11e4452701b69bc62da290757379ee 3 | size 438 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_center_offset_top_left.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7ed79289b5f17aa310f9ac3908c4fe7117b6095c65cd2b31c8d23d6e90251f1a 3 | size 5444 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_center_offset_top_right.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c4e52512b66071dced4f9371fd568dd01b69db14acc70b9c95efd4b0a58d88e7 3 | size 5561 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_non_overlapping_same_size.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f2a28e1092a495174915594f3650f061c8056b123aee33dd7718cecfa111d59a 3 | size 812 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_smaller_r1_with_reflect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:08412d299fd1dbe6a341ec1c4f4fe0cc61b9c9dd8911bab5904c6fe80d142e4f 3 | size 1495 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_spread_method_reflect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b85e347eca43f53a3badc57cace164f6e75fe321285d43421182013153d8f2a1 3 | size 5597 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_spread_method_repeat.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:80c37d780d0149f7f057c046331f06f903c8d5d7ea9da0b550179be91c07ef0d 3 | size 5454 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_identity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1e3a2d094dd3906735c6db14fb5bb88341ed430882043b8c9a6e43a859158562 3 | size 1929 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_rotate_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ba06c81cb2aede102767917b79deaab05f487bdcf76acc5b8d2512bb37d78b71 3 | size 2110 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_rotate_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ba06c81cb2aede102767917b79deaab05f487bdcf76acc5b8d2512bb37d78b71 3 | size 2110 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8074b82996bfab3850edf4ec195b991de214bee8acddcc13e77f3f03a6e3c0bd 3 | size 1744 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_skew_x_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e762837e133c252e8db93af20f6f6f2daf2178e128e3176a23adc07da4d081f9 3 | size 2022 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_skew_x_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:656f69b525a5fb06684e5dd4043bfaf25f319ae62bf7514bbc6350fb2a9593aa 3 | size 2019 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_skew_y_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b12ed82d206f9e3d04db584d855362041f7a6d34306b3a49eda40e72b777d4ab 3 | size 3413 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_skew_y_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d61f5584095de02e1dc9643bbe502fce905bdf9520388cb6eb6aefa87852006e 3 | size 3437 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_translate.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1e3a2d094dd3906735c6db14fb5bb88341ed430882043b8c9a6e43a859158562 3 | size 1929 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_spread_method_reflect.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b2605511a978283e588bc3c3d6330bfae49ab10ebd3130c007be8c4b7f558bc3 3 | size 6061 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_identity.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8324ffe56a602d936281a992a2ab3bc76da78a43bcb0ebe8b6170c751ac7d906 3 | size 855 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_rotate_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:58ab21a2444cca1e7bb842bd5b4282d8779db542b75d35fa46a428b7cd402162 3 | size 1853 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_rotate_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:21db4d231a53c8d77e7b8609a121ce7a22a5d917c49a780c67b797cf96ce06a0 3 | size 1838 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_skew_x_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c14a17d646c9285ea0f320ae9acdd242a07672a033d0e274fff5ccba76f89db0 3 | size 1174 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_skew_x_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:88ba0f0f097216d516ee6ee9054292c86325208b73821a428c65edeef0e475cc 3 | size 1123 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_skew_y_1.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dc8e8fef7ca0872e58555847be1ceac143c86c433ec45e0ddc3d5f87ae9f7677 3 | size 1231 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_skew_y_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:84e94a606abf0ed5522d6725c810b1db7193be70411ee6d8be5ab73d984f2272 3 | size 1223 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_translate.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8324ffe56a602d936281a992a2ab3bc76da78a43bcb0ebe8b6170c751ac7d906 3 | size 855 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_scale_and_translate.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0ba1603b224725f26f27529b5f644c6ee3f96efab44ca42d08f63e17fec6d07c 3 | size 156 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/image_with_transform_scaling_non_uniform.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ea18454ae71ef2addf89ea0ddc7278db9036d9fe92cb40a04b174eea57e9946d 3 | size 149 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/triangle_above_and_wider_than_viewport.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:32d911028639ca2fdc697fd6ec269cf0668a438923070293c750a7a9e991f3dd 3 | size 86 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/clip_non_isolated_rectangle_with_star_evenodd.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6aef5976250fcb517718c06c045da9cd052b8a52c2902026a9217bfdc8ae18b9 3 | size 840 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/filter_varying_depths_clips_and_compositions.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a4e1ba66d25c6e513a7deb455de502e8997bbe30c01e1c8d6c3c86c1c5d2121a 3 | size 9975 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_negative_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:257c1e6ff8e148139b50adfab54f3bdd98e7442eb528f248e6c3e3c81c80e748 3 | size 444 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_center_offset_bottom_left.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cbb54ec64cbee2f1f7e38490c420292eaaa5b24cf55b96047f1492974e9743c8 3 | size 5575 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_center_offset_bottom_right.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:20828d60c27184d2c58dcac31d83022ed1707b2ce5e2d8aa8b8ab0f4b04d84db 3 | size 5650 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_non_overlapping_c0_larger.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:95de0064b91129cff7fcbcb68e7e320523a20da928598d7ab23ecff78dd7d50d 3 | size 1168 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_non_overlapping_c0_smaller.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1c7be4a910b79572491a522bb1ac87eb2f206d350af691abcc52eaaa9818ae5d 3 | size 887 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_negative_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8074b82996bfab3850edf4ec195b991de214bee8acddcc13e77f3f03a6e3c0bd 3 | size 1744 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_negative_scale.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:555a560606a48c3d67277ab4ad7b05ad81c64c9c54beba7c70d011e62b464b6e 3 | size 844 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/recording_can_be_repeatedly_executed_in_layers.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:26f24dd5c60a9a7f84b039e8c19c6ddc01b9e337994e3dd3887c14067d23a54d 3 | size 104 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/recording_is_executed_at_recorded_transform.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:08f950f078c1ec89093ae5a9989634d458202acbe467ce6e25d388867c68cf1d 3 | size 95 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/recording_is_executed_with_multiple_transforms.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b67c66ce7fed9d7741305732ca606d7c4f7017647f47ba0095491b63eec64476 3 | size 253 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_cpu/src/fine/common/mod.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | pub(crate) mod gradient; 5 | pub(crate) mod image; 6 | pub(crate) mod rounded_blurred_rect; 7 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_scale_and_translate.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:99abb99abbab8b14a88f6cb1408e7bd84a11e4452701b69bc62da290757379ee 3 | size 438 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_linear_with_transform_scaling_non_uniform.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2c18622553ee35ce9ce1de961b786e671d737545191e49001909b4c0a9b6b2bb 3 | size 535 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_scale_and_translate.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8074b82996bfab3850edf4ec195b991de214bee8acddcc13e77f3f03a6e3c0bd 3 | size 1744 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_radial_with_transform_scale_non_uniform.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9548d1376ce381075dc874fc7fd0c5ce1bf14ebd29246b5c6ad534ee8e73175e 3 | size 1766 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_scale_and_translate.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8324ffe56a602d936281a992a2ab3bc76da78a43bcb0ebe8b6170c751ac7d906 3 | size 855 4 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/snapshots/gradient_sweep_with_transform_scale_non_uniform.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:78af826347feeef01591d1dfb5943f7c5dc58c56bd8e0d9c73c351ac7c89ecda 3 | size 1235 4 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # LFS settings 2 | # If changing, also change in .github/workflows/ci.yml 3 | vello_tests/snapshots/*.png filter=lfs diff=lfs merge=lfs -text 4 | sparse_strips/vello_sparse_tests/snapshots/*.png filter=lfs diff=lfs merge=lfs -text 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /debug.svg 3 | /svg.png 4 | /trace.json 5 | /example_*.png 6 | .DS_Store 7 | 8 | examples/assets/downloads/* 9 | !examples/assets/downloads/.tracked 10 | examples/headless/outputs/* 11 | !examples/headless/outputs/.tracked 12 | -------------------------------------------------------------------------------- /examples/run_wasm/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "run_wasm" 3 | edition.workspace = true 4 | license.workspace = true 5 | repository.workspace = true 6 | publish = false 7 | 8 | [lints] 9 | workspace = true 10 | 11 | [dependencies] 12 | cargo-run-wasm = "0.4.0" 13 | -------------------------------------------------------------------------------- /sparse_strips/vello_cpu/examples/wasm_cpu/README.md: -------------------------------------------------------------------------------- 1 | ## Vello CPU in the Browser Demo 2 | 3 | Run with `cargo run_wasm -p wasm_cpu --release` for scalar build. 4 | 5 | 6 | To run the demo with SIMD enabled use: 7 | 8 | `RUSTFLAGS=-Ctarget-feature=+simd128 cargo run_wasm -p wasm_cpu --release` 9 | 10 | -------------------------------------------------------------------------------- /sparse_strips/vello_api/src/lib.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! A stub crate. 5 | //! Planned to provide an abstraction between different renderers in the future. 6 | //! This abstraction is not yet designed. 7 | 8 | #![forbid(unsafe_code)] 9 | #![no_std] 10 | -------------------------------------------------------------------------------- /sparse_strips/vello_example_scenes/README.md: -------------------------------------------------------------------------------- 1 | # vello_example_scenes 2 | 3 | A collection of scenes used for Vello Sparse Strips examples. 4 | 5 | This crate provides various scene implementations including: 6 | - Basic shapes and paths 7 | - Text rendering 8 | - Image handling 9 | - Gradients and blending 10 | - SVG rendering 11 | - Clipping operations 12 | -------------------------------------------------------------------------------- /vello_encoding/src/binning.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | use bytemuck::{Pod, Zeroable}; 5 | 6 | /// Binning header. 7 | #[derive(Copy, Clone, Pod, Zeroable, Debug, Default)] 8 | #[repr(C)] 9 | pub struct BinHeader { 10 | pub element_count: u32, 11 | pub chunk_offset: u32, 12 | } 13 | -------------------------------------------------------------------------------- /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [target.wasm32-unknown-unknown] 2 | rustflags = ['--cfg', 'getrandom_backend="wasm_js"'] 3 | 4 | [alias] 5 | run_wasm = "run --release --package run_wasm --" 6 | # Other crates use the alias run-wasm, even though crate names should use `_`s not `-`s 7 | # Allow this to be used 8 | run-wasm = "run_wasm" 9 | xtask = "run --release --package xtask --" 10 | -------------------------------------------------------------------------------- /vello_shaders/shader/shared/cubic.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | struct Cubic { 5 | p0: vec2, 6 | p1: vec2, 7 | p2: vec2, 8 | p3: vec2, 9 | stroke: vec2, 10 | path_ix: u32, 11 | flags: u32, 12 | } 13 | 14 | const CUBIC_IS_STROKE = 1u; 15 | -------------------------------------------------------------------------------- /examples/with_winit/src/main.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! Winit example. 5 | 6 | use anyhow::Result; 7 | 8 | fn main() -> Result<()> { 9 | #[cfg(not(target_os = "android"))] 10 | { 11 | with_winit::main() 12 | } 13 | #[cfg(target_os = "android")] 14 | unreachable!() 15 | } 16 | -------------------------------------------------------------------------------- /.taplo.toml: -------------------------------------------------------------------------------- 1 | # See https://taplo.tamasfe.dev/configuration/file.html 2 | # and https://taplo.tamasfe.dev/configuration/formatter-options.html 3 | 4 | [formatting] 5 | # Aligning comments with the largest line creates 6 | # diff noise when neighboring lines are changed. 7 | align_comments = false 8 | 9 | # Matches how rustfmt formats Rust code 10 | column_width = 100 11 | indent_string = " " 12 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_shaders/src/lib.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! This is a utility library to help integrate `vello_hybrid` WebGPU wgsl shaders into glsl. 5 | 6 | #[cfg(feature = "glsl")] 7 | mod compile; 8 | #[cfg(feature = "glsl")] 9 | mod types; 10 | 11 | include!(concat!(env!("OUT_DIR"), "/compiled_shaders.rs")); 12 | -------------------------------------------------------------------------------- /image_filters/vello_filters_cpu/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_filters_cpu" 3 | version.workspace = true 4 | categories = ["rendering", "graphics"] 5 | keywords = ["2d", "render", "filter", "blur"] 6 | edition.workspace = true 7 | rust-version.workspace = true 8 | license.workspace = true 9 | repository.workspace = true 10 | # Prevent accidental publishing until the initial release 11 | publish = false 12 | 13 | [dependencies] 14 | 15 | [lints] 16 | workspace = true 17 | -------------------------------------------------------------------------------- /examples/run_wasm/src/main.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! Wasm 5 | 6 | /// Use [cargo-run-wasm](https://github.com/rukai/cargo-run-wasm) to build an example for web 7 | /// 8 | /// Usage: 9 | /// ``` 10 | /// cargo run_wasm --package [example_name] 11 | /// ``` 12 | /// Generally: 13 | /// ``` 14 | /// cargo run_wasm -p with_winit 15 | /// ``` 16 | fn main() { 17 | cargo_run_wasm::run_wasm_cli_with_css("body { margin: 0px; }"); 18 | } 19 | -------------------------------------------------------------------------------- /sparse_strips/vello_cpu/examples/winit/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_cpu_winit" 3 | description = "An example showing Vello CPU using winit." 4 | edition.workspace = true 5 | license.workspace = true 6 | repository.workspace = true 7 | publish = false 8 | 9 | [lints] 10 | workspace = true 11 | 12 | [dependencies] 13 | winit = { workspace = true } 14 | vello_common = { workspace = true } 15 | vello_cpu = { workspace = true, features = ["multithreading"] } 16 | vello_example_scenes = { workspace = true, features = ["cpu"] } 17 | softbuffer = "0.4.6" 18 | -------------------------------------------------------------------------------- /examples/simple/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "simple" 3 | edition.workspace = true 4 | license.workspace = true 5 | repository.workspace = true 6 | publish = false 7 | 8 | [lints] 9 | workspace = true 10 | 11 | # The dependencies here are independent from the workspace versions 12 | [dependencies] 13 | # When using this example outside of the original Vello workspace, 14 | # remove the path property of the following Vello dependency requirement. 15 | vello = { version = "0.6.0", path = "../../vello" } 16 | anyhow = "1.0.98" 17 | pollster = "0.4.0" 18 | winit = "0.30.10" 19 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/examples/winit/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_hybrid_winit" 3 | description = "An example showing Vello Hybrid using winit." 4 | edition.workspace = true 5 | license.workspace = true 6 | repository.workspace = true 7 | publish = false 8 | 9 | [lints] 10 | workspace = true 11 | 12 | [dependencies] 13 | winit = { workspace = true } 14 | wgpu = { workspace = true, default-features = true } 15 | vello_common = { workspace = true } 16 | vello_hybrid = { workspace = true } 17 | vello_example_scenes = { workspace = true } 18 | pollster = { workspace = true } 19 | -------------------------------------------------------------------------------- /vello_encoding/src/monoid.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | /// Interface for a monoid. The default value must be the identity of 5 | /// the monoid. 6 | pub trait Monoid: Default { 7 | /// The source value for constructing the monoid. 8 | type SourceValue; 9 | 10 | /// Creates a monoid from a given value. 11 | fn new(value: Self::SourceValue) -> Self; 12 | 13 | /// Combines two monoids. This operation must be associative. 14 | #[must_use] 15 | fn combine(&self, other: &Self) -> Self; 16 | } 17 | -------------------------------------------------------------------------------- /sparse_strips/vello_bench/src/fine/mod.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | mod blend; 5 | pub(crate) mod fill; 6 | mod gradient; 7 | mod image; 8 | mod pack; 9 | mod rounded_blurred_rect; 10 | mod strip; 11 | 12 | pub use blend::*; 13 | pub use fill::*; 14 | pub use gradient::*; 15 | pub use image::*; 16 | pub use pack::*; 17 | pub use rounded_blurred_rect::*; 18 | pub use strip::*; 19 | use vello_common::peniko::{BlendMode, Compose, Mix}; 20 | 21 | pub(crate) fn default_blend() -> BlendMode { 22 | BlendMode::new(Mix::Normal, Compose::SrcOver) 23 | } 24 | -------------------------------------------------------------------------------- /.clippy.toml: -------------------------------------------------------------------------------- 1 | # LINEBENDER LINT SET - .clippy.toml - v1 2 | # See https://linebender.org/wiki/canonical-lints/ 3 | 4 | # The default Clippy value is capped at 8 bytes, which was chosen to improve performance on 32-bit. 5 | # Given that we are building for the future and even low-end mobile phones have 64-bit CPUs, 6 | # it makes sense to optimize for 64-bit and accept the performance hits on 32-bit. 7 | # 16 bytes is the number of bytes that fits into two 64-bit CPU registers. 8 | trivial-copy-size-limit = 16 9 | 10 | # END LINEBENDER LINT SET 11 | 12 | doc-valid-idents = ["MotionMark", "WebGPU", "PostScript", ".."] 13 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | # This is the list of Vello's significant contributors. 2 | # 3 | # This does not necessarily list everyone who has contributed code, 4 | # especially since many employees of one corporation may be contributing. 5 | # To see the full list of contributors, see the revision history in 6 | # source control. 7 | Google LLC 8 | Raph Levien 9 | Chad Brokaw 10 | Arman Uguray 11 | Elias Naur 12 | Daniel McNab 13 | Spencer C. Imbleau 14 | Bruce Mitchener 15 | Tatsuyuki Ishi 16 | Markus Siglreithmaier 17 | Rose Hudson 18 | Brian Merchant 19 | Matt Rice 20 | Kaur Kuut 21 | Alex Gemberg 22 | Andrew Jakubowicz 23 | Taj Pereira 24 | -------------------------------------------------------------------------------- /examples/simple_sdl2/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "simple_sdl2" 3 | edition.workspace = true 4 | license.workspace = true 5 | repository.workspace = true 6 | publish = false 7 | 8 | [lints] 9 | workspace = true 10 | 11 | # The dependencies here are independent from the workspace versions 12 | [dependencies] 13 | # When using this example outside of the original Vello workspace, 14 | # remove the path property of the following Vello dependency requirement. 15 | vello = { version = "0.6.0", path = "../../vello" } 16 | pollster = "0.4.0" 17 | sdl2 = { version = "0.37.0", features = ["raw-window-handle", "bundled"] } 18 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/examples/wgpu_webgl/README.md: -------------------------------------------------------------------------------- 1 | ## WebGL Demo 2 | 3 | Uses Vello Hybrid with a `wgpu` powered WebGL2 backend in the browser. 4 | 5 | ## Development 6 | 7 | Run with `cargo run_wasm -p wgpu_webgl --release`. 8 | 9 | ## Testing 10 | 11 | In order to test this crate, you need to have [`wasm-pack`] installed. Install it using 12 | the steps found in https://rustwasm.github.io/wasm-pack/installer/. 13 | 14 | Thereafter, for interactive test sessions, run: 15 | 16 | ``` 17 | wasm-pack test --chrome 18 | # Navigate to printed URL 19 | ``` 20 | 21 | [`wasm-pack`]: https://rustwasm.github.io/wasm-pack/ -------------------------------------------------------------------------------- /examples/headless/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "headless" 3 | description = "An example showing how to use Vello to create raster images." 4 | edition.workspace = true 5 | license.workspace = true 6 | repository.workspace = true 7 | publish = false 8 | 9 | [lints] 10 | workspace = true 11 | 12 | [dependencies] 13 | vello = { workspace = true } 14 | scenes = { workspace = true } 15 | 16 | anyhow = { workspace = true } 17 | clap = { workspace = true, features = ["derive"] } 18 | 19 | pollster = { workspace = true } 20 | env_logger = "0.11.8" 21 | png = { workspace = true } 22 | futures-intrusive = { workspace = true } 23 | -------------------------------------------------------------------------------- /sparse_strips/vello_dev_macros/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_dev_macros" 3 | description = "Procedural macros used for testing and benchmarking vello sparse strip implementations." 4 | categories = ["rendering", "graphics"] 5 | keywords = ["2d", "vector-graphics"] 6 | edition.workspace = true 7 | rust-version.workspace = true 8 | license.workspace = true 9 | repository.workspace = true 10 | publish = false 11 | 12 | [lib] 13 | proc-macro = true 14 | 15 | [dependencies] 16 | syn = { workspace = true } 17 | quote = { workspace = true } 18 | proc-macro2 = { workspace = true } 19 | 20 | [lints] 21 | workspace = true 22 | -------------------------------------------------------------------------------- /sparse_strips/vello_bench/src/lib.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | #![allow(missing_docs, reason = "Not needed for benchmarks")] 5 | #![allow(dead_code, reason = "Might be unused on platforms not supporting SIMD")] 6 | 7 | use std::path::PathBuf; 8 | use std::sync::LazyLock; 9 | 10 | pub mod data; 11 | pub mod fine; 12 | pub mod flatten; 13 | pub mod glyph; 14 | pub mod strip; 15 | pub mod tile; 16 | 17 | pub(crate) const SEED: [u8; 32] = [0; 32]; 18 | pub static DATA_PATH: LazyLock = 19 | LazyLock::new(|| PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("data")); 20 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/examples/native_webgl/README.md: -------------------------------------------------------------------------------- 1 | ## WebGL Demo 2 | 3 | Uses Vello Hybrid with a native WebGL2 backend in the browser. This example does not use wgpu. 4 | 5 | ## Development 6 | 7 | Run with `cargo run_wasm -p native_webgl --release`. 8 | 9 | ## Testing 10 | 11 | In order to test this crate, you need to have [`wasm-pack`] installed. Install it using 12 | the steps found in https://rustwasm.github.io/wasm-pack/installer/. 13 | 14 | Thereafter, for interactive test sessions, run: 15 | 16 | ``` 17 | wasm-pack test --chrome 18 | # Navigate to printed URL 19 | ``` 20 | 21 | [`wasm-pack`]: https://rustwasm.github.io/wasm-pack/ -------------------------------------------------------------------------------- /xtask/README.md: -------------------------------------------------------------------------------- 1 | # Xtask dev utilities 2 | 3 | This package provides the following commands: 4 | 5 | ## Snapshots 6 | 7 | ```bash 8 | cargo xtask snaphosts-cpu report # Creates report for snapshots 9 | cargo xtask snapshots-cpu review # Interactive test blessing snapshots 10 | cargo xtask snapshots-cpu dead-snaphosts # Detects dead snapshots 11 | cargo xtask snapshots-cpu size-check # Size check for snapshots 12 | ``` 13 | 14 | The same works for `snapshots-gpu` 15 | 16 | ```bash 17 | cargo xtask snaphosts-gpu ... 18 | ``` 19 | 20 | 21 | ## Comparisons 22 | 23 | ```bash 24 | cargo xtask comparisons report # Creates report for comparisons 25 | ``` 26 | -------------------------------------------------------------------------------- /xtask/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "xtask" 3 | publish = false 4 | edition.workspace = true 5 | rust-version.workspace = true 6 | license.workspace = true 7 | repository.workspace = true 8 | description = "Dev tooling for Vello" 9 | keywords = ["testing"] 10 | categories = ["testing", "graphics"] 11 | 12 | 13 | [dependencies] 14 | kompari = { git = "https://github.com/linebender/kompari.git", rev = "4b851413e1b17307064aa48c50e59d7e29656543" } 15 | kompari-tasks = { git = "https://github.com/linebender/kompari.git", rev = "4b851413e1b17307064aa48c50e59d7e29656543" } 16 | clap = { workspace = true, features = ["derive"] } 17 | 18 | [lints] 19 | workspace = true 20 | -------------------------------------------------------------------------------- /sparse_strips/vello_common/src/blurred_rounded_rect.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! Blurred, rounded rectangles. 5 | use crate::color::{AlphaColor, Srgb}; 6 | use crate::kurbo::Rect; 7 | 8 | /// A blurred, rounded rectangle. 9 | #[derive(Debug)] 10 | pub struct BlurredRoundedRectangle { 11 | /// The base rectangle to use for the blur effect. 12 | pub rect: Rect, 13 | /// The color of the blurred rectangle. 14 | pub color: AlphaColor, 15 | /// The radius of the blur effect. 16 | pub radius: f32, 17 | /// The standard deviation of the blur effect. 18 | pub std_dev: f32, 19 | } 20 | -------------------------------------------------------------------------------- /vello_shaders/shader/bbox_clear.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | #import config 5 | #import bbox 6 | 7 | @group(0) @binding(0) 8 | var config: Config; 9 | 10 | @group(0) @binding(1) 11 | var path_bboxes: array; 12 | 13 | @compute @workgroup_size(256) 14 | fn main( 15 | @builtin(global_invocation_id) global_id: vec3, 16 | ) { 17 | let ix = global_id.x; 18 | if ix < config.n_path { 19 | path_bboxes[ix].x0 = 0x7fffffff; 20 | path_bboxes[ix].y0 = 0x7fffffff; 21 | path_bboxes[ix].x1 = -0x80000000; 22 | path_bboxes[ix].y1 = -0x80000000; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vello_tests/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_tests" 3 | description = "Integration tests for Vello." 4 | categories = ["rendering", "graphics"] 5 | keywords = ["2d", "vector-graphics"] 6 | edition.workspace = true 7 | license.workspace = true 8 | repository.workspace = true 9 | publish = false 10 | 11 | [lints] 12 | workspace = true 13 | 14 | [dependencies] 15 | vello = { workspace = true } 16 | anyhow = { workspace = true } 17 | 18 | pollster = { workspace = true } 19 | png = { workspace = true } 20 | futures-intrusive = { workspace = true } 21 | nv-flip = "0.1.2" 22 | image = { workspace = true, features = ["png"] } 23 | 24 | scenes = { workspace = true } 25 | oxipng = { workspace = true, features = ["freestanding", "parallel"] } 26 | -------------------------------------------------------------------------------- /vello_shaders/src/cpu/path_count_setup.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | use vello_encoding::{BumpAllocators, IndirectCount}; 5 | 6 | use super::CpuBinding; 7 | 8 | const WG_SIZE: usize = 256; 9 | 10 | fn path_count_setup_main(bump: &BumpAllocators, indirect: &mut IndirectCount) { 11 | let lines = bump.lines; 12 | indirect.count_x = lines.div_ceil(WG_SIZE as u32); 13 | indirect.count_y = 1; 14 | indirect.count_z = 1; 15 | } 16 | 17 | pub fn path_count_setup(_n_wg: u32, resources: &[CpuBinding<'_>]) { 18 | let bump = resources[0].as_typed(); 19 | let mut indirect = resources[1].as_typed_mut(); 20 | path_count_setup_main(&bump, &mut indirect); 21 | } 22 | -------------------------------------------------------------------------------- /vello_tests/build.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2024 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! Build step. 5 | 6 | use std::env; 7 | 8 | fn main() { 9 | println!("cargo:rerun-if-env-changed=VELLO_CI_GPU_SUPPORT"); 10 | println!("cargo:rustc-check-cfg=cfg(skip_gpu_tests)"); 11 | if let Ok(mut value) = env::var("VELLO_CI_GPU_SUPPORT") { 12 | value.make_ascii_lowercase(); 13 | match &*value { 14 | "yes" | "y" => {} 15 | "no" | "n" => { 16 | println!("cargo:rustc-cfg=skip_gpu_tests"); 17 | } 18 | _ => { 19 | println!("cargo:cargo:warning=VELLO_CI_GPU_SUPPORT should be set to yes/y or no/n"); 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vello_shaders/shader/shared/tile.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | // Common datatypes for path and tile intermediate info. 5 | 6 | struct Path { 7 | // bounding box in tiles 8 | bbox: vec4, 9 | // offset (in u32's) to tile rectangle 10 | tiles: u32, 11 | } 12 | 13 | struct Tile { 14 | backdrop: i32, 15 | // This is used for the count of the number of segments in the 16 | // tile up to coarse rasterization, and the index afterwards. 17 | // In the latter variant, the bits are inverted so that tiling 18 | // can detect whether the tile was allocated; it's best to 19 | // consider this an enum packed into a u32. 20 | segment_count_or_ix: u32, 21 | } 22 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/examples/winit/README.md: -------------------------------------------------------------------------------- 1 | # Vello Hybrid Winit Example 2 | 3 | Run with: 4 | 5 | ```sh 6 | cargo run -p vello_hybrid_winit --release 7 | ``` 8 | 9 | Optionally, you can pass in paths to SVG files that you want to render: 10 | 11 | ```bash 12 | cargo run -p vello_hybrid_winit --release -- [SVG FILES] 13 | ``` 14 | 15 | Alternatively, you can pass a scene index to render a specific scene from the built-in set: 16 | 17 | ```bash 18 | cargo run -p vello_hybrid_winit --release -- [SCENE INDEX] 19 | ``` 20 | 21 | ## Controls 22 | 23 | - Mouse drag-and-drop will translate the image. 24 | - Mouse scroll wheel will zoom. 25 | - Arrow keys switch between SVG images in the current set. 26 | - Space resets the position and zoom of the image. 27 | - Escape exits the program. 28 | -------------------------------------------------------------------------------- /vello_shaders/shader/shared/clip.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | struct Bic { 5 | a: u32, 6 | b: u32, 7 | } 8 | 9 | fn bic_combine(x: Bic, y: Bic) -> Bic { 10 | let m = min(x.b, y.a); 11 | return Bic(x.a + y.a - m, x.b + y.b - m); 12 | } 13 | 14 | struct ClipInp { 15 | // Index of the draw object. 16 | ix: u32, 17 | // This is a packed encoding of an enum with the sign bit as the tag. If positive, 18 | // this entry is a BeginClip and contains the associated path index. If negative, 19 | // it is an EndClip and contains the bitwise-not of the EndClip draw object index. 20 | path_ix: i32, 21 | } 22 | 23 | struct ClipEl { 24 | parent_ix: u32, 25 | bbox: vec4, 26 | } 27 | -------------------------------------------------------------------------------- /vello_shaders/src/cpu/bbox_clear.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | use vello_encoding::{ConfigUniform, PathBbox}; 5 | 6 | use super::CpuBinding; 7 | 8 | fn bbox_clear_main(config: &ConfigUniform, path_bboxes: &mut [PathBbox]) { 9 | for i in 0..(config.layout.n_paths as usize) { 10 | path_bboxes[i].x0 = 0x7fff_ffff; 11 | path_bboxes[i].y0 = 0x7fff_ffff; 12 | path_bboxes[i].x1 = -0x8000_0000; 13 | path_bboxes[i].y1 = -0x8000_0000; 14 | } 15 | } 16 | 17 | pub fn bbox_clear(_n_wg: u32, resources: &[CpuBinding<'_>]) { 18 | let config = resources[0].as_typed(); 19 | let mut path_bboxes = resources[1].as_slice_mut(); 20 | bbox_clear_main(&config, &mut path_bboxes); 21 | } 22 | -------------------------------------------------------------------------------- /examples/assets/noto_color_emoji/README.md: -------------------------------------------------------------------------------- 1 | # Noto Color Emoji Subset 2 | 3 | This folder contains a small subset of [Noto Color Emoji](https://fonts.google.com/noto/specimen/Noto+Color+Emoji), licensed under the [OFL version 1.1](LICENSE). 4 | We do not include the full set of Emoji, because including the entire Emoji set would increase the repository size too much. 5 | Included emoji are: 6 | 7 | - ✅ Check Mark - \u{2705}/`:white_check_mark:` 8 | - 👀 Eyes - \u{1f440}/`:eyes:` 9 | - 🎉 Party Popper - \u{1f389}/`:party_popper:` 10 | - 🤠 Face with Cowboy Hat - \u{1f920}/`cowboy_hat_face` 11 | 12 | These are in the COLR format in `NotoColorEmoji-Subset` and in the CBTF format in `NotoColorEmoji-CBTF-Subset`. 13 | This covers all ways that Emoji are commonly packaged, and both are supported by Vello. 14 | -------------------------------------------------------------------------------- /vello_shaders/shader/path_count_setup.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | // Set up dispatch size for path count stage. 5 | 6 | #import bump 7 | 8 | @group(0) @binding(0) 9 | var bump: BumpAllocators; 10 | 11 | @group(0) @binding(1) 12 | var indirect: IndirectCount; 13 | 14 | // Partition size for path count stage 15 | const WG_SIZE = 256u; 16 | 17 | @compute @workgroup_size(1) 18 | fn main() { 19 | if atomicLoad(&bump.failed) != 0u { 20 | indirect.count_x = 0u; 21 | } else { 22 | let lines = atomicLoad(&bump.lines); 23 | indirect.count_x = (lines + (WG_SIZE - 1u)) / WG_SIZE; 24 | } 25 | indirect.count_y = 1u; 26 | indirect.count_z = 1u; 27 | } 28 | -------------------------------------------------------------------------------- /sparse_strips/vello_bench/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_bench" 3 | description = "Benchmarking harness for sparse strips." 4 | categories = ["rendering", "graphics"] 5 | keywords = ["2d", "vector-graphics"] 6 | edition.workspace = true 7 | rust-version.workspace = true 8 | license.workspace = true 9 | repository.workspace = true 10 | publish = false 11 | 12 | [dependencies] 13 | vello_common = { workspace = true } 14 | vello_cpu = { workspace = true } 15 | vello_dev_macros = { workspace = true } 16 | criterion = { workspace = true } 17 | parley = { version = "0.5.0", default-features = true } 18 | rand = { workspace = true } 19 | smallvec = { workspace = true } 20 | usvg = { workspace = true } 21 | 22 | [features] 23 | 24 | [[bench]] 25 | name = "main" 26 | harness = false 27 | 28 | [lints] 29 | workspace = true 30 | -------------------------------------------------------------------------------- /.typos.toml: -------------------------------------------------------------------------------- 1 | # See the configuration reference at 2 | # https://github.com/crate-ci/typos/blob/master/docs/reference.md 3 | 4 | # Corrections take the form of a key/value pair. The key is the incorrect word 5 | # and the value is the correct word. If the key and value are the same, the 6 | # word is treated as always correct. If the value is an empty string, the word 7 | # is treated as always incorrect. 8 | 9 | # Match Identifier - Case Sensitive 10 | [default.extend-identifiers] 11 | thm = "thm" 12 | wdth = "wdth" 13 | ArthurCose = "ArthurCose" 14 | 15 | # Match Inside a Word - Case Insensitive 16 | [default.extend-words] 17 | 18 | [files] 19 | # Include .github, .cargo, etc. 20 | ignore-hidden = false 21 | # /.git isn't in .gitignore, because git never tracks it. 22 | # Typos doesn't know that, though. 23 | extend-exclude = ["/.git"] 24 | -------------------------------------------------------------------------------- /vello_shaders/src/cpu/path_tiling_setup.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | use vello_encoding::{BumpAllocators, IndirectCount}; 5 | 6 | use super::CpuBinding; 7 | 8 | const WG_SIZE: usize = 256; 9 | 10 | fn path_tiling_setup_main(bump: &BumpAllocators, indirect: &mut IndirectCount) { 11 | let segments = bump.seg_counts; 12 | indirect.count_x = segments.div_ceil(WG_SIZE as u32); 13 | indirect.count_y = 1; 14 | indirect.count_z = 1; 15 | } 16 | 17 | pub fn path_tiling_setup(_n_wg: u32, resources: &[CpuBinding<'_>]) { 18 | let bump = resources[0].as_typed(); 19 | let mut indirect = resources[1].as_typed_mut(); 20 | // binding 2 is ptcl, which we would need if we propagate failure 21 | path_tiling_setup_main(&bump, &mut indirect); 22 | } 23 | -------------------------------------------------------------------------------- /examples/with_winit/README.md: -------------------------------------------------------------------------------- 1 | ## Usage 2 | 3 | Running the viewer without any arguments will render a built-in set of public-domain SVG images: 4 | 5 | ```bash 6 | $ cargo run -p with_winit --release 7 | ``` 8 | 9 | Optionally, you can pass in paths to SVG files that you want to render: 10 | 11 | ```bash 12 | $ cargo run -p with_winit --release -- [SVG FILES] 13 | ``` 14 | 15 | ## Controls 16 | 17 | - Mouse drag-and-drop will translate the image. 18 | - Mouse scroll wheel will zoom. 19 | - Arrow keys switch between SVG images in the current set. 20 | - Space resets the position and zoom of the image. 21 | - S toggles the frame statistics layer 22 | - C resets the min/max frame time tracked by statistics 23 | - D toggles displaying the required number of each kind of dynamically allocated element (default: off) 24 | - V toggles VSync on/off (default: on) 25 | - Escape exits the program. 26 | -------------------------------------------------------------------------------- /sparse_strips/vello_api/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_api" 3 | version.workspace = true 4 | description = "Defines the public API types for Vello, providing a stable interface for CPU and Hybrid rendering implementations." 5 | categories = ["rendering", "graphics"] 6 | keywords = ["2d", "vector-graphics"] 7 | edition.workspace = true 8 | rust-version.workspace = true 9 | license.workspace = true 10 | repository.workspace = true 11 | # Prevent accidental publishing until the initial release 12 | publish = false 13 | 14 | [dependencies] 15 | bytemuck = { workspace = true, features = [] } 16 | peniko = { workspace = true, features = ["bytemuck"] } 17 | png = { workspace = true, optional = true } 18 | 19 | [features] 20 | default = ["std", "png"] 21 | std = ["peniko/std"] 22 | libm = ["peniko/libm"] 23 | png = ["std", "dep:png"] 24 | simd = [] 25 | 26 | [lints] 27 | workspace = true 28 | -------------------------------------------------------------------------------- /sparse_strips/vello_bench/src/tile.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | use crate::data::get_data_items; 5 | use criterion::Criterion; 6 | use vello_common::tile::Tiles; 7 | use vello_cpu::Level; 8 | 9 | pub fn tile(c: &mut Criterion) { 10 | let mut g = c.benchmark_group("tile"); 11 | g.sample_size(50); 12 | 13 | macro_rules! tile_single { 14 | ($item:expr) => { 15 | let lines = $item.lines(); 16 | 17 | g.bench_function($item.name.clone(), |b| { 18 | b.iter(|| { 19 | let mut tiler = Tiles::new(Level::new()); 20 | tiler.make_tiles_analytic_aa(&lines, $item.width, $item.height); 21 | }) 22 | }); 23 | }; 24 | } 25 | 26 | for item in get_data_items() { 27 | tile_single!(item); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /sparse_strips/vello_cpu/src/fine/common/gradient/linear.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | use crate::fine::common::gradient::SimdGradientKind; 5 | use core::marker::PhantomData; 6 | use vello_common::encode::LinearKind; 7 | use vello_common::fearless_simd::{Simd, f32x8}; 8 | 9 | #[derive(Debug)] 10 | pub(crate) struct SimdLinearKind { 11 | // For consistency with the other gradient types. 12 | phantom_data: PhantomData, 13 | } 14 | 15 | impl SimdLinearKind { 16 | pub(crate) fn new(_: S, _: LinearKind) -> Self { 17 | Self { 18 | phantom_data: PhantomData, 19 | } 20 | } 21 | } 22 | 23 | impl SimdGradientKind for SimdLinearKind { 24 | #[inline(always)] 25 | fn cur_pos(&self, x_pos: f32x8, _: f32x8) -> f32x8 { 26 | x_pos 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/src/render/mod.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! Provides renderer backends which handle GPU resource management and executes draw operations. 5 | //! 6 | //! ## Renderer Backends 7 | //! 8 | //! - `wgpu` contains the default renderer backend, leveraging `wgpu`. 9 | //! - `webgl` contains a WebGL2 backend specifically for `wasm32` if the `webgl` feature is active. 10 | 11 | pub(crate) mod common; 12 | #[cfg(all(target_arch = "wasm32", feature = "webgl"))] 13 | mod webgl; 14 | #[cfg(feature = "wgpu")] 15 | mod wgpu; 16 | 17 | pub use common::{Config, GpuStrip, RenderSize}; 18 | 19 | #[cfg(all(target_arch = "wasm32", feature = "webgl"))] 20 | pub use webgl::{WebGlAtlasWriter, WebGlRenderer, WebGlTextureWithDimensions}; 21 | #[cfg(feature = "wgpu")] 22 | pub use wgpu::{AtlasWriter, RenderTargetConfig, Renderer}; 23 | -------------------------------------------------------------------------------- /sparse_strips/vello_toy/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_toy" 3 | description = "A collection of different binary crates for interacting with the sparse rendering stack." 4 | categories = ["rendering", "graphics"] 5 | keywords = ["2d", "vector-graphics"] 6 | edition.workspace = true 7 | rust-version.workspace = true 8 | license.workspace = true 9 | repository.workspace = true 10 | publish = false 11 | 12 | [dependencies] 13 | svg = { workspace = true } 14 | usvg = { workspace = true } 15 | bytemuck = { workspace = true } 16 | clap = { workspace = true, features = ["derive"] } 17 | vello_common = { workspace = true } 18 | vello_cpu = { workspace = true, features = ["multithreading"] } 19 | image = { workspace = true, features = ["png"] } 20 | 21 | [[bin]] 22 | name = "debug" 23 | path = "src/debug.rs" 24 | 25 | [[bin]] 26 | name = "svg" 27 | path = "src/svg.rs" 28 | 29 | [lints] 30 | workspace = true 31 | -------------------------------------------------------------------------------- /vello_shaders/shader/shared/bump.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | // Bitflags for each stage that can fail allocation. 5 | const STAGE_BINNING: u32 = 0x1u; 6 | const STAGE_TILE_ALLOC: u32 = 0x2u; 7 | const STAGE_FLATTEN: u32 = 0x4u; 8 | const STAGE_PATH_COUNT: u32 = 0x8u; 9 | const STAGE_COARSE: u32 = 0x10u; 10 | 11 | // This must be kept in sync with the struct in config.rs in the encoding crate. 12 | struct BumpAllocators { 13 | // Bitmask of stages that have failed allocation. 14 | failed: atomic, 15 | binning: atomic, 16 | ptcl: atomic, 17 | tile: atomic, 18 | seg_counts: atomic, 19 | segments: atomic, 20 | blend: atomic, 21 | lines: atomic, 22 | } 23 | 24 | struct IndirectCount { 25 | count_x: u32, 26 | count_y: u32, 27 | count_z: u32, 28 | } 29 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_shaders/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_sparse_shaders" 3 | # When updating, also update the version in the workspace dependency in the root Cargo.toml 4 | version = "0.0.4" 5 | description = "Provide compilation of wgsl to glsl to support the WebGL `vello_hybrid` backend." 6 | categories = ["rendering", "graphics"] 7 | keywords = ["2d", "vector-graphics"] 8 | edition.workspace = true 9 | rust-version.workspace = true 10 | license.workspace = true 11 | repository.workspace = true 12 | 13 | [package.metadata.docs.rs] 14 | all-features = true 15 | # There are no platform specific docs. 16 | default-target = "x86_64-unknown-linux-gnu" 17 | targets = [] 18 | 19 | [dependencies] 20 | naga = { workspace = true, features = ["wgsl-in", "glsl-out"], optional = true } 21 | 22 | [build-dependencies] 23 | naga = { workspace = true, features = ["wgsl-in", "glsl-out"], optional = true } 24 | 25 | [features] 26 | glsl = ["dep:naga"] 27 | 28 | [lints] 29 | workspace = true 30 | -------------------------------------------------------------------------------- /examples/scenes/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "scenes" 3 | description = "Vello scenes used in the other examples." 4 | edition.workspace = true 5 | license.workspace = true 6 | repository.workspace = true 7 | publish = false 8 | 9 | [lints] 10 | workspace = true 11 | 12 | [dependencies] 13 | vello = { workspace = true } 14 | skrifa = { workspace = true } 15 | anyhow = { workspace = true } 16 | clap = { workspace = true, features = ["derive"] } 17 | image = { workspace = true, features = ["jpeg"] } 18 | rand = { workspace = true, features = ["thread_rng"] } 19 | 20 | # for pico_svg 21 | roxmltree = "0.20.0" 22 | bytemuck.workspace = true 23 | 24 | [target.'cfg(target_arch = "wasm32")'.dependencies] 25 | web-time = { workspace = true } 26 | 27 | [target.wasm32-unknown-unknown.dependencies] 28 | # We have a transitive dependency on getrandom and it does not automatically 29 | # support wasm32-unknown-unknown. We need to enable the js feature. 30 | getrandom = { version = "0.3.3", features = ["wasm_js"] } 31 | -------------------------------------------------------------------------------- /vello_shaders/shader/path_tiling_setup.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | // Set up dispatch size for path tiling stage. 5 | 6 | #import bump 7 | 8 | @group(0) @binding(0) 9 | var bump: BumpAllocators; 10 | 11 | @group(0) @binding(1) 12 | var indirect: IndirectCount; 13 | 14 | @group(0) @binding(2) 15 | var ptcl: array; 16 | 17 | // Partition size for path tiling stage 18 | const WG_SIZE = 256u; 19 | 20 | @compute @workgroup_size(1) 21 | fn main() { 22 | if atomicLoad(&bump.failed) != 0u { 23 | indirect.count_x = 0u; 24 | // signal fine rasterizer that failure happened (it doesn't bind bump) 25 | ptcl[0] = ~0u; 26 | } else { 27 | let segments = atomicLoad(&bump.seg_counts); 28 | indirect.count_x = (segments + (WG_SIZE - 1u)) / WG_SIZE; 29 | } 30 | indirect.count_y = 1u; 31 | indirect.count_z = 1u; 32 | } 33 | -------------------------------------------------------------------------------- /vello_shaders/shader/shared/bbox.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | // The annotated bounding box for a path. It has been transformed, 5 | // but contains a link to the active transform, mostly for gradients. 6 | // Coordinates are integer pixels (for the convenience of atomic update) 7 | // but will probably become fixed-point fractions for rectangles. 8 | // 9 | // TODO: This also carries a `draw_flags` field that contains information that gets propagated to 10 | // the draw info stream. This is currently only used for the fill rule. If the other bits remain 11 | // unused we could possibly pack this into some other field, such as the MSB of `trans_ix`. 12 | struct PathBbox { 13 | x0: i32, 14 | y0: i32, 15 | x1: i32, 16 | y1: i32, 17 | draw_flags: u32, 18 | trans_ix: u32, 19 | } 20 | 21 | fn bbox_intersect(a: vec4, b: vec4) -> vec4 { 22 | return vec4(max(a.xy, b.xy), min(a.zw, b.zw)); 23 | } 24 | -------------------------------------------------------------------------------- /sparse_strips/vello_cpu/examples/wasm_cpu/src/main.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! Demonstrates using Vello CPU in the browser. 5 | 6 | #![allow( 7 | clippy::cast_possible_truncation, 8 | reason = "truncation has no appreciable impact in this demo" 9 | )] 10 | 11 | fn main() { 12 | #[cfg(target_arch = "wasm32")] 13 | { 14 | use wasm_cpu::run_interactive; 15 | 16 | console_error_panic_hook::set_once(); 17 | console_log::init_with_level(log::Level::Debug).unwrap(); 18 | 19 | let window = web_sys::window().unwrap(); 20 | let dpr = window.device_pixel_ratio(); 21 | 22 | let width = window.inner_width().unwrap().as_f64().unwrap() as u16 * dpr as u16; 23 | let height = window.inner_height().unwrap().as_f64().unwrap() as u16 * dpr as u16; 24 | 25 | wasm_bindgen_futures::spawn_local(async move { 26 | run_interactive(width, height).await; 27 | }); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/tests/layer.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | use crate::mask::example_mask; 5 | use crate::renderer::Renderer; 6 | use crate::util::crossed_line_star; 7 | use vello_common::color::palette::css::{BLUE, RED}; 8 | use vello_common::kurbo::Rect; 9 | use vello_common::peniko::{BlendMode, Compose, Mix}; 10 | use vello_dev_macros::vello_test; 11 | 12 | #[vello_test(cpu_u8_tolerance = 1)] 13 | fn layer_multiple_properties_1(ctx: &mut impl Renderer) { 14 | let mask = example_mask(true); 15 | let star = crossed_line_star(); 16 | 17 | ctx.set_paint(BLUE); 18 | ctx.fill_rect(&Rect::new(10.0, 10.0, 90.0, 90.0)); 19 | ctx.push_layer( 20 | Some(&star), 21 | Some(BlendMode::new(Mix::Lighten, Compose::SrcOver)), 22 | Some(0.78), 23 | Some(mask), 24 | None, 25 | ); 26 | ctx.set_paint(RED); 27 | ctx.fill_rect(&Rect::new(10.0, 10.0, 90.0, 90.0)); 28 | ctx.pop_layer(); 29 | } 30 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/examples/wgpu_webgl/src/main.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! Demonstrates using Vello Hybrid using a WebGL2 backend in the browser. 5 | 6 | #![allow( 7 | clippy::cast_possible_truncation, 8 | reason = "truncation has no appreciable impact in this demo" 9 | )] 10 | 11 | fn main() { 12 | #[cfg(target_arch = "wasm32")] 13 | { 14 | use wgpu_webgl::run_interactive; 15 | 16 | console_error_panic_hook::set_once(); 17 | console_log::init_with_level(log::Level::Debug).unwrap(); 18 | 19 | let window = web_sys::window().unwrap(); 20 | let dpr = window.device_pixel_ratio(); 21 | 22 | let width = window.inner_width().unwrap().as_f64().unwrap() as u16 * dpr as u16; 23 | let height = window.inner_height().unwrap().as_f64().unwrap() as u16 * dpr as u16; 24 | 25 | wasm_bindgen_futures::spawn_local(async move { 26 | run_interactive(width, height).await; 27 | }); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/examples/native_webgl/src/main.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! Demonstrates using Vello Hybrid using a WebGL2 backend in the browser. 5 | 6 | #![allow( 7 | clippy::cast_possible_truncation, 8 | reason = "truncation has no appreciable impact in this demo" 9 | )] 10 | 11 | fn main() { 12 | #[cfg(target_arch = "wasm32")] 13 | { 14 | use native_webgl::run_interactive; 15 | 16 | console_error_panic_hook::set_once(); 17 | console_log::init_with_level(log::Level::Debug).unwrap(); 18 | 19 | let window = web_sys::window().unwrap(); 20 | let dpr = window.device_pixel_ratio(); 21 | 22 | let width = window.inner_width().unwrap().as_f64().unwrap() as u16 * dpr as u16; 23 | let height = window.inner_height().unwrap().as_f64().unwrap() as u16 * dpr as u16; 24 | 25 | wasm_bindgen_futures::spawn_local(async move { 26 | run_interactive(width, height).await; 27 | }); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /sparse_strips/vello_example_scenes/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_example_scenes" 3 | description = "Vello Example Scenes." 4 | edition.workspace = true 5 | license.workspace = true 6 | repository.workspace = true 7 | publish = false 8 | 9 | [lints] 10 | workspace = true 11 | 12 | [features] 13 | default = [] 14 | cpu = ["dep:vello_cpu"] 15 | 16 | [dependencies] 17 | bytemuck = { workspace = true, features = [] } 18 | smallvec = { workspace = true } 19 | vello_hybrid = { workspace = true } 20 | vello_common = { workspace = true, features = ["pico_svg", "png"] } 21 | image = { workspace = true, features = ["jpeg"] } 22 | vello_cpu = { workspace = true, optional = true } 23 | console_error_panic_hook = { workspace = true } 24 | console_log = { workspace = true } 25 | log = { workspace = true } 26 | 27 | [target.'cfg(target_arch = "wasm32")'.dependencies] 28 | parley = { version = "0.5.0", default-features = false, features = ["std"] } 29 | 30 | [target.'cfg(not(target_arch = "wasm32"))'.dependencies] 31 | parley = { version = "0.5.0", default-features = true } 32 | -------------------------------------------------------------------------------- /vello_shaders/shader/shared/util.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | // This file defines utility functions that interact with host-shareable buffer objects. It should 5 | // be imported once following the resource binding declarations in the shader module that access 6 | // them. 7 | 8 | // Reads a draw tag from the scene buffer, defaulting to DRAWTAG_NOP if the given `ix` is beyond the 9 | // range of valid draw objects (e.g this can happen if `ix` is derived from an invocation ID in a 10 | // workgroup that partially spans valid range). 11 | // 12 | // This function depends on the following global declarations: 13 | // * `scene`: array 14 | // * `config`: Config (see config.wgsl) 15 | fn read_draw_tag_from_scene(ix: u32) -> u32 { 16 | var tag_word: u32; 17 | if ix < config.n_drawobj { 18 | let tag_ix = config.drawtag_base + ix; 19 | tag_word = scene[tag_ix]; 20 | } else { 21 | tag_word = DRAWTAG_NOP; 22 | } 23 | return tag_word; 24 | } 25 | -------------------------------------------------------------------------------- /vello_shaders/src/cpu/pathtag_reduce.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | use vello_encoding::{ConfigUniform, Monoid, PathMonoid}; 5 | 6 | use super::CpuBinding; 7 | 8 | const WG_SIZE: usize = 256; 9 | 10 | fn pathtag_reduce_main( 11 | n_wg: u32, 12 | config: &ConfigUniform, 13 | scene: &[u32], 14 | reduced: &mut [PathMonoid], 15 | ) { 16 | let pathtag_base = config.layout.path_tag_base; 17 | for i in 0..n_wg { 18 | let mut m = PathMonoid::default(); 19 | for j in 0..WG_SIZE { 20 | let tag = scene[(pathtag_base + i * WG_SIZE as u32) as usize + j]; 21 | m = m.combine(&PathMonoid::new(tag)); 22 | } 23 | reduced[i as usize] = m; 24 | } 25 | } 26 | 27 | pub fn pathtag_reduce(n_wg: u32, resources: &[CpuBinding<'_>]) { 28 | let config = resources[0].as_typed(); 29 | let scene = resources[1].as_slice(); 30 | let mut reduced = resources[2].as_slice_mut(); 31 | pathtag_reduce_main(n_wg, &config, &scene, &mut reduced); 32 | } 33 | -------------------------------------------------------------------------------- /sparse_strips/vello_bench/README.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | In order to run the integration benchmarks with custom SVGs, you need to add the SVGs you want to run into the `data` folder. For each SVG file in that folder, a corresponding integration test will be generated automatically. 4 | 5 | If you don't add any SVGs, the benchmarking harness will only use the ghostscript tiger by default. 6 | 7 | In order to run the benches, you can simply run `cargo bench`. However, in most cases you probably don't 8 | want to rerun all benchmarks, in which case you can also provide a filter for the name of the benchmarks 9 | you want to run, like `cargo bench -- fine/fill` 10 | 11 | ## Workflow 12 | 13 | Save a control run with: 14 | 15 | ```shell 16 | cargo bench --bench main -- --save-baseline control [TEST NAME FILTER] 17 | ``` 18 | 19 | Then, apply some changes to the code and compare it to the control with: 20 | 21 | ```shell 22 | # Rerun bench against new changes 23 | cargo bench -- [TEST NAME FILTER] 24 | # Compare it against control 25 | cargo bench --bench main -- --load-baseline new --baseline control 26 | ``` 27 | -------------------------------------------------------------------------------- /vello_encoding/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "vello_encoding" 3 | version.workspace = true # We mimic Vello's version 4 | description = "Vello types that represent the data that needs to be rendered." 5 | categories = ["rendering", "graphics"] 6 | keywords = ["2d", "vector-graphics"] 7 | edition.workspace = true 8 | rust-version.workspace = true 9 | license.workspace = true 10 | repository.workspace = true 11 | 12 | [package.metadata.docs.rs] 13 | all-features = true 14 | # There are no platform specific docs. 15 | default-target = "x86_64-unknown-linux-gnu" 16 | targets = [] 17 | 18 | [features] 19 | # Enables an optional GPU memory usage estimation utility. This can be used to 20 | # perform additional computations in order to estimate the minimum required allocations 21 | # for buffers backing bump-allocated GPU memory. 22 | bump_estimate = [] 23 | 24 | [lints] 25 | workspace = true 26 | 27 | [dependencies] 28 | bytemuck = { workspace = true } 29 | skrifa = { workspace = true, features = ["std"] } 30 | peniko = { workspace = true, default-features = true } 31 | guillotiere = { version = "0.6.2" } 32 | smallvec = { workspace = true } 33 | -------------------------------------------------------------------------------- /vello_shaders/shader/shared/transform.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | // Helpers for working with transforms. 5 | 6 | struct Transform { 7 | matrx: vec4, 8 | translate: vec2, 9 | } 10 | 11 | fn transform_apply(transform: Transform, p: vec2) -> vec2 { 12 | return transform.matrx.xy * p.x + transform.matrx.zw * p.y + transform.translate; 13 | } 14 | 15 | fn transform_inverse(transform: Transform) -> Transform { 16 | let inv_det = 1.0 / (transform.matrx.x * transform.matrx.w - transform.matrx.y * transform.matrx.z); 17 | let inv_mat = inv_det * vec4(transform.matrx.w, -transform.matrx.y, -transform.matrx.z, transform.matrx.x); 18 | let inv_tr = mat2x2(inv_mat.xy, inv_mat.zw) * -transform.translate; 19 | return Transform(inv_mat, inv_tr); 20 | } 21 | 22 | fn transform_mul(a: Transform, b: Transform) -> Transform { 23 | return Transform( 24 | a.matrx.xyxy * b.matrx.xxzz + a.matrx.zwzw * b.matrx.yyww, 25 | a.matrx.xy * b.translate.x + a.matrx.zw * b.translate.y + a.translate 26 | ); 27 | } 28 | -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/examples/wgpu_webgl/tests/webgl.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! Tests whether the WebGL example compiles and runs without panicking. 5 | #![cfg(target_arch = "wasm32")] 6 | 7 | mod wasm { 8 | use vello_common::peniko::{color::palette, kurbo::BezPath}; 9 | use vello_hybrid::Scene; 10 | use wasm_bindgen_test::*; 11 | use wgpu_webgl::render_scene; 12 | 13 | wasm_bindgen_test_configure!(run_in_browser); 14 | 15 | #[wasm_bindgen_test] 16 | async fn test_renders_triangle() { 17 | console_error_panic_hook::set_once(); 18 | console_log::init_with_level(log::Level::Debug).unwrap(); 19 | 20 | let mut scene = Scene::new(100, 100); 21 | 22 | // Draw a blue triangle 23 | let mut path = BezPath::new(); 24 | path.move_to((30.0, 40.0)); 25 | path.line_to((50.0, 20.0)); 26 | path.line_to((70.0, 40.0)); 27 | path.close_path(); 28 | scene.set_paint(palette::css::BLUE); 29 | scene.fill_path(&path); 30 | 31 | render_scene(scene, 100, 100).await; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/examples/native_webgl/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "native_webgl" 3 | version.workspace = true 4 | description = "An example showing Vello Hybrid using the WebGL2 renderer backend." 5 | edition.workspace = true 6 | license.workspace = true 7 | repository.workspace = true 8 | publish = false 9 | 10 | [lib] 11 | crate-type = ["cdylib", "rlib"] 12 | 13 | [lints] 14 | workspace = true 15 | 16 | [dependencies] 17 | console_error_panic_hook = { workspace = true } 18 | console_log = { workspace = true } 19 | js-sys = "0.3.77" 20 | log = { workspace = true } 21 | vello_common = { workspace = true } 22 | vello_hybrid = { workspace = true, features = ["webgl"] } 23 | vello_example_scenes = { workspace = true } 24 | wasm-bindgen = "0.2.100" 25 | wasm-bindgen-futures = "0.4.50" 26 | web-sys = { version = "0.3.77", features = [ 27 | "Window", 28 | "Document", 29 | "Element", 30 | "HtmlElement", 31 | "HtmlCanvasElement", 32 | "CssStyleDeclaration", 33 | "WebGl2RenderingContext", 34 | "MouseEvent", 35 | "WheelEvent", 36 | "KeyboardEvent", 37 | ] } 38 | 39 | [dev-dependencies] 40 | wasm-bindgen-test = "0.3.50" 41 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/examples/native_webgl/tests/webgl.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | //! Tests whether the WebGL example compiles and runs without panicking. 5 | #![cfg(target_arch = "wasm32")] 6 | 7 | mod wasm { 8 | use native_webgl::render_scene; 9 | use vello_common::peniko::{color::palette, kurbo::BezPath}; 10 | use vello_hybrid::Scene; 11 | use wasm_bindgen_test::*; 12 | 13 | wasm_bindgen_test_configure!(run_in_browser); 14 | 15 | #[wasm_bindgen_test] 16 | async fn test_renders_triangle() { 17 | console_error_panic_hook::set_once(); 18 | console_log::init_with_level(log::Level::Debug).unwrap(); 19 | 20 | let mut scene = Scene::new(100, 100); 21 | 22 | // Draw a blue triangle 23 | let mut path = BezPath::new(); 24 | path.move_to((30.0, 40.0)); 25 | path.line_to((50.0, 20.0)); 26 | path.line_to((70.0, 40.0)); 27 | path.close_path(); 28 | scene.set_paint(palette::css::BLUE); 29 | scene.fill_path(&path); 30 | 31 | render_scene(scene, 100, 100).await; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /vello/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /vello_shaders/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /vello_encoding/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /sparse_strips/vello_api/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /sparse_strips/vello_cpu/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /sparse_strips/vello_common/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /image_filters/vello_filters_cpu/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /sparse_strips/vello_example_scenes/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/examples/wgpu_webgl/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "wgpu_webgl" 3 | version.workspace = true 4 | description = "An example showing Vello Hybrid using WebGL2." 5 | edition.workspace = true 6 | license.workspace = true 7 | repository.workspace = true 8 | publish = false 9 | 10 | [lib] 11 | crate-type = ["cdylib", "rlib"] 12 | 13 | [lints] 14 | workspace = true 15 | 16 | [dependencies] 17 | console_error_panic_hook = { workspace = true } 18 | console_log = { workspace = true } 19 | js-sys = "0.3.77" 20 | log = { workspace = true } 21 | vello_common = { workspace = true } 22 | vello_hybrid = { workspace = true } 23 | vello_example_scenes = { workspace = true } 24 | wasm-bindgen = "0.2.100" 25 | wasm-bindgen-futures = "0.4.50" 26 | web-sys = { version = "0.3.77", features = [ 27 | "Window", 28 | "Document", 29 | "Element", 30 | "HtmlElement", 31 | "HtmlCanvasElement", 32 | "CssStyleDeclaration", 33 | "WebGl2RenderingContext", 34 | "MouseEvent", 35 | "WheelEvent", 36 | "KeyboardEvent", 37 | ] } 38 | wgpu = { workspace = true, default-features = true, features = ["webgl"] } 39 | 40 | [dev-dependencies] 41 | wasm-bindgen-test = "0.3.50" 42 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_shaders/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright 2020 the Vello Authors 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /sparse_strips/vello_sparse_tests/tests/opacity.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | use crate::renderer::Renderer; 5 | use vello_common::color::palette::css::{BLUE, GREEN, REBECCA_PURPLE, RED, YELLOW}; 6 | use vello_common::kurbo::{Circle, Rect, Shape}; 7 | use vello_dev_macros::vello_test; 8 | 9 | #[vello_test] 10 | fn opacity_on_layer(ctx: &mut impl Renderer) { 11 | ctx.push_opacity_layer(0.27); 12 | 13 | for e in [(35.0, 35.0, RED), (65.0, 35.0, GREEN), (50.0, 65.0, BLUE)] { 14 | let circle = Circle::new((e.0, e.1), 30.0); 15 | ctx.set_paint(e.2); 16 | ctx.fill_path(&circle.to_path(0.1)); 17 | } 18 | 19 | ctx.pop_layer(); 20 | } 21 | 22 | #[vello_test] 23 | fn opacity_nested_on_layer(ctx: &mut impl Renderer) { 24 | ctx.set_paint(REBECCA_PURPLE); 25 | ctx.fill_rect(&Rect::new(10.0, 10.0, 90.0, 90.0)); 26 | ctx.push_opacity_layer(0.5); 27 | ctx.set_paint(YELLOW); 28 | ctx.fill_rect(&Rect::new(25.0, 25.0, 75.0, 75.0)); 29 | ctx.push_opacity_layer(0.5); 30 | ctx.set_paint(GREEN); 31 | ctx.fill_rect(&Rect::new(40.0, 40.0, 60.0, 60.0)); 32 | ctx.pop_layer(); 33 | ctx.pop_layer(); 34 | } 35 | -------------------------------------------------------------------------------- /vello_shaders/src/cpu/backdrop.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | use vello_encoding::{BumpAllocators, ConfigUniform, Path, Tile}; 5 | 6 | use super::CpuBinding; 7 | 8 | fn backdrop_main(config: &ConfigUniform, _: &BumpAllocators, paths: &[Path], tiles: &mut [Tile]) { 9 | for drawobj_ix in 0..config.layout.n_draw_objects { 10 | let path = paths[drawobj_ix as usize]; 11 | let width = path.bbox[2] - path.bbox[0]; 12 | let height = path.bbox[3] - path.bbox[1]; 13 | let base = path.tiles; 14 | for y in 0..height { 15 | let mut sum = 0; 16 | for x in 0..width { 17 | let tile = &mut tiles[(base + y * width + x) as usize]; 18 | sum += tile.backdrop; 19 | tile.backdrop = sum; 20 | } 21 | } 22 | } 23 | } 24 | 25 | pub fn backdrop(_n_wg: u32, resources: &[CpuBinding<'_>]) { 26 | let config = resources[0].as_typed(); 27 | let bump = resources[1].as_typed(); 28 | let paths = resources[2].as_slice(); 29 | let mut tiles = resources[3].as_slice_mut(); 30 | backdrop_main(&config, &bump, &paths, &mut tiles); 31 | } 32 | -------------------------------------------------------------------------------- /sparse_strips/vello_toy/README.md: -------------------------------------------------------------------------------- 1 | # Vello Toy 2 | 3 | Vello Toy is a small internal crate that contains a number of utility binaries useful for development. 4 | 5 | ## debug.rs 6 | When running this binary, you can provide an SVG path that you want to render and inspect the results of different stages of the rendering pipeline, in the form of an SVG. 7 | 8 | For example, if you run: 9 | 10 | `cargo run --bin debug -- --path "M 5 5 L 40 23 L 7 44 Z" --stages line_segments,tile_areas` 11 | 12 | A new SVG file will be generated that allows you to easily visualize the generated flattened lines and tiles. 13 | 14 | ## svg.rs 15 | This binary allows you to render SVG files to PNG. Note that support is very primitive, and only very basic filling/stroking as well as clip paths are currently supported. In addition to that, the binary also allows you to define a target time during which it should be running. 16 | 17 | For example, if you run: 18 | 19 | `cargo run --bin svg --release -- --path examples/assets/Ghostscript_Tiger.svg --scale 5 --runtime 2000` 20 | 21 | The binary will run for two seconds and render the ghostscript tiger in a loop for 2 seconds, until it finally saves the result as a PNG file and prints the average runtime per iteration. -------------------------------------------------------------------------------- /sparse_strips/vello_bench/benches/main.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | #![allow(missing_docs, reason = "Not needed for benchmarks")] 5 | #![allow(dead_code, reason = "Might be unused on platforms not supporting SIMD")] 6 | 7 | use criterion::{criterion_group, criterion_main}; 8 | use vello_bench::{fine, flatten, glyph, strip, tile}; 9 | 10 | criterion_group!(fine_solid, fine::fill); 11 | criterion_group!(fine_strip, fine::strip); 12 | criterion_group!(fine_pack, fine::pack); 13 | criterion_group!(fine_gradient, fine::gradient); 14 | criterion_group!(fine_rounded_blurred_rect, fine::rounded_blurred_rect); 15 | criterion_group!(fine_blend, fine::blend); 16 | criterion_group!(fine_image, fine::image); 17 | criterion_group!(tile, tile::tile); 18 | criterion_group!(flatten, flatten::flatten); 19 | criterion_group!(strokes, flatten::strokes); 20 | criterion_group!(render_strips, strip::render_strips); 21 | criterion_group!(glyph, glyph::glyph); 22 | criterion_main!( 23 | tile, 24 | render_strips, 25 | flatten, 26 | strokes, 27 | glyph, 28 | fine_solid, 29 | fine_strip, 30 | fine_pack, 31 | fine_gradient, 32 | fine_rounded_blurred_rect, 33 | fine_blend, 34 | fine_image 35 | ); 36 | -------------------------------------------------------------------------------- /vello_shaders/src/cpu/pathtag_scan.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | use vello_encoding::{ConfigUniform, Monoid, PathMonoid}; 5 | 6 | use super::CpuBinding; 7 | 8 | const WG_SIZE: usize = 256; 9 | 10 | fn pathtag_scan_main( 11 | n_wg: u32, 12 | config: &ConfigUniform, 13 | scene: &[u32], 14 | reduced: &[PathMonoid], 15 | tag_monoids: &mut [PathMonoid], 16 | ) { 17 | let pathtag_base = config.layout.path_tag_base; 18 | let mut prefix = PathMonoid::default(); 19 | for i in 0..n_wg { 20 | let mut m = prefix; 21 | for j in 0..WG_SIZE { 22 | let ix = (i * WG_SIZE as u32) as usize + j; 23 | tag_monoids[ix] = m; 24 | let tag = scene[pathtag_base as usize + ix]; 25 | m = m.combine(&PathMonoid::new(tag)); 26 | } 27 | prefix = prefix.combine(&reduced[i as usize]); 28 | } 29 | } 30 | 31 | pub fn pathtag_scan(n_wg: u32, resources: &[CpuBinding<'_>]) { 32 | let config = resources[0].as_typed(); 33 | let scene = resources[1].as_slice(); 34 | let reduced = resources[2].as_slice(); 35 | let mut tag_monoids = resources[3].as_slice_mut(); 36 | pathtag_scan_main(n_wg, &config, &scene, &reduced, &mut tag_monoids); 37 | } 38 | -------------------------------------------------------------------------------- /vello_shaders/shader/UNLICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /vello_shaders/shader/shared/segment.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | // Segments laid out for contiguous storage 5 | struct Segment { 6 | // Points are relative to tile origin 7 | point0: vec2, 8 | point1: vec2, 9 | y_edge: f32, 10 | } 11 | 12 | // A line segment produced by flattening and ready for rasterization. 13 | // 14 | // The name is perhaps too playful, but reflects the fact that these 15 | // lines are completely unordered. They will flow through coarse path 16 | // rasterization, then the per-tile segments will be scatter-written into 17 | // segment storage so that each (tile, path) tuple gets a contiguous 18 | // slice of segments. 19 | struct LineSoup { 20 | path_ix: u32, 21 | // Note: this creates an alignment gap. Don't worry about 22 | // this now, but maybe move to scalars. 23 | p0: vec2, 24 | p1: vec2, 25 | } 26 | 27 | // An intermediate data structure for sorting tile segments. 28 | struct SegmentCount { 29 | // Reference to element of LineSoup array 30 | line_ix: u32, 31 | // Two count values packed into a single u32 32 | // Lower 16 bits: index of segment within line 33 | // Upper 16 bits: index of segment within segment slice 34 | counts: u32, 35 | } 36 | -------------------------------------------------------------------------------- /vello_shaders/shader/pathtag_reduce.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2022 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | #import config 5 | #import pathtag 6 | 7 | @group(0) @binding(0) 8 | var config: Config; 9 | 10 | @group(0) @binding(1) 11 | var scene: array; 12 | 13 | @group(0) @binding(2) 14 | var reduced: array; 15 | 16 | const LG_WG_SIZE = 8u; 17 | const WG_SIZE = 256u; 18 | 19 | var sh_scratch: array; 20 | 21 | @compute @workgroup_size(256) 22 | fn main( 23 | @builtin(global_invocation_id) global_id: vec3, 24 | @builtin(local_invocation_id) local_id: vec3, 25 | ) { 26 | let ix = global_id.x; 27 | let tag_word = scene[config.pathtag_base + ix]; 28 | var agg = reduce_tag(tag_word); 29 | sh_scratch[local_id.x] = agg; 30 | for (var i = 0u; i < firstTrailingBit(WG_SIZE); i += 1u) { 31 | workgroupBarrier(); 32 | if local_id.x + (1u << i) < WG_SIZE { 33 | let other = sh_scratch[local_id.x + (1u << i)]; 34 | agg = combine_tag_monoid(agg, other); 35 | } 36 | workgroupBarrier(); 37 | sh_scratch[local_id.x] = agg; 38 | } 39 | if local_id.x == 0u { 40 | reduced[ix >> LG_WG_SIZE] = agg; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /vello_shaders/shader/pathtag_reduce2.wgsl: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | // This shader is the second stage of reduction for the pathtag 5 | // monoid scan, needed when the number of tags is large. 6 | 7 | #import config 8 | #import pathtag 9 | 10 | @group(0) @binding(0) 11 | var reduced_in: array; 12 | 13 | @group(0) @binding(1) 14 | var reduced: array; 15 | 16 | const LG_WG_SIZE = 8u; 17 | const WG_SIZE = 256u; 18 | 19 | var sh_scratch: array; 20 | 21 | @compute @workgroup_size(256) 22 | fn main( 23 | @builtin(global_invocation_id) global_id: vec3, 24 | @builtin(local_invocation_id) local_id: vec3, 25 | ) { 26 | let ix = global_id.x; 27 | var agg = reduced_in[ix]; 28 | sh_scratch[local_id.x] = agg; 29 | for (var i = 0u; i < firstTrailingBit(WG_SIZE); i += 1u) { 30 | workgroupBarrier(); 31 | if local_id.x + (1u << i) < WG_SIZE { 32 | let other = sh_scratch[local_id.x + (1u << i)]; 33 | agg = combine_tag_monoid(agg, other); 34 | } 35 | workgroupBarrier(); 36 | sh_scratch[local_id.x] = agg; 37 | } 38 | if local_id.x == 0u { 39 | reduced[ix >> LG_WG_SIZE] = agg; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /vello_encoding/src/glyph.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | use std::ops::Range; 5 | 6 | use peniko::{FontData, Style}; 7 | 8 | use super::{StreamOffsets, Transform}; 9 | 10 | /// Positioned glyph. 11 | #[derive(Copy, Clone, Default, Debug)] 12 | pub struct Glyph { 13 | /// Glyph identifier. 14 | pub id: u32, 15 | /// X-offset in run, relative to transform. 16 | pub x: f32, 17 | /// Y-offset in run, relative to transform. 18 | pub y: f32, 19 | } 20 | 21 | /// Properties for a sequence of glyphs in an encoding. 22 | #[derive(Clone)] 23 | pub struct GlyphRun { 24 | /// Font for all glyphs in the run. 25 | pub font: FontData, 26 | /// Global run transform. 27 | pub transform: Transform, 28 | /// Per-glyph transform. 29 | pub glyph_transform: Option, 30 | /// Size of the font in pixels per em. 31 | pub font_size: f32, 32 | /// True if hinting is enabled. 33 | pub hint: bool, 34 | /// Range of normalized coordinates in the parent encoding. 35 | pub normalized_coords: Range, 36 | /// Fill or stroke style. 37 | pub style: Style, 38 | /// Range of glyphs in the parent encoding. 39 | pub glyphs: Range, 40 | /// Stream offsets where this glyph run should be inserted. 41 | pub stream_offsets: StreamOffsets, 42 | } 43 | -------------------------------------------------------------------------------- /sparse_strips/vello_bench/src/fine/pack.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2025 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | use criterion::{Bencher, Criterion}; 5 | use vello_common::coarse::WideTile; 6 | use vello_common::fearless_simd::Simd; 7 | use vello_common::tile::Tile; 8 | use vello_cpu::fine::{Fine, FineKernel, SCRATCH_BUF_SIZE}; 9 | use vello_cpu::region::Regions; 10 | use vello_dev_macros::vello_bench; 11 | 12 | pub fn pack(c: &mut Criterion) { 13 | pack_block(c); 14 | pack_regular(c); 15 | } 16 | 17 | #[vello_bench] 18 | pub fn pack_block>(b: &mut Bencher<'_>, fine: &mut Fine) { 19 | let mut buf = vec![0; SCRATCH_BUF_SIZE]; 20 | let mut regions = Regions::new(WideTile::WIDTH, Tile::HEIGHT, &mut buf); 21 | 22 | b.iter(|| { 23 | regions.update_regions(|region| { 24 | fine.pack(region); 25 | }); 26 | 27 | std::hint::black_box(®ions); 28 | }); 29 | } 30 | 31 | #[vello_bench] 32 | pub fn pack_regular>(b: &mut Bencher<'_>, fine: &mut Fine) { 33 | let mut buf = vec![0; SCRATCH_BUF_SIZE]; 34 | let mut regions = Regions::new(WideTile::WIDTH - 1, Tile::HEIGHT, &mut buf); 35 | 36 | b.iter(|| { 37 | regions.update_regions(|region| { 38 | fine.pack(region); 39 | }); 40 | 41 | std::hint::black_box(®ions); 42 | }); 43 | } 44 | -------------------------------------------------------------------------------- /sparse_strips/vello_cpu/examples/wasm_cpu/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "wasm_cpu" 3 | version.workspace = true 4 | description = "An example showing Vello CPU in the browser." 5 | edition.workspace = true 6 | license.workspace = true 7 | repository.workspace = true 8 | publish = false 9 | 10 | [lib] 11 | crate-type = ["cdylib", "rlib"] 12 | 13 | [lints] 14 | workspace = true 15 | 16 | [dependencies] 17 | bytemuck = { workspace = true, features = [] } 18 | console_error_panic_hook = { workspace = true } 19 | console_log = { workspace = true } 20 | js-sys = "0.3.77" 21 | log = { workspace = true } 22 | vello_common = { workspace = true, features = ["pico_svg"] } 23 | vello_cpu = { workspace = true } 24 | vello_example_scenes = { workspace = true, features = ["cpu"] } 25 | wasm-bindgen = "0.2.100" 26 | wasm-bindgen-futures = "0.4.50" 27 | web-sys = { version = "0.3.77", features = [ 28 | "Window", 29 | "Document", 30 | "Element", 31 | "HtmlElement", 32 | "HtmlCanvasElement", 33 | "CssStyleDeclaration", 34 | "MouseEvent", 35 | "WheelEvent", 36 | "KeyboardEvent", 37 | "CanvasRenderingContext2d", 38 | ] } 39 | wgpu = { workspace = true, features = ["webgl"], default-features = true } 40 | 41 | [target.'cfg(target_arch = "wasm32")'.dependencies] 42 | parley = { version = "0.5.0", default-features = false, features = ["std"] } 43 | 44 | [dev-dependencies] 45 | wasm-bindgen-test = "0.3.50" 46 | -------------------------------------------------------------------------------- /vello_shaders/src/cpu/draw_reduce.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense 3 | 4 | use vello_encoding::{ConfigUniform, DrawMonoid, DrawTag, Monoid}; 5 | 6 | use super::{CpuBinding, util::read_draw_tag_from_scene}; 7 | 8 | const WG_SIZE: usize = 256; 9 | 10 | fn draw_reduce_main(n_wg: u32, config: &ConfigUniform, scene: &[u32], reduced: &mut [DrawMonoid]) { 11 | let num_blocks_total = (config.layout.n_draw_objects as usize).div_ceil(WG_SIZE); 12 | let n_blocks_base = num_blocks_total / WG_SIZE; 13 | let remainder = num_blocks_total % WG_SIZE; 14 | for i in 0..n_wg as usize { 15 | let first_block = n_blocks_base * i + i.min(remainder); 16 | let n_blocks = n_blocks_base + (i < remainder) as usize; 17 | let mut m = DrawMonoid::default(); 18 | for j in 0..WG_SIZE * n_blocks { 19 | let ix = (first_block * WG_SIZE) as u32 + j as u32; 20 | let tag = read_draw_tag_from_scene(config, scene, ix); 21 | m = m.combine(&DrawMonoid::new(DrawTag(tag))); 22 | } 23 | reduced[i] = m; 24 | } 25 | } 26 | 27 | pub fn draw_reduce(n_wg: u32, resources: &[CpuBinding<'_>]) { 28 | let config = resources[0].as_typed(); 29 | let scene = resources[1].as_slice(); 30 | let mut reduced = resources[2].as_slice_mut(); 31 | draw_reduce_main(n_wg, &config, &scene, &mut reduced); 32 | } 33 | -------------------------------------------------------------------------------- /examples/with_winit/src/hot_reload.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2023 the Vello Authors 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT 3 | 4 | use std::time::Duration; 5 | 6 | use anyhow::Result; 7 | use notify_debouncer_full::notify::RecursiveMode; 8 | use notify_debouncer_full::{DebounceEventResult, new_debouncer}; 9 | 10 | pub fn hot_reload(mut f: impl FnMut() -> Option<()> + Send + 'static) -> Result { 11 | let mut debouncer = new_debouncer( 12 | Duration::from_millis(500), 13 | None, 14 | move |res: DebounceEventResult| match res { 15 | Ok(events) => { 16 | for event in events { 17 | // Don't hot reload if the file was only read (i.e. by us...) 18 | if !matches!( 19 | event.kind, 20 | notify_debouncer_full::notify::EventKind::Access(_) 21 | ) { 22 | f().unwrap(); 23 | break; 24 | } 25 | } 26 | } 27 | Err(e) => println!("Hot reloading file watching failed: {e:?}"), 28 | }, 29 | )?; 30 | 31 | debouncer.watch( 32 | vello_shaders::compile::shader_dir().as_path(), 33 | // We currently don't support hot reloading the imports, so don't recurse into there 34 | RecursiveMode::NonRecursive, 35 | )?; 36 | Ok(debouncer) 37 | } 38 | -------------------------------------------------------------------------------- /sparse_strips/vello_hybrid/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 8 | 9 | # Changelog 10 | 11 | The latest published vello_hybrid release is [0.0.4](#004---2025-10-17) which was released on 2025-10-17. 12 | You can find its changes [documented below](#004---2025-10-17). 13 | 14 | ## [Unreleased] 15 | 16 | This release has an [MSRV][] of 1.88. 17 | 18 | ### Added 19 | 20 | - The `Scene` now contains a `push_clip_path` and `pop_clip_path` method for performing non-isolated clipping ([#1203][] by [@LaurenzV]) 21 | 22 | ## [0.0.4][] - 2025-10-17 23 | 24 | This release has an [MSRV][] of 1.86. 25 | 26 | This is the initial release. No changelog was kept for this release. 27 | 28 | See also the [vello_cpu 0.0.4](../vello_cpu/CHANGELOG.md#004---2025-10-17) and [vello_common 0.0.4](../vello_common/CHANGELOG.md#004---2025-10-17) releases. 29 | 30 | [@LaurenzV]: https://github.com/LaurenzV 31 | 32 | [#1203]: https://github.com/linebender/vello/pull/1203 33 | 34 | [Unreleased]: https://github.com/linebender/fearless_simd/compare/sparse-strips-v0.0.4...HEAD 35 | [0.0.4]: https://github.com/linebender/vello/compare/ca6b1e4c7f5b0d95953c3b524f5d3952d5669c5a...sparse-strips-v0.0.4 36 | 37 | [MSRV]: README.md#minimum-supported-rust-version-msrv 38 | --------------------------------------------------------------------------------