Browse Source

Added DrmOutputOptions.VideMode property

pull/9119/head
Markus Wenzl 4 years ago
parent
commit
fe3b48054d
  1. 2
      src/Linux/Avalonia.LinuxFramebuffer/DrmOutputOptions.cs
  2. 11
      src/Linux/Avalonia.LinuxFramebuffer/Output/DrmOutput.cs

2
src/Linux/Avalonia.LinuxFramebuffer/DrmOutputOptions.cs

@ -23,5 +23,7 @@ namespace Avalonia.LinuxFramebuffer
/// Default: R0 G0 B0 A0
/// </summary>
public Color InitialBufferSwappingColor { get; set; } = new Color(0, 0, 0, 0);
public PixelSize? VideoMode { get; set; }
}
}

11
src/Linux/Avalonia.LinuxFramebuffer/Output/DrmOutput.cs

@ -51,7 +51,16 @@ namespace Avalonia.LinuxFramebuffer.Output
if(connector == null)
throw new InvalidOperationException("Unable to find connected DRM connector");
var mode = connector.Modes.OrderByDescending(x => x.IsPreferred)
DrmModeInfo? mode = null;
if (options?.VideoMode != null)
{
mode = connector.Modes
.FirstOrDefault(x => x.Resolution.Width == options.VideoMode.Value.Width &&
x.Resolution.Height == options.VideoMode.Value.Height);
}
mode ??= connector.Modes.OrderByDescending(x => x.IsPreferred)
.ThenByDescending(x => x.Resolution.Width * x.Resolution.Height)
//.OrderByDescending(x => x.Resolution.Width * x.Resolution.Height)
.FirstOrDefault();

Loading…
Cancel
Save