mirror of
https://github.com/bloxstraplabs/bloxstrap.git
synced 2025-04-21 10:01:27 -07:00
Add disabling fullscreen optimizations (#98)
This commit is contained in:
parent
4050b1c2e6
commit
db21afaaeb
@ -704,6 +704,21 @@ namespace Bloxstrap
|
||||
// and also to delete our old version folder
|
||||
Directory.Delete(oldVersionFolder, true);
|
||||
}
|
||||
|
||||
// move old compatibility flags for the old location
|
||||
using (RegistryKey appFlagsKey = Registry.CurrentUser.CreateSubKey($"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers"))
|
||||
{
|
||||
string oldGameClientLocation = Path.Combine(oldVersionFolder, "RobloxPlayerBeta.exe");
|
||||
string newGameClientLocation = Path.Combine(_versionFolder, "RobloxPlayerBeta.exe");
|
||||
string? appFlags = (string?)appFlagsKey.GetValue(oldGameClientLocation);
|
||||
|
||||
if (appFlags is not null)
|
||||
{
|
||||
App.Logger.WriteLine($"[Bootstrapper::InstallLatestVersion] Migrating app compatibility flags from {oldGameClientLocation} to {newGameClientLocation}...");
|
||||
appFlagsKey.SetValue(newGameClientLocation, appFlags);
|
||||
appFlagsKey.DeleteValue(oldGameClientLocation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Dialog is not null)
|
||||
@ -718,6 +733,30 @@ namespace Bloxstrap
|
||||
{
|
||||
SetStatus("Applying Roblox modifications...");
|
||||
|
||||
using (RegistryKey appFlagsKey = Registry.CurrentUser.CreateSubKey($"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers"))
|
||||
{
|
||||
const string flag = " DISABLEDXMAXIMIZEDWINDOWEDMODE";
|
||||
string gameClientLocation = Path.Combine(_versionFolder, "RobloxPlayerBeta.exe");
|
||||
string? appFlags = (string?)appFlagsKey.GetValue(gameClientLocation);
|
||||
|
||||
if (App.Settings.Prop.DisableFullscreenOptimizations)
|
||||
{
|
||||
if (appFlags is null)
|
||||
appFlagsKey.SetValue(gameClientLocation, $"~{flag}");
|
||||
else if (!appFlags.Contains(flag))
|
||||
appFlagsKey.SetValue(gameClientLocation, appFlags + flag);
|
||||
}
|
||||
else if (appFlags is not null && appFlags.Contains(flag))
|
||||
{
|
||||
// if there's more than one space, there's more flags set we need to preserve
|
||||
if (appFlags.Split(' ').Length > 2)
|
||||
appFlagsKey.SetValue(gameClientLocation, appFlags.Remove(appFlags.IndexOf(flag), flag.Length));
|
||||
else
|
||||
appFlagsKey.DeleteValue(gameClientLocation);
|
||||
}
|
||||
}
|
||||
|
||||
// handle file mods
|
||||
string modFolder = Path.Combine(Directories.Modifications);
|
||||
|
||||
// manifest has been moved to State.json
|
||||
|
@ -36,5 +36,6 @@ namespace Bloxstrap.Models
|
||||
public bool UseOldDeathSound { get; set; } = true;
|
||||
public bool UseOldMouseCursor { get; set; } = false;
|
||||
public bool UseDisableAppPatch { get; set; } = false;
|
||||
public bool DisableFullscreenOptimizations { get; set; } = false;
|
||||
}
|
||||
}
|
||||
|
@ -31,5 +31,11 @@ namespace Bloxstrap.ViewModels
|
||||
get => App.Settings.Prop.UseDisableAppPatch;
|
||||
set => App.Settings.Prop.UseDisableAppPatch = value;
|
||||
}
|
||||
|
||||
public bool DisableFullscreenOptimizationsEnabled
|
||||
{
|
||||
get => App.Settings.Prop.DisableFullscreenOptimizations;
|
||||
set => App.Settings.Prop.DisableFullscreenOptimizations = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -93,5 +93,20 @@
|
||||
<ui:ToggleSwitch IsChecked="{Binding DisableAppPatchEnabled, Mode=TwoWay}" />
|
||||
</ui:CardControl>
|
||||
</Grid>
|
||||
|
||||
<StackPanel x:Name="MiscellaneousOptions">
|
||||
<TextBlock Text="Miscellaneous" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" />
|
||||
<ui:CardControl Margin="0,8,0,0" Padding="16,13,16,12">
|
||||
<ui:CardControl.Header>
|
||||
<StackPanel>
|
||||
<TextBlock FontSize="14" Text="Disable full-screen optimizations" />
|
||||
<TextBlock Margin="0,2,0,0" FontSize="12" Foreground="{DynamicResource TextFillColorTertiaryBrush}">
|
||||
A Windows feature that can potentially cause problems - <Hyperlink Foreground="{DynamicResource TextFillColorPrimaryBrush}" Command="models:GlobalViewModel.OpenWebpageCommand" CommandParameter="https://devblogs.microsoft.com/directx/demystifying-full-screen-optimizations/">see more info.</Hyperlink>.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</ui:CardControl.Header>
|
||||
<ui:ToggleSwitch IsChecked="{Binding DisableFullscreenOptimizationsEnabled, Mode=TwoWay}" />
|
||||
</ui:CardControl>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</ui:UiPage>
|
||||
|
@ -1,4 +1,6 @@
|
||||
using Bloxstrap.ViewModels;
|
||||
using System;
|
||||
using System.Windows;
|
||||
using Bloxstrap.ViewModels;
|
||||
|
||||
namespace Bloxstrap.Views.Pages
|
||||
{
|
||||
@ -11,6 +13,10 @@ namespace Bloxstrap.Views.Pages
|
||||
{
|
||||
DataContext = new ModsViewModel();
|
||||
InitializeComponent();
|
||||
|
||||
// fullscreen optimizations were only added in windows 10 build 17093
|
||||
if (Environment.OSVersion.Version.Build < 17093)
|
||||
this.MiscellaneousOptions.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user