Browse Source

Merge branch 'master' into fixes/draw-line-on-deferred-renderer

pull/3906/head
danwalmsley 6 years ago
committed by GitHub
parent
commit
7ddd508c9f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      src/Avalonia.Controls/Image.cs
  2. 26
      tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs

3
src/Avalonia.Controls/Image.cs

@ -69,10 +69,11 @@ namespace Avalonia.Controls
{
var source = Source;
if (source != null)
if (source != null && Bounds.Width > 0 && Bounds.Height > 0)
{
Rect viewPort = new Rect(Bounds.Size);
Size sourceSize = source.Size;
Vector scale = Stretch.CalculateScaling(Bounds.Size, sourceSize, StretchDirection);
Size scaledSize = sourceSize * scale;
Rect destRect = viewPort

26
tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs

@ -360,7 +360,7 @@ namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
var result = initial.CloneScene();
sceneBuilder.Update(result, border);
var borderNode = (VisualNode)result.Root.Children[0];
Assert.Same(border, borderNode.Visual);
@ -880,16 +880,24 @@ namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
{
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var bitmap = RefCountable.Create(Mock.Of<IBitmapImpl>());
var bitmap = RefCountable.Create(Mock.Of<IBitmapImpl>(
x => x.PixelSize == new PixelSize(100, 100) &&
x.Dpi == new Vector(96, 96)));
Image img;
var tree = new TestRoot
{
Child = img = new Image
{
Source = new Bitmap(bitmap)
Source = new Bitmap(bitmap),
Height = 100,
Width = 100
}
};
tree.Measure(Size.Infinity);
tree.Arrange(new Rect(new Size(100, 100)));
Assert.Equal(2, bitmap.RefCount);
IRef<IDrawOperation> operation;
@ -912,16 +920,24 @@ namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
{
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var bitmap = RefCountable.Create(Mock.Of<IBitmapImpl>());
var bitmap = RefCountable.Create(Mock.Of<IBitmapImpl>(
x => x.PixelSize == new PixelSize(100, 100) &&
x.Dpi == new Vector(96, 96)));
Image img;
var tree = new TestRoot
{
Child = img = new Image
{
Source = new Bitmap(bitmap)
Source = new Bitmap(bitmap),
Width = 100,
Height = 100
}
};
tree.Measure(Size.Infinity);
tree.Arrange(new Rect(new Size(100, 100)));
var scene = new Scene(tree);
var sceneBuilder = new SceneBuilder();
sceneBuilder.UpdateAll(scene);

Loading…
Cancel
Save