|
|
|
@ -19,8 +19,10 @@ namespace Avalonia.Direct2D1.RenderTests.Media |
|
|
|
{ |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task FillRule_EvenOdd() |
|
|
|
[Theory] |
|
|
|
[InlineData(FillRule.EvenOdd)] |
|
|
|
[InlineData(FillRule.NonZero)] |
|
|
|
public async Task FillRule_Stroke(FillRule fillRule) |
|
|
|
{ |
|
|
|
var target = new Border |
|
|
|
{ |
|
|
|
@ -31,105 +33,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media |
|
|
|
{ |
|
|
|
Data = new GeometryGroup |
|
|
|
{ |
|
|
|
FillRule = FillRule.EvenOdd, |
|
|
|
Children = |
|
|
|
{ |
|
|
|
new RectangleGeometry(new Rect(25, 25, 100, 100)), |
|
|
|
new EllipseGeometry |
|
|
|
{ |
|
|
|
Center = new Point(125, 125), |
|
|
|
RadiusX = 50, |
|
|
|
RadiusY = 50, |
|
|
|
}, |
|
|
|
} |
|
|
|
}, |
|
|
|
Fill = Brushes.Blue, |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
await RenderToFile(target); |
|
|
|
CompareImages(); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task FillRule_NonZero() |
|
|
|
{ |
|
|
|
var target = new Border |
|
|
|
{ |
|
|
|
Width = 200, |
|
|
|
Height = 200, |
|
|
|
Background = Brushes.White, |
|
|
|
Child = new Path |
|
|
|
{ |
|
|
|
Data = new GeometryGroup |
|
|
|
{ |
|
|
|
FillRule = FillRule.NonZero, |
|
|
|
Children = |
|
|
|
{ |
|
|
|
new RectangleGeometry(new Rect(25, 25, 100, 100)), |
|
|
|
new EllipseGeometry |
|
|
|
{ |
|
|
|
Center = new Point(125, 125), |
|
|
|
RadiusX = 50, |
|
|
|
RadiusY = 50, |
|
|
|
}, |
|
|
|
} |
|
|
|
}, |
|
|
|
Fill = Brushes.Blue, |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
await RenderToFile(target); |
|
|
|
CompareImages(); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task FillRule_EvenOdd_Stroke() |
|
|
|
{ |
|
|
|
var target = new Border |
|
|
|
{ |
|
|
|
Width = 200, |
|
|
|
Height = 200, |
|
|
|
Background = Brushes.White, |
|
|
|
Child = new Path |
|
|
|
{ |
|
|
|
Data = new GeometryGroup |
|
|
|
{ |
|
|
|
FillRule = FillRule.EvenOdd, |
|
|
|
Children = |
|
|
|
{ |
|
|
|
new RectangleGeometry(new Rect(25, 25, 100, 100)), |
|
|
|
new EllipseGeometry |
|
|
|
{ |
|
|
|
Center = new Point(125, 125), |
|
|
|
RadiusX = 50, |
|
|
|
RadiusY = 50, |
|
|
|
}, |
|
|
|
} |
|
|
|
}, |
|
|
|
Fill = Brushes.Blue, |
|
|
|
Stroke = Brushes.Red, |
|
|
|
StrokeThickness = 1, |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
await RenderToFile(target); |
|
|
|
CompareImages(); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task FillRule_NonZero_Stroke() |
|
|
|
{ |
|
|
|
var target = new Border |
|
|
|
{ |
|
|
|
Width = 200, |
|
|
|
Height = 200, |
|
|
|
Background = Brushes.White, |
|
|
|
Child = new Path |
|
|
|
{ |
|
|
|
Data = new GeometryGroup |
|
|
|
{ |
|
|
|
FillRule = FillRule.NonZero, |
|
|
|
FillRule = fillRule, |
|
|
|
Children = |
|
|
|
{ |
|
|
|
new RectangleGeometry(new Rect(25, 25, 100, 100)), |
|
|
|
@ -147,8 +51,9 @@ namespace Avalonia.Direct2D1.RenderTests.Media |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
await RenderToFile(target); |
|
|
|
CompareImages(); |
|
|
|
var testName = $"{nameof(FillRule_Stroke)}_{fillRule}"; |
|
|
|
await RenderToFile(target, testName); |
|
|
|
CompareImages(testName); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|