diff --git a/src/Linux/Avalonia.LinuxFramebuffer/Output/DrmBindings.cs b/src/Linux/Avalonia.LinuxFramebuffer/Output/DrmBindings.cs index 6febe6c26b..3468599381 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/Output/DrmBindings.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/Output/DrmBindings.cs @@ -170,6 +170,11 @@ namespace Avalonia.LinuxFramebuffer.Output } } + public DrmCard(int fd) + { + Fd = fd; + } + public DrmResources GetResources(bool connectorsForceProbe = false) => new DrmResources(Fd, connectorsForceProbe); public void Dispose() { diff --git a/src/Linux/Avalonia.LinuxFramebuffer/Output/DrmOutput.cs b/src/Linux/Avalonia.LinuxFramebuffer/Output/DrmOutput.cs index ac87c9c796..91441c64a0 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/Output/DrmOutput.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/Output/DrmOutput.cs @@ -7,10 +7,8 @@ using Avalonia.OpenGL; using Avalonia.OpenGL.Egl; using Avalonia.OpenGL.Surfaces; using Avalonia.Platform; -using Avalonia.Platform.Interop; using static Avalonia.LinuxFramebuffer.NativeUnsafeMethods; using static Avalonia.LinuxFramebuffer.Output.LibDrm; -using static Avalonia.LinuxFramebuffer.Output.LibDrm.GbmColorFormats; namespace Avalonia.LinuxFramebuffer.Output { @@ -51,12 +49,15 @@ namespace Avalonia.LinuxFramebuffer.Output } public DrmOutput(string path = null, bool connectorsForceProbe = false, DrmOutputOptions options = null) + :this(new DrmCard(path), connectorsForceProbe, options) + { + } + + public DrmOutput(DrmCard card, bool connectorsForceProbe = false, DrmOutputOptions options = null) { if (options != null) _outputOptions = options; - var card = new DrmCard(path); - var resources = card.GetResources(connectorsForceProbe); IEnumerable connectors = resources.Connectors;