@@ -7,7 +7,7 @@ use scenes::ImageCache;
77use scenes:: SimpleText ;
88use vello:: {
99 AaConfig , Scene ,
10- kurbo:: { Affine , Rect , RoundedRect , Stroke } ,
10+ kurbo:: { Affine , Point , Rect , RoundedRect , Size , Stroke } ,
1111 peniko:: { Extend , ImageQuality , color:: palette} ,
1212} ;
1313use vello_tests:: { TestParams , smoke_snapshot_test_sync, snapshot_test_sync} ;
@@ -89,3 +89,22 @@ fn text_stroke_width_zero() {
8989 . unwrap ( )
9090 . assert_mean_less_than ( 0.001 ) ;
9191}
92+
93+ /// Test for <https://github.com/linebender/vello/issues/1066>
94+ #[ test]
95+ fn test_negative_dash_offset ( ) {
96+ let mut scene = Scene :: new ( ) ;
97+ let stroke = Stroke :: new ( 1.0 ) . with_dashes ( -30. , [ 4. , 2. ] ) ;
98+ scene. stroke (
99+ & stroke,
100+ Affine :: IDENTITY ,
101+ palette:: css:: BLUE ,
102+ None ,
103+ & Rect :: from_origin_size ( Point :: new ( 1. , 1. ) , Size :: new ( 28. , 28. ) ) ,
104+ ) ;
105+ let mut params = TestParams :: new ( "negative_dash_offset" , 30 , 30 ) ;
106+ params. anti_aliasing = AaConfig :: Area ;
107+ smoke_snapshot_test_sync ( scene, & params)
108+ . unwrap ( )
109+ . assert_mean_less_than ( 0.001 ) ;
110+ }
0 commit comments