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
|
- mpv.net specific commands, the command palette, auto-play property
|
||||||
and various other things are documented in the manual.
|
and various other things are documented in the manual.
|
||||||
- The action used for the right mouse button can be configured.
|
- 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)
|
5.7.0.0 Stable (2022-03-09)
|
||||||
|
|||||||
@@ -1330,34 +1330,41 @@ KP1 script-binding delete_current_file/confirm
|
|||||||
|
|
||||||
public void ShowLogo()
|
public void ShowLogo()
|
||||||
{
|
{
|
||||||
if (MainForm.Instance is null)
|
if (MainForm.Instance == null || App.Settings.LogoCrash)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool december = DateTime.Now.Month == 12;
|
try
|
||||||
|
|
||||||
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))
|
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;
|
using (Graphics gx = Graphics.FromImage(bmp))
|
||||||
gx.Clear(Color.Black);
|
{
|
||||||
Rectangle rect = new Rectangle(0, 0, len, len);
|
gx.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
||||||
Bitmap bmp2 = december ? Properties.Resources.mpvnet_santa : Properties.Resources.mpvnet;
|
gx.Clear(Color.Black);
|
||||||
gx.DrawImage(bmp2, rect);
|
Rectangle rect = new Rectangle(0, 0, len, len);
|
||||||
BitmapData bd = bmp.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format32bppPArgb);
|
Bitmap bmp2 = december ? Properties.Resources.mpvnet_santa : Properties.Resources.mpvnet;
|
||||||
int x = Convert.ToInt32((cr.Width - len) / (december ? 1.95 : 2));
|
gx.DrawImage(bmp2, rect);
|
||||||
int y = Convert.ToInt32((cr.Height - len) / 2.0 * (december ? 0.85 : 0.9));
|
BitmapData bd = bmp.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format32bppPArgb);
|
||||||
CommandV("overlay-add", "0", $"{x}", $"{y}", "&" + bd.Scan0.ToInt64().ToString(), "0", "bgra", bd.Width.ToString(), bd.Height.ToString(), bd.Stride.ToString());
|
int x = Convert.ToInt32((cr.Width - len) / (december ? 1.95 : 2));
|
||||||
bmp.UnlockBits(bd);
|
int y = Convert.ToInt32((cr.Height - len) / 2.0 * (december ? 0.85 : 0.9));
|
||||||
IsLogoVisible = true;
|
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)
|
string GetLanguage(string id)
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ namespace mpvnet
|
|||||||
public class AppSettings
|
public class AppSettings
|
||||||
{
|
{
|
||||||
public bool InputDefaultBindingsFixApplied;
|
public bool InputDefaultBindingsFixApplied;
|
||||||
|
public bool LogoCrash;
|
||||||
public bool ShowMenuFixApplied;
|
public bool ShowMenuFixApplied;
|
||||||
public int Volume = 70;
|
public int Volume = 70;
|
||||||
public List<string> RecentFiles = new List<string>();
|
public List<string> RecentFiles = new List<string>();
|
||||||
|
|||||||
Reference in New Issue
Block a user