Browse Source

Added VisualBrush flips.

pull/111/head
Steven Kirk 11 years ago
parent
commit
c69686142c
  1. 4
      src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs
  2. 117
      tests/Perspex.RenderTests/Media/VisualBrushTests.cs
  3. BIN
      tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_FlipX.expected.png
  4. BIN
      tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_FlipXY.expected.png
  5. BIN
      tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_FlipY.expected.png

4
src/Windows/Perspex.Direct2D1/Media/VisualBrushImpl.cs

@ -56,8 +56,8 @@ namespace Perspex.Direct2D1.Media
renderer.Render(visual, null, transform, drawRect);
var result = new BitmapBrush(brt, brt.Bitmap);
result.ExtendModeX = ExtendMode.Wrap;
result.ExtendModeY = ExtendMode.Wrap;
result.ExtendModeX = (brush.TileMode & TileMode.FlipX) != 0 ? ExtendMode.Mirror : ExtendMode.Wrap;
result.ExtendModeY = (brush.TileMode & TileMode.FlipY) != 0 ? ExtendMode.Mirror : ExtendMode.Wrap;
if (brush.TileMode != TileMode.None)
{

117
tests/Perspex.RenderTests/Media/VisualBrushTests.cs

@ -475,5 +475,122 @@ namespace Perspex.Direct2D1.RenderTests.Media
this.RenderToFile(target);
this.CompareImages();
}
[Fact]
public void VisualBrush_FlipX()
{
Decorator target = new Decorator
{
Padding = new Thickness(8),
Width = 200,
Height = 200,
Child = new Rectangle
{
Fill = new VisualBrush
{
Stretch = Stretch.None,
TileMode = TileMode.FlipX,
DestinationRect = new RelativeRect(0, 0, 0.5, 0.5, OriginUnit.Percent),
Visual = new Border
{
Width = 92,
Height = 92,
Background = Brushes.Red,
BorderBrush = Brushes.Black,
BorderThickness = 2,
Child = new TextBlock
{
Text = "Perspex",
FontSize = 12,
FontFamily = "Arial",
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
}
}
}
}
};
this.RenderToFile(target);
this.CompareImages();
}
[Fact]
public void VisualBrush_FlipY()
{
Decorator target = new Decorator
{
Padding = new Thickness(8),
Width = 200,
Height = 200,
Child = new Rectangle
{
Fill = new VisualBrush
{
Stretch = Stretch.None,
TileMode = TileMode.FlipY,
DestinationRect = new RelativeRect(0, 0, 0.5, 0.5, OriginUnit.Percent),
Visual = new Border
{
Width = 92,
Height = 92,
Background = Brushes.Red,
BorderBrush = Brushes.Black,
BorderThickness = 2,
Child = new TextBlock
{
Text = "Perspex",
FontSize = 12,
FontFamily = "Arial",
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
}
}
}
}
};
this.RenderToFile(target);
this.CompareImages();
}
[Fact]
public void VisualBrush_FlipXY()
{
Decorator target = new Decorator
{
Padding = new Thickness(8),
Width = 200,
Height = 200,
Child = new Rectangle
{
Fill = new VisualBrush
{
Stretch = Stretch.None,
TileMode = TileMode.FlipXY,
DestinationRect = new RelativeRect(0, 0, 0.5, 0.5, OriginUnit.Percent),
Visual = new Border
{
Width = 92,
Height = 92,
Background = Brushes.Red,
BorderBrush = Brushes.Black,
BorderThickness = 2,
Child = new TextBlock
{
Text = "Perspex",
FontSize = 12,
FontFamily = "Arial",
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
}
}
}
}
};
this.RenderToFile(target);
this.CompareImages();
}
}
}

BIN
tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_FlipX.expected.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_FlipXY.expected.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
tests/TestFiles/Direct2D1/Media/VisualBrush/VisualBrush_FlipY.expected.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Loading…
Cancel
Save