From 5ead0d482b8fac97bd1b75fe890e7eaa9c24fa0e Mon Sep 17 00:00:00 2001 From: Tyler Gregorcyk Date: Sun, 28 Jun 2026 13:38:40 -0500 Subject: [PATCH 1/2] Adds Brightness, ResolusionScale, DebugView, and LayerMask to viewport persistence Signed-off-by: Tyler Gregorcyk --- Source/Editor/Windows/EditGameWindow.cs | 26 ++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/Source/Editor/Windows/EditGameWindow.cs b/Source/Editor/Windows/EditGameWindow.cs index 5f91aebe6..d445b55ee 100644 --- a/Source/Editor/Windows/EditGameWindow.cs +++ b/Source/Editor/Windows/EditGameWindow.cs @@ -433,14 +433,18 @@ namespace FlaxEditor.Windows writer.WriteAttributeString("GridEnabled", Viewport.Grid.Enabled.ToString()); writer.WriteAttributeString("ShowFpsCounter", Viewport.ShowFpsCounter.ToString()); writer.WriteAttributeString("ShowNavigation", Viewport.ShowNavigation.ToString()); + writer.WriteAttributeString("UseOrthographicProjection", Viewport.UseOrthographicProjection.ToString()); writer.WriteAttributeString("NearPlane", Viewport.NearPlane.ToString()); writer.WriteAttributeString("FarPlane", Viewport.FarPlane.ToString()); writer.WriteAttributeString("FieldOfView", Viewport.FieldOfView.ToString()); writer.WriteAttributeString("MovementSpeed", Viewport.MovementSpeed.ToString()); + writer.WriteAttributeString("Brightness", Viewport.Brightness.ToString()); writer.WriteAttributeString("ViewportIconsScale", ViewportIconsRenderer.Scale.ToString()); + writer.WriteAttributeString("ResolutionScale", Viewport.ResolutionScale.ToString()); writer.WriteAttributeString("OrthographicScale", Viewport.OrthographicScale.ToString()); - writer.WriteAttributeString("UseOrthographicProjection", Viewport.UseOrthographicProjection.ToString()); writer.WriteAttributeString("ViewFlags", ((ulong)Viewport.Task.View.Flags).ToString()); + writer.WriteAttributeString("DebugView", ((int)Viewport.Task.ViewMode).ToString()); + writer.WriteAttributeString("LayerMask", Viewport.Task.ViewLayersMask.Mask.ToString()); } /// @@ -452,6 +456,8 @@ namespace FlaxEditor.Windows Viewport.ShowFpsCounter = value1; if (bool.TryParse(node.GetAttribute("ShowNavigation"), out value1)) Viewport.ShowNavigation = value1; + if (bool.TryParse(node.GetAttribute("UseOrthographicProjection"), out value1)) + Viewport.UseOrthographicProjection = value1; if (float.TryParse(node.GetAttribute("NearPlane"), out float value2)) Viewport.NearPlane = value2; if (float.TryParse(node.GetAttribute("FarPlane"), out value2)) @@ -460,18 +466,28 @@ namespace FlaxEditor.Windows Viewport.FieldOfView = value2; if (float.TryParse(node.GetAttribute("MovementSpeed"), out value2)) Viewport.MovementSpeed = value2; + if (float.TryParse(node.GetAttribute("Brightness"), out value2)) + Viewport.Brightness = value2; + if (float.TryParse(node.GetAttribute("ResolutionScale"), out value2)) + Viewport.ResolutionScale = value2; if (float.TryParse(node.GetAttribute("ViewportIconsScale"), out value2)) ViewportIconsRenderer.Scale = value2; if (float.TryParse(node.GetAttribute("OrthographicScale"), out value2)) Viewport.OrthographicScale = value2; - if (bool.TryParse(node.GetAttribute("UseOrthographicProjection"), out value1)) - Viewport.UseOrthographicProjection = value1; if (ulong.TryParse(node.GetAttribute("ViewFlags"), out ulong value3)) Viewport.Task.ViewFlags = (ViewFlags)value3; - - // Reset view flags if opening with different engine version (ViewFlags enum could be modified) + if (int.TryParse(node.GetAttribute("DebugView"), out int value4)) + Viewport.Task.ViewMode = (ViewMode)value4; + if (uint.TryParse(node.GetAttribute("LayerMask"), out uint value5)) + Viewport.Task.ViewLayersMask = new LayersMask(value5); + + // Reset view flags and view mode if opening with different engine version + // (ViewFlags and ViewMode enums could be modified) if (Editor.LastProjectOpenedEngineBuild != Globals.EngineBuildNumber) + { Viewport.Task.ViewFlags = ViewFlags.DefaultEditor; + Viewport.Task.ViewMode = ViewMode.Default; + } } /// From 37905f1ccb2dabaf5d9cb15647cc8dcf2e47a48b Mon Sep 17 00:00:00 2001 From: Tyler Gregorcyk Date: Sun, 28 Jun 2026 13:51:51 -0500 Subject: [PATCH 2/2] Adds option to use persistent settings over defualt viewport options Signed-off-by: Tyler Gregorcyk --- Source/Editor/Options/ViewportOptions.cs | 7 +++++++ Source/Editor/Windows/EditGameWindow.cs | 3 +++ 2 files changed, 10 insertions(+) diff --git a/Source/Editor/Options/ViewportOptions.cs b/Source/Editor/Options/ViewportOptions.cs index 2dd08b6d1..485ac7294 100644 --- a/Source/Editor/Options/ViewportOptions.cs +++ b/Source/Editor/Options/ViewportOptions.cs @@ -136,6 +136,13 @@ namespace FlaxEditor.Options [DefaultValue(50.0f), Limit(25.0f, 500.0f, 5.0f)] [EditorDisplay("Defaults"), EditorOrder(220), Tooltip("The default editor viewport grid scale.")] public float ViewportGridScale { get; set; } = 50.0f; + + /// + /// Gets or sets the use persistence over defaults setting + /// + [DefaultValue(true)] + [EditorDisplay("Defaults"), EditorOrder(230), Tooltip("Allow persistence setting from last session to override default settings")] + public bool UsePersistenceOverDefaults { get; set; } = true; /// /// Gets or sets the view distance you can see the grid. diff --git a/Source/Editor/Windows/EditGameWindow.cs b/Source/Editor/Windows/EditGameWindow.cs index d445b55ee..8d0c146d9 100644 --- a/Source/Editor/Windows/EditGameWindow.cs +++ b/Source/Editor/Windows/EditGameWindow.cs @@ -450,6 +450,9 @@ namespace FlaxEditor.Windows /// public override void OnLayoutDeserialize(XmlElement node) { + if (!Editor.Options.Options.Viewport.UsePersistenceOverDefaults) + return; + if (bool.TryParse(node.GetAttribute("GridEnabled"), out bool value1)) Viewport.Grid.Enabled = value1; if (bool.TryParse(node.GetAttribute("ShowFpsCounter"), out value1))