(034bb920b) Fixed selecting display resolution when using borderless on Linux

This commit is contained in:
Joonas Rikkonen
2019-06-04 16:01:49 +03:00
parent 6ffe13b4b7
commit c39eec8c89
2 changed files with 16 additions and 11 deletions

View File

@@ -226,11 +226,6 @@ namespace Barotrauma
GraphicsWidth = Config.GraphicsWidth;
GraphicsHeight = Config.GraphicsHeight;
if (Config.WindowMode == WindowMode.BorderlessWindowed)
{
GraphicsWidth = GraphicsDevice.DisplayMode.Width;
GraphicsHeight = GraphicsDevice.DisplayMode.Height;
}
GraphicsDeviceManager.GraphicsProfile = GraphicsProfile.Reach;
GraphicsDeviceManager.PreferredBackBufferFormat = SurfaceFormat.Color;
@@ -272,6 +267,9 @@ namespace Barotrauma
{
base.Initialize();
DisplayWidth = GraphicsDevice.DisplayMode.Width;
DisplayHeight = GraphicsDevice.DisplayMode.Height;
RequestGraphicsSettings();
ScissorTestEnable = new RasterizerState() { ScissorTestEnable = true };
@@ -333,6 +331,7 @@ namespace Barotrauma
ApplyGraphicsSettings();
yield return CoroutineStatus.Success;
}
#endif
private void HandleDefocus(object sender, EventArgs e)
{
@@ -349,9 +348,6 @@ namespace Barotrauma
}
#endif
loadingCoroutine = CoroutineManager.StartCoroutine(Load(canLoadInSeparateThread), "", canLoadInSeparateThread);
}
private void InitUserStats()
{
if (GameSettings.ShowUserStatisticsPrompt)

View File

@@ -199,7 +199,7 @@ namespace Barotrauma
// In a bundled .app you just disable HiDPI in the info.plist
// but that's probably not gonna happen.
if (mode.Width > GameMain.Instance.GraphicsDevice.DisplayMode.Width || mode.Height > GameMain.Instance.GraphicsDevice.DisplayMode.Height) { continue; }
if (mode.Width > GameMain.DisplayWidth || mode.Height > GameMain.DisplayHeight) { continue; }
#endif
supportedDisplayModes.Add(mode);
}
@@ -257,6 +257,15 @@ namespace Barotrauma
{
displayModeDD.SelectItem(GameMain.Config.WindowMode);
}
#endif
displayModeDD.OnSelected = (guiComponent, obj) =>
{
displayModeDD.SelectItem(WindowMode.Fullscreen);
}
else
{
displayModeDD.SelectItem(GameMain.Config.WindowMode);
}
#endif
displayModeDD.OnSelected = (guiComponent, obj) =>
{
@@ -266,8 +275,8 @@ namespace Barotrauma
if (GameMain.Config.WindowMode == WindowMode.BorderlessWindowed)
{
resolutionDD.SelectItem(GraphicsAdapter.DefaultAdapter.SupportedDisplayModes.First(
m => m.Width == GameMain.Instance.GraphicsDevice.DisplayMode.Width &&
m.Height == GameMain.Instance.GraphicsDevice.DisplayMode.Height));
m => m.Width == GameMain.DisplayWidth &&
m.Height == GameMain.DisplayHeight));
resolutionDD.ButtonEnabled = false;
}
else