Browse Source

Merge branch 'master' into features/enable-gpu-rendering-default

danwalmsley 7 years ago
parent
commit
d300b957ad

+ 0 - 3
src/Avalonia.Base/Platform/IRuntimePlatform.cs

@@ -5,10 +5,7 @@ namespace Avalonia.Platform
 {
     public interface IRuntimePlatform
     {
-        Assembly[] GetLoadedAssemblies();
-        void PostThreadPoolItem(Action cb);
         IDisposable StartSystemTimer(TimeSpan interval, Action tick);
-        string GetStackTrace();
         RuntimePlatformInfo GetRuntimeInfo();
         IUnmanagedBlob AllocBlob(int size);
     }

+ 1 - 1
src/Avalonia.Controls/AppBuilderBase.cs

@@ -222,7 +222,7 @@ namespace Avalonia.Controls
 
         private void SetupAvaloniaModules()
         {
-            var moduleInitializers = from assembly in AvaloniaLocator.Current.GetService<IRuntimePlatform>().GetLoadedAssemblies()
+            var moduleInitializers = from assembly in AppDomain.CurrentDomain.GetAssemblies()
                                      from attribute in assembly.GetCustomAttributes<ExportAvaloniaModuleAttribute>()
                                      where attribute.ForWindowingSubsystem == ""
                                       || attribute.ForWindowingSubsystem == WindowingSubsystemName

+ 2 - 2
src/Avalonia.DotNetFrameworkRuntime/AppBuilder.cs

@@ -55,7 +55,7 @@ namespace Avalonia
 
             LoadAssembliesInDirectory();
 
-            var windowingSubsystemAttribute = (from assembly in RuntimePlatform.GetLoadedAssemblies()
+            var windowingSubsystemAttribute = (from assembly in AppDomain.CurrentDomain.GetAssemblies()
                                                from attribute in assembly.GetCustomAttributes<ExportWindowingSubsystemAttribute>()
                                                where attribute.RequiredOS == os && CheckEnvironment(attribute.EnvironmentChecker)
                                                orderby attribute.Priority ascending
@@ -65,7 +65,7 @@ namespace Avalonia
                 throw new InvalidOperationException("No windowing subsystem found. Are you missing assembly references?");
             }
 
-            var renderingSubsystemAttribute = (from assembly in RuntimePlatform.GetLoadedAssemblies()
+            var renderingSubsystemAttribute = (from assembly in AppDomain.CurrentDomain.GetAssemblies()
                                                from attribute in assembly.GetCustomAttributes<ExportRenderingSubsystemAttribute>()
                                                where attribute.RequiredOS == os && CheckEnvironment(attribute.EnvironmentChecker)
                                                where attribute.RequiresWindowingSubsystem == null

+ 1 - 1
src/Linux/Avalonia.LinuxFramebuffer/Mice.cs

@@ -22,7 +22,7 @@ namespace Avalonia.LinuxFramebuffer
             _height = height;
         }
 
-        public void Start() => AvaloniaLocator.Current.GetService<IRuntimePlatform>().PostThreadPoolItem(Worker);
+        public void Start() => ThreadPool.UnsafeQueueUserWorkItem(_ => Worker(), null);
 
         private void Worker()
         {

+ 1 - 3
src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaRuntimeTypeProvider.cs

@@ -91,9 +91,7 @@ namespace Avalonia.Markup.Xaml.Context
 
         private void ScanNewAssemblies()
         {
-            IEnumerable<Assembly> assemblies = AvaloniaLocator.Current
-                .GetService<IRuntimePlatform>()
-                ?.GetLoadedAssemblies();
+            IEnumerable<Assembly> assemblies = AppDomain.CurrentDomain.GetAssemblies();
 
             if (assemblies != null)
             {

+ 1 - 1
src/Shared/PlatformSupport/AssetLoader.cs

@@ -157,7 +157,7 @@ namespace Avalonia.Shared.PlatformSupport
             AssemblyDescriptor rv;
             if (!AssemblyNameCache.TryGetValue(name, out rv))
             {
-                var loadedAssemblies = AvaloniaLocator.Current.GetService<IRuntimePlatform>().GetLoadedAssemblies();
+                var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
                 var match = loadedAssemblies.FirstOrDefault(a => a.GetName().Name == name);
                 if (match != null)
                 {

+ 0 - 4
src/Shared/PlatformSupport/StandardRuntimePlatform.cs

@@ -13,15 +13,11 @@ namespace Avalonia.Shared.PlatformSupport
 {
     internal partial class StandardRuntimePlatform : IRuntimePlatform
     {
-        public void PostThreadPoolItem(Action cb) => ThreadPool.UnsafeQueueUserWorkItem(_ => cb(), null);
-        public Assembly[] GetLoadedAssemblies() => AppDomain.CurrentDomain.GetAssemblies();
         public IDisposable StartSystemTimer(TimeSpan interval, Action tick)
         {
             return new Timer(_ => tick(), null, interval, interval);
         }
 
-        public string GetStackTrace() => Environment.StackTrace;
-
         public IUnmanagedBlob AllocBlob(int size) => new UnmanagedBlob(this, size);
         
         class UnmanagedBlob : IUnmanagedBlob

+ 0 - 3
src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs

@@ -756,9 +756,6 @@ namespace Avalonia.Win32.Interop
         [DllImport("kernel32.dll")]
         public static extern IntPtr GetModuleHandle(string lpModuleName);
 
-        [DllImport("kernel32.dll")]
-        public static extern uint GetCurrentThreadId();
-
         [DllImport("user32.dll")]
         public static extern int GetSystemMetrics(SystemMetric smIndex);
 

+ 3 - 3
src/Windows/Avalonia.Win32/Win32Platform.cs

@@ -42,7 +42,7 @@ namespace Avalonia.Win32
     class Win32Platform : IPlatformThreadingInterface, IPlatformSettings, IWindowingPlatform, IPlatformIconLoader
     {
         private static readonly Win32Platform s_instance = new Win32Platform();
-        private static uint _uiThread;
+        private static Thread _uiThread;
         private UnmanagedMethods.WndProc _wndProcDelegate;
         private IntPtr _hwnd;
         private readonly List<Delegate> _delegates = new List<Delegate>();
@@ -82,7 +82,7 @@ namespace Avalonia.Win32
                 .Bind<IPlatformIconLoader>().ToConstant(s_instance);
             Win32GlManager.Initialize();
             UseDeferredRendering = deferredRendering;
-            _uiThread = UnmanagedMethods.GetCurrentThreadId();
+            _uiThread = Thread.CurrentThread;
 
             if (OleContext.Current != null)
                 AvaloniaLocator.CurrentMutable.Bind<IPlatformDragSource>().ToSingleton<DragSource>();
@@ -146,7 +146,7 @@ namespace Avalonia.Win32
                 new IntPtr(SignalL));
         }
 
-        public bool CurrentThreadIsLoopThread => _uiThread == UnmanagedMethods.GetCurrentThreadId();
+        public bool CurrentThreadIsLoopThread => _uiThread == Thread.CurrentThread;
 
         public event Action<DispatcherPriority?> Signaled;