diff --git a/src/Avalonia.Native/AvaloniaNativePlatform.cs b/src/Avalonia.Native/AvaloniaNativePlatform.cs index cfd47d48de..804cf7f8ac 100644 --- a/src/Avalonia.Native/AvaloniaNativePlatform.cs +++ b/src/Avalonia.Native/AvaloniaNativePlatform.cs @@ -110,11 +110,20 @@ namespace Avalonia.Native .Bind().ToConstant(new SystemDialogs(_factory.CreateSystemDialogs())) .Bind().ToConstant(new PlatformHotkeyConfiguration(KeyModifiers.Meta)) .Bind().ToConstant(new MacOSMountedVolumeInfoProvider()) - .Bind().ToConstant(new AvaloniaNativeDragSource(_factory)) - ; + .Bind().ToConstant(new AvaloniaNativeDragSource(_factory)); + if (_options.UseGpu) - AvaloniaLocator.CurrentMutable.Bind() - .ToConstant(_glFeature = new GlPlatformFeature(_factory.ObtainGlDisplay())); + { + try + { + AvaloniaLocator.CurrentMutable.Bind() + .ToConstant(_glFeature = new GlPlatformFeature(_factory.ObtainGlDisplay())); + } + catch (Exception) + { + // ignored + } + } } public IWindowImpl CreateWindow() diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index 4b13666edd..08c5d51ea0 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/src/Avalonia.Native/WindowImplBase.cs @@ -351,12 +351,12 @@ namespace Avalonia.Native public Point PointToClient(PixelPoint point) { - return _native.PointToClient(point.ToAvnPoint()).ToAvaloniaPoint(); + return _native?.PointToClient(point.ToAvnPoint()).ToAvaloniaPoint() ?? default; } public PixelPoint PointToScreen(Point point) { - return _native.PointToScreen(point.ToAvnPoint()).ToAvaloniaPixelPoint(); + return _native?.PointToScreen(point.ToAvnPoint()).ToAvaloniaPixelPoint() ?? default; } public void Hide()