diff --git a/Bloxstrap/Enums/FlagPresets/MSAAMode.cs b/Bloxstrap/Enums/FlagPresets/MSAAMode.cs index 8cc85a5..eea0c8b 100644 --- a/Bloxstrap/Enums/FlagPresets/MSAAMode.cs +++ b/Bloxstrap/Enums/FlagPresets/MSAAMode.cs @@ -5,7 +5,6 @@ Default, x1, x2, - x4, - x8 + x4 } } diff --git a/Bloxstrap/Enums/FlagPresets/TextureQuality.cs b/Bloxstrap/Enums/FlagPresets/TextureQuality.cs new file mode 100644 index 0000000..cb99e98 --- /dev/null +++ b/Bloxstrap/Enums/FlagPresets/TextureQuality.cs @@ -0,0 +1,11 @@ +namespace Bloxstrap.Enums.FlagPresets +{ + public enum TextureQuality + { + Default, + Level0, + Level1, + Level2, + Level3 + } +} diff --git a/Bloxstrap/FastFlagManager.cs b/Bloxstrap/FastFlagManager.cs index fcba521..db4addf 100644 --- a/Bloxstrap/FastFlagManager.cs +++ b/Bloxstrap/FastFlagManager.cs @@ -26,6 +26,9 @@ namespace Bloxstrap { "Rendering.Framerate", "DFIntTaskSchedulerTargetFps" }, { "Rendering.ManualFullscreen", "FFlagHandleAltEnterFullscreenManually" }, { "Rendering.DisableScaling", "DFFlagDisableDPIScale" }, + { "Rendering.MSAA", "FIntDebugForceMSAASamples" }, + { "Rendering.DisablePostFX", "FFlagDisablePostFx" }, + { "Rendering.ShadowIntensity", "FIntRenderShadowIntensity" }, { "Rendering.Mode.D3D11", "FFlagDebugGraphicsPreferD3D11" }, { "Rendering.Mode.D3D10", "FFlagDebugGraphicsPreferD3D11FL10" }, @@ -37,12 +40,18 @@ namespace Bloxstrap { "Rendering.Lighting.ShadowMap", "FFlagDebugForceFutureIsBrightPhase2" }, { "Rendering.Lighting.Future", "FFlagDebugForceFutureIsBrightPhase3" }, + { "Rendering.TextureQuality.OverrideEnabled", "DFFlagTextureQualityOverrideEnabled" }, + { "Rendering.TextureQuality.Level", "DFIntTextureQualityOverride" }, + { "Rendering.TerrainTextureQuality", "FIntTerrainArraySliceSize" }, + { "UI.Hide", "DFIntCanHideGuiGroupId" }, + { "UI.FontSize", "FIntFontSizePadding" }, #if DEBUG { "UI.FlagState", "FStringDebugShowFlagState" }, #endif { "UI.Menu.GraphicsSlider", "FFlagFixGraphicsQuality" }, + { "UI.FullscreenTitlebarDelay", "FIntFullscreenTitleBarTriggerDelayMillis" }, { "UI.Menu.Style.DisableV2", "FFlagDisableNewIGMinDUA" }, { "UI.Menu.Style.EnableV4.1", "FFlagEnableInGameMenuControls" }, @@ -77,8 +86,16 @@ namespace Bloxstrap { MSAAMode.Default, null }, { MSAAMode.x1, "1" }, { MSAAMode.x2, "2" }, - { MSAAMode.x4, "4" }, - { MSAAMode.x8, "8" } + { MSAAMode.x4, "4" } + }; + + public static IReadOnlyDictionary TextureQualityLevels => new Dictionary + { + { TextureQuality.Default, null }, + { TextureQuality.Level0, "0" }, + { TextureQuality.Level1, "1" }, + { TextureQuality.Level2, "2" }, + { TextureQuality.Level3, "3" }, }; // this is one hell of a dictionary definition lmao diff --git a/Bloxstrap/Resources/Strings.Designer.cs b/Bloxstrap/Resources/Strings.Designer.cs index 66cb509..6e7d1ff 100644 --- a/Bloxstrap/Resources/Strings.Designer.cs +++ b/Bloxstrap/Resources/Strings.Designer.cs @@ -1055,7 +1055,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to 1x MSAA. + /// Looks up a localized string similar to 1x. /// public static string Enums_FlagPresets_MSAAMode_x1 { get { @@ -1064,7 +1064,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to 2x MSAA. + /// Looks up a localized string similar to 2x. /// public static string Enums_FlagPresets_MSAAMode_x2 { get { @@ -1073,7 +1073,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to 4x MSAA. + /// Looks up a localized string similar to 4x. /// public static string Enums_FlagPresets_MSAAMode_x4 { get { @@ -1081,15 +1081,6 @@ namespace Bloxstrap.Resources { } } - /// - /// Looks up a localized string similar to 8x MSAA. - /// - public static string Enums_FlagPresets_MSAAMode_x8 { - get { - return ResourceManager.GetString("Enums.FlagPresets.MSAAMode.x8", resourceCulture); - } - } - /// /// Looks up a localized string similar to Direct3D 10. /// @@ -1135,6 +1126,51 @@ namespace Bloxstrap.Resources { } } + /// + /// Looks up a localized string similar to Default. + /// + public static string Enums_FlagPresets_TextureQuality_Default { + get { + return ResourceManager.GetString("Enums.FlagPresets.TextureQuality.Default", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Level 0 (Lowest). + /// + public static string Enums_FlagPresets_TextureQuality_Level0 { + get { + return ResourceManager.GetString("Enums.FlagPresets.TextureQuality.Level0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Level 1. + /// + public static string Enums_FlagPresets_TextureQuality_Level1 { + get { + return ResourceManager.GetString("Enums.FlagPresets.TextureQuality.Level1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Level 2. + /// + public static string Enums_FlagPresets_TextureQuality_Level2 { + get { + return ResourceManager.GetString("Enums.FlagPresets.TextureQuality.Level2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Level 3 (Highest). + /// + public static string Enums_FlagPresets_TextureQuality_Level3 { + get { + return ResourceManager.GetString("Enums.FlagPresets.TextureQuality.Level3", resourceCulture); + } + } + /// /// Looks up a localized string similar to Private. /// @@ -1878,7 +1914,7 @@ namespace Bloxstrap.Resources { /// /// Looks up a localized string similar to Fast Flags are extremely powerful, being that they are intended to only be used by Roblox engineers. While they can be very useful, manually configuring them can cause serious issues with stability and functionality. Do NOT use the editor if you are unsure of what you are doing. /// - ///Do NOT use this to import large "flag lists" made by other people that promise to improve performance or such. They are subject to the aforementioned issues, and they will cause problems for you since you will not be fully aware of [rest of string was truncated]";. + ///Do NOT use this to import large "flag lists" made by other people that promise to improve performance or such. They are subject to the aforementioned issues, and they will cause problems for you since you will not be fully aware [rest of string was truncated]";. /// public static string Menu_FastFlagEditor_Warning_Text { get { @@ -1914,7 +1950,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to Choose whether to allow Bloxstrap to manage Fast Flags. + /// Looks up a localized string similar to Selecting this will prevent anything configured here from being applied to Roblox.. /// public static string Menu_FastFlags_ManagerEnabled_Description { get { @@ -1923,7 +1959,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to Enable Fast Flag manager. + /// Looks up a localized string similar to Allow Bloxstrap to manage Fast Flags. /// public static string Menu_FastFlags_ManagerEnabled_Title { get { @@ -1932,7 +1968,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to Toggle between using the consolidated 1-10 / fine-grained 1-21 graphics quality slider.. + /// Looks up a localized string similar to Allows you to configure 21 different quality levels instead of 10.. /// public static string Menu_FastFlags_Presets_AltGraphicsSelector_Description { get { @@ -1941,7 +1977,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to Use alternate graphics quality selector. + /// Looks up a localized string similar to Use advanced graphics quality selector. /// public static string Menu_FastFlags_Presets_AltGraphicsSelector_Title { get { @@ -1968,7 +2004,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to FastFlag preset for Direct3D [exclusive fullscreen]({0}) using Alt+Enter is already enabled by default.. + /// Looks up a localized string similar to Direct3D [exclusive fullscreen]({0}) using Alt+Enter is enabled by default.. /// public static string Menu_FastFlags_Presets_D3DExclusiveFullscreenInfo { get { @@ -2040,11 +2076,29 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to Choose which version of the escape menu to use.. + /// Looks up a localized string similar to Disable player shadows. /// - public static string Menu_FastFlags_Presets_EscapeMenuVersion_Description { + public static string Menu_FastFlags_Presets_DisablePlayerShadows_Title { get { - return ResourceManager.GetString("Menu.FastFlags.Presets.EscapeMenuVersion.Description", resourceCulture); + return ResourceManager.GetString("Menu.FastFlags.Presets.DisablePlayerShadows.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disable post-processing effects. + /// + public static string Menu_FastFlags_Presets_DisablePostFX_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.DisablePostFX.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disable terrain textures. + /// + public static string Menu_FastFlags_Presets_DisableTerrainTextures_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.DisableTerrainTextures.Title", resourceCulture); } } @@ -2058,7 +2112,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to Roblox reduces your rendering quality, depending on display scaling. This toggle disables that.. + /// Looks up a localized string similar to Roblox reduces your rendering quality depending on how your display is scaled in Windows.. /// public static string Menu_FastFlags_Presets_FixDisplayScaling_Description { get { @@ -2076,7 +2130,25 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to Use a large number like 9999 for no limit. Set as 0 for defaults.. + /// Looks up a localized string similar to Default value is 1. Adjust if you use a custom font.. + /// + public static string Menu_FastFlags_Presets_FontPadding_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.FontPadding.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Font size. + /// + public static string Menu_FastFlags_Presets_FontPadding_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.FontPadding.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set to 0 for defaults if you want to use Roblox's native framerate unlocker.. /// public static string Menu_FastFlags_Presets_FPSLimit_Description { get { @@ -2093,6 +2165,24 @@ namespace Bloxstrap.Resources { } } + /// + /// Looks up a localized string similar to Stops it from showing whenever you move your mouse to the top of the screen.. + /// + public static string Menu_FastFlags_Presets_FullscreenTitlebar_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.FullscreenTitlebar.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disable full-screen titlebar. + /// + public static string Menu_FastFlags_Presets_FullscreenTitlebar_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.FullscreenTitlebar.Title", resourceCulture); + } + } + /// /// Looks up a localized string similar to Toggled with [keyboard shortcuts]({0}). Only works if you're in the [Bloxstrap group]({1}).. /// @@ -2130,29 +2220,11 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to Choose which material version should be forced in all games.. + /// Looks up a localized string similar to Anti-aliasing quality (MSAA). /// - public static string Menu_FastFlags_Presets_Materials_Description { + public static string Menu_FastFlags_Presets_MSAA_Title { get { - return ResourceManager.GetString("Menu.FastFlags.Presets.Materials.Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Preferred materials. - /// - public static string Menu_FastFlags_Presets_Materials_Title { - get { - return ResourceManager.GetString("Menu.FastFlags.Presets.Materials.Title", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Choose which renderer Roblox should use.. - /// - public static string Menu_FastFlags_Presets_RenderingMode_Description { - get { - return ResourceManager.GetString("Menu.FastFlags.Presets.RenderingMode.Description", resourceCulture); + return ResourceManager.GetString("Menu.FastFlags.Presets.MSAA.Title", resourceCulture); } } @@ -2165,6 +2237,15 @@ namespace Bloxstrap.Resources { } } + /// + /// Looks up a localized string similar to Texture quality. + /// + public static string Menu_FastFlags_Presets_TextureQuality_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.TextureQuality.Title", resourceCulture); + } + } + /// /// Looks up a localized string similar to Fast Flags. /// @@ -2550,7 +2631,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to Forces every in-game font to be a font that you choose.. + /// Looks up a localized string similar to Font size can be adjusted in the Fast Flags tab.. /// public static string Menu_Mods_Misc_CustomFont_Description { get { @@ -2577,7 +2658,7 @@ namespace Bloxstrap.Resources { } /// - /// Looks up a localized string similar to Apply custom font. + /// Looks up a localized string similar to Use custom font. /// public static string Menu_Mods_Misc_CustomFont_Title { get { diff --git a/Bloxstrap/Resources/Strings.resx b/Bloxstrap/Resources/Strings.resx index 50dc774..fc1ebcf 100644 --- a/Bloxstrap/Resources/Strings.resx +++ b/Bloxstrap/Resources/Strings.resx @@ -445,16 +445,13 @@ Click for more information Automatic - 1x MSAA + 1x - 2x MSAA + 2x - 4x MSAA - - - 8x MSAA + 4x Direct3D 10 @@ -730,13 +727,13 @@ Do NOT use this to import large "flag lists" made by other people that promise t Title is Common.Help - Toggle between using the consolidated 1-10 / fine-grained 1-21 graphics quality slider. + Allows you to configure 21 different quality levels instead of 10. - Use alternate graphics quality selector + Use advanced graphics quality selector - FastFlag preset for Direct3D [exclusive fullscreen]({0}) using Alt+Enter is already enabled by default. + Direct3D [exclusive fullscreen]({0}) using Alt+Enter is enabled by default. Show values of specified flags during runtime. Each flag is comma separated. @@ -761,20 +758,17 @@ Do NOT use this to import large "flag lists" made by other people that promise t Debug - - Choose which version of the escape menu to use. - Preferred escape menu version - Roblox reduces your rendering quality, depending on display scaling. This toggle disables that. + Roblox reduces your rendering quality depending on how your display is scaled in Windows. Preserve rendering quality with display scaling - Use a large number like 9999 for no limit. Set as 0 for defaults. + Set to 0 for defaults if you want to use Roblox's native framerate unlocker. Framerate limit @@ -791,15 +785,6 @@ Do NOT use this to import large "flag lists" made by other people that promise t Preferred lighting technology - - Choose which material version should be forced in all games. - - - Preferred materials - - - Choose which renderer Roblox should use. - Rendering mode @@ -937,7 +922,7 @@ Selecting 'No' will ignore this warning and continue installation. Choose font... - Forces every in-game font to be a font that you choose. + Font size can be adjusted in the Fast Flags tab. The file you have chosen does not appear to be a valid font file. @@ -946,7 +931,7 @@ Selecting 'No' will ignore this warning and continue installation. Remove applied font - Apply custom font + Use custom font A Windows feature that may conflict with performance in full-screen. @@ -1051,9 +1036,52 @@ Scroll for more languages. User Interface and Layout - Enable Fast Flag manager + + Allow Bloxstrap to manage Fast Flags - Choose whether Fast Flags configured here should apply to Roblox + Disabling this will prevent anything configured here from being applied to Roblox. + + + Anti-aliasing quality (MSAA) + + + Disable post-processing effects + + + Disable full-screen titlebar + + + Stops it from showing whenever you move your mouse to the top of the screen. + + + Texture quality + + + Default + + + Level 0 (Lowest) + + + Level 1 + + + Level 2 + + + Level 3 (Highest) + + + Disable player shadows + + + Font size + + + Default value is 1. Adjust if you use a custom font. + + + Disable terrain textures \ No newline at end of file diff --git a/Bloxstrap/UI/Elements/Menu/Pages/FastFlagsPage.xaml b/Bloxstrap/UI/Elements/Menu/Pages/FastFlagsPage.xaml index c168081..54b8e5b 100644 --- a/Bloxstrap/UI/Elements/Menu/Pages/FastFlagsPage.xaml +++ b/Bloxstrap/UI/Elements/Menu/Pages/FastFlagsPage.xaml @@ -8,7 +8,7 @@ xmlns:resources="clr-namespace:Bloxstrap.Resources" xmlns:controls="clr-namespace:Bloxstrap.UI.Elements.Controls" mc:Ignorable="d" - d:DesignHeight="1000" d:DesignWidth="800" + d:DesignHeight="1500" d:DesignWidth="800" Title="FastFlagsPage" Scrollable="True" Loaded="Page_Loaded"> @@ -55,6 +55,33 @@ + + + + + + + + + + + + + + + + + + + + + + + Header="{x:Static resources:Strings.Menu_FastFlags_Presets_FixDisplayScaling_Title}" + Description="{x:Static resources:Strings.Menu_FastFlags_Presets_FixDisplayScaling_Description}" + HelpLink="https://github.com/pizzaboxer/bloxstrap/wiki/A-guide-to-FastFlags#dpi-scaling-fixes"> + + + + @@ -88,14 +121,24 @@ - + Header="{x:Static resources:Strings.Menu_FastFlags_Presets_TextureQuality_Title}"> + + + + + + + + + + + + + + + diff --git a/Bloxstrap/UI/ViewModels/Menu/FastFlagsViewModel.cs b/Bloxstrap/UI/ViewModels/Menu/FastFlagsViewModel.cs index 79a3158..a59b858 100644 --- a/Bloxstrap/UI/ViewModels/Menu/FastFlagsViewModel.cs +++ b/Bloxstrap/UI/ViewModels/Menu/FastFlagsViewModel.cs @@ -74,6 +74,14 @@ namespace Bloxstrap.UI.ViewModels.Menu set => App.FastFlags.SetPreset("Rendering.Framerate", value == 0 ? null : value); } + public IReadOnlyDictionary MSAALevels => FastFlagManager.MSAAModes; + + public MSAAMode SelectedMSAALevel + { + get => MSAALevels.FirstOrDefault(x => x.Value == App.FastFlags.GetPreset("Rendering.MSAA")).Key; + set => App.FastFlags.SetPreset("Rendering.MSAA", MSAALevels[value]); + } + public IReadOnlyDictionary RenderingModes => FastFlagManager.RenderingModes; public RenderingMode SelectedRenderingMode @@ -140,10 +148,59 @@ namespace Bloxstrap.UI.ViewModels.Menu set => App.FastFlags.SetPresetEnum("Rendering.Lighting", LightingModes[value], "True"); } + public bool FullscreenTitlebarDisabled + { + get => int.TryParse(App.FastFlags.GetPreset("UI.FullscreenTitlebarDelay"), out int x) && x > 5000; + set => App.FastFlags.SetPreset("UI.FullscreenTitlebarDelay", value ? "3600000" : null); + } + public bool GuiHidingEnabled { get => App.FastFlags.GetPreset("UI.Hide") == "32380007"; set => App.FastFlags.SetPreset("UI.Hide", value ? "32380007" : null); } + + public IReadOnlyDictionary TextureQualities => FastFlagManager.TextureQualityLevels; + + public TextureQuality SelectedTextureQuality + { + get => TextureQualities.Where(x => x.Value == App.FastFlags.GetPreset("Rendering.TextureQuality.Level")).FirstOrDefault().Key; + set + { + if (value == TextureQuality.Default) + { + App.FastFlags.SetPresetEnum("Rendering", "TextureQuality", null); + } + else + { + App.FastFlags.SetPreset("Rendering.TextureQuality.OverrideEnabled", "True"); + App.FastFlags.SetPreset("Rendering.TextureQuality.Level", TextureQualities[value]); + } + } + } + + public bool DisablePostFX + { + get => App.FastFlags.GetPreset("Rendering.DisablePostFX") == "True"; + set => App.FastFlags.SetPreset("Rendering.DisablePostFX", value ? "True" : null); + } + + public bool DisablePlayerShadows + { + get => App.FastFlags.GetPreset("Rendering.ShadowIntensity") == "0"; + set => App.FastFlags.SetPreset("Rendering.ShadowIntensity", value ? "0" : null); + } + + public int? FontSize + { + get => int.TryParse(App.FastFlags.GetPreset("UI.FontSize"), out int x) ? x : 1; + set => App.FastFlags.SetPreset("UI.FontSize", value == 1 ? null : value); + } + + public bool DisableTerrainTextures + { + get => App.FastFlags.GetPreset("Rendering.TerrainTextureQuality") == "0"; + set => App.FastFlags.SetPreset("Rendering.TerrainTextureQuality", value ? "0" : null); + } } }