workaround not reproducible logo drawing crash
This commit is contained in:
@@ -11,6 +11,8 @@
|
||||
- mpv.net specific commands, the command palette, auto-play property
|
||||
and various other things are documented in the manual.
|
||||
- The action used for the right mouse button can be configured.
|
||||
- Workaround not reproducible logo drawing crash.
|
||||
- MediaInfo 22.03
|
||||
|
||||
|
||||
5.7.0.0 Stable (2022-03-09)
|
||||
|
||||
@@ -1330,34 +1330,41 @@ KP1 script-binding delete_current_file/confirm
|
||||
|
||||
public void ShowLogo()
|
||||
{
|
||||
if (MainForm.Instance is null)
|
||||
if (MainForm.Instance == null || App.Settings.LogoCrash)
|
||||
return;
|
||||
|
||||
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))
|
||||
try
|
||||
{
|
||||
using (Graphics gx = Graphics.FromImage(bmp))
|
||||
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))
|
||||
{
|
||||
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;
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
App.Settings.LogoCrash = true;
|
||||
}
|
||||
}
|
||||
|
||||
string GetLanguage(string id)
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace mpvnet
|
||||
public class AppSettings
|
||||
{
|
||||
public bool InputDefaultBindingsFixApplied;
|
||||
public bool LogoCrash;
|
||||
public bool ShowMenuFixApplied;
|
||||
public int Volume = 70;
|
||||
public List<string> RecentFiles = new List<string>();
|
||||
|
||||
Reference in New Issue
Block a user