make screen actually resize when changing screen orientation/rotation/gap

This commit is contained in:
CasualPokePlayer 2022-02-02 20:02:16 -08:00
parent 2c86c07016
commit 02e9fea0c5
1 changed files with 19 additions and 36 deletions

View File

@ -27,7 +27,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
Rotate0,
Rotate90,
Rotate180,
Rotate270
Rotate270,
}
public class NDSSettings
@ -64,24 +64,22 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
[DefaultValue(true)]
public bool AccurateAudioBitrate { get; set; }
public NDSSettings Clone()
public NDSSettings Clone() => MemberwiseClone() as NDSSettings;
public static bool NeedsScreenResize(NDSSettings x, NDSSettings y)
{
return (NDSSettings)MemberwiseClone();
bool ret = false;
ret |= x.ScreenLayout != y.ScreenLayout;
ret |= x.ScreenGap != y.ScreenGap;
ret |= x.ScreenRotation != y.ScreenRotation;
return ret;
}
public static bool NeedsReboot(NDSSettings x, NDSSettings y)
{
return false;
}
public NDSSettings()
{
SettingsUtil.SetDefaultValues(this);
}
public NDSSettings() => SettingsUtil.SetDefaultValues(this);
}
private static readonly DateTime minDate = new DateTime(2000, 1, 1);
private static readonly DateTime maxDate = new DateTime(2099, 12, 31, 23, 59, 59);
private static readonly DateTime minDate = new(2000, 1, 1);
private static readonly DateTime maxDate = new(2099, 12, 31, 23, 59, 59);
public class NDSSyncSettings
{
@ -255,37 +253,22 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
set => _firmwaremessage = value.Substring(0, Math.Min(26, value.Length));
}
public NDSSyncSettings Clone()
{
return (NDSSyncSettings)MemberwiseClone();
}
public NDSSyncSettings Clone() => MemberwiseClone() as NDSSyncSettings;
public static bool NeedsReboot(NDSSyncSettings x, NDSSyncSettings y)
{
return !DeepEquality.DeepEquals(x, y);
}
public static bool NeedsReboot(NDSSyncSettings x, NDSSyncSettings y) => !DeepEquality.DeepEquals(x, y);
public NDSSyncSettings()
{
SettingsUtil.SetDefaultValues(this);
}
public NDSSyncSettings() => SettingsUtil.SetDefaultValues(this);
}
public NDSSettings GetSettings()
{
return _settings.Clone();
}
public NDSSettings GetSettings() => _settings.Clone();
public NDSSyncSettings GetSyncSettings()
{
return _syncSettings.Clone();
}
public NDSSyncSettings GetSyncSettings() => _syncSettings.Clone();
public PutSettingsDirtyBits PutSettings(NDSSettings o)
{
var ret = NDSSettings.NeedsReboot(_settings, o);
var ret = NDSSettings.NeedsScreenResize(_settings, o);
_settings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret ? PutSettingsDirtyBits.ScreenLayoutChanged : PutSettingsDirtyBits.None;
}
public PutSettingsDirtyBits PutSyncSettings(NDSSyncSettings o)