From f489d5916824225e5c9700ce784c8e386cf60012 Mon Sep 17 00:00:00 2001 From: stax76 Date: Thu, 28 Apr 2022 21:53:50 +0200 Subject: [PATCH] Fix multi monitor setup with different DPI values --- docs/Changelog.md | 2 ++ src/Misc/CorePlayer.cs | 51 ++++++++++++++++++------------------------ src/Misc/Settings.cs | 1 - 3 files changed, 24 insertions(+), 30 deletions(-) diff --git a/docs/Changelog.md b/docs/Changelog.md index 3805dc3..f0928e0 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -1,5 +1,7 @@ - Fix keyboard layout change not working. +- Fix multi monitor setup with different DPI values. + 5.8.0.0 Beta (2022-04-02) diff --git a/src/Misc/CorePlayer.cs b/src/Misc/CorePlayer.cs index 133c2a0..4ef579e 100644 --- a/src/Misc/CorePlayer.cs +++ b/src/Misc/CorePlayer.cs @@ -1315,41 +1315,34 @@ KP1 script-binding delete_current_file/confirm public void ShowLogo() { - if (!App.ShowLogo || (MainForm.Instance == null || App.Settings.LogoCrash)) + if (!App.ShowLogo || MainForm.Instance == null) return; - try + bool december = DateTime.Now.Month == 12; + + Rectangle cr = MainForm.Instance.ClientRectangle; + int len = Convert.ToInt32(cr.Height / (december ? 4.5 : 5)); + + if (len < 16 || cr.Height < 16) + return; + + using (Bitmap bmp = new Bitmap(len, len)) { - bool december = DateTime.Now.Month == 12; - - Rectangle cr = MainForm.Instance.ClientRectangle; - int len = Convert.ToInt32(cr.Height / (december ? 4.5 : 5)); - - if (len == 0) - return; - - using (Bitmap bmp = new Bitmap(len, len)) + using (Graphics gx = Graphics.FromImage(bmp)) { - using (Graphics gx = Graphics.FromImage(bmp)) - { - gx.InterpolationMode = InterpolationMode.HighQualityBicubic; - gx.Clear(Color.Black); - Rectangle rect = new Rectangle(0, 0, len, len); - Bitmap bmp2 = december ? Properties.Resources.mpvnet_santa : Properties.Resources.mpvnet; - gx.DrawImage(bmp2, rect); - BitmapData bd = bmp.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format32bppPArgb); - int x = Convert.ToInt32((cr.Width - len) / (december ? 1.95 : 2)); - int y = Convert.ToInt32((cr.Height - len) / 2.0 * (december ? 0.85 : 0.9)); - CommandV("overlay-add", "0", $"{x}", $"{y}", "&" + bd.Scan0.ToInt64().ToString(), "0", "bgra", bd.Width.ToString(), bd.Height.ToString(), bd.Stride.ToString()); - bmp.UnlockBits(bd); - IsLogoVisible = true; - } + gx.InterpolationMode = InterpolationMode.HighQualityBicubic; + gx.Clear(Color.Black); + Rectangle rect = new Rectangle(0, 0, len, len); + Bitmap bmp2 = december ? Properties.Resources.mpvnet_santa : Properties.Resources.mpvnet; + gx.DrawImage(bmp2, rect); + BitmapData bd = bmp.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format32bppPArgb); + int x = Convert.ToInt32((cr.Width - len) / (december ? 1.95 : 2)); + int y = Convert.ToInt32((cr.Height - len) / 2.0 * (december ? 0.85 : 0.9)); + CommandV("overlay-add", "0", $"{x}", $"{y}", "&" + bd.Scan0.ToInt64().ToString(), "0", "bgra", bd.Width.ToString(), bd.Height.ToString(), bd.Stride.ToString()); + bmp.UnlockBits(bd); + IsLogoVisible = true; } } - catch (Exception) - { - App.Settings.LogoCrash = true; - } } string GetLanguage(string id) diff --git a/src/Misc/Settings.cs b/src/Misc/Settings.cs index 8dc7e19..38d707b 100644 --- a/src/Misc/Settings.cs +++ b/src/Misc/Settings.cs @@ -15,7 +15,6 @@ namespace mpvnet public class AppSettings { public bool InputDefaultBindingsFixApplied; - public bool LogoCrash; public bool ShowMenuFixApplied; public int Volume = 70; public List RecentFiles = new List();