Pārlūkot izejas kodu

Merge branch 'master' into fixes/fix-skia-formatted-text-impl

Steven Kirk 9 gadi atpakaļ
vecāks
revīzija
b9dbc8c11f

+ 7 - 0
readme.md

@@ -25,6 +25,13 @@ You can find the packages here: ([stable(ish)](https://www.nuget.org/packages/Av
 You can install the package like this:
 `Install-Package Avalonia -Pre`
 
+## Bleeding Edge Builds
+
+Try out the latest build of Avalonia available for download here:
+https://ci.appveyor.com/project/AvaloniaUI/Avalonia/branch/master/artifacts
+
+Try out the ControlCatalog to give it a quick demo.
+
 ## Background
 
 Avalonia is a multi-platform windowing toolkit - somewhat like WPF - that is intended to be multi-

+ 7 - 1
src/Skia/Avalonia.Skia/PlatformRenderInterface.cs

@@ -2,11 +2,12 @@ using System;
 using System.IO;
 using Avalonia.Media;
 using Avalonia.Platform;
+using Avalonia.Rendering;
 using SkiaSharp;
 
 namespace Avalonia.Skia
 {
-    public class PlatformRenderInterface : IPlatformRenderInterface
+    public class PlatformRenderInterface : IPlatformRenderInterface, IRendererFactory
     {
         public IBitmapImpl CreateBitmap(int width, int height)
         {
@@ -48,6 +49,11 @@ namespace Avalonia.Skia
             }
         }
 
+        public IRenderer CreateRenderer(IRenderRoot root, IRenderLoop renderLoop)
+        {
+            return new Renderer(root, renderLoop);
+        }
+
         public IRenderTargetBitmapImpl CreateRenderTargetBitmap(int width, int height)
         {
             if (width < 1)

+ 7 - 1
src/Skia/Avalonia.Skia/SkiaPlatform.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Text;
 using Avalonia.Controls;
 using Avalonia.Platform;
+using Avalonia.Rendering;
 
 namespace Avalonia
 {
@@ -23,7 +24,12 @@ namespace Avalonia.Skia
         private static bool s_forceSoftwareRendering;
 
         public static void Initialize()
-            => AvaloniaLocator.CurrentMutable.Bind<IPlatformRenderInterface>().ToConstant(new PlatformRenderInterface());
+        {
+            var renderInterface = new PlatformRenderInterface();
+            AvaloniaLocator.CurrentMutable
+                .Bind<IPlatformRenderInterface>().ToConstant(renderInterface)
+                .Bind<IRendererFactory>().ToConstant(renderInterface);
+        }
 
         public static bool ForceSoftwareRendering
         {

+ 1 - 0
src/Windows/Avalonia.Win32/WindowImpl.cs

@@ -682,6 +682,7 @@ namespace Avalonia.Win32
             }
 
             UnmanagedMethods.ShowWindow(_hwnd, command);
+            UnmanagedMethods.SetFocus(_hwnd);
         }
 
         public void SetIcon(IWindowIconImpl icon)