Add Editor input bindings for Profiler window and Profiler actions

This commit is contained in:
2023-09-17 00:15:26 +03:00
parent 8ed57863b8
commit a1cbaba743
5 changed files with 30 additions and 2 deletions

View File

@@ -72,6 +72,7 @@ namespace FlaxEditor.Modules
private ContextMenuButton _menuToolsBuildNavMesh;
private ContextMenuButton _menuToolsBuildAllMeshesSDF;
private ContextMenuButton _menuToolsCancelBuilding;
private ContextMenuButton _menuToolsProfilerWindow;
private ContextMenuButton _menuToolsSetTheCurrentSceneViewAsDefault;
private ContextMenuButton _menuToolsTakeScreenshot;
private ContextMenuChildMenu _menuWindowApplyWindowLayout;
@@ -589,7 +590,7 @@ namespace FlaxEditor.Modules
cm.AddButton("Game Cooker", Editor.Windows.GameCookerWin.FocusOrShow);
_menuToolsCancelBuilding = cm.AddButton("Cancel building game", () => GameCooker.Cancel());
cm.AddSeparator();
cm.AddButton("Profiler", Editor.Windows.ProfilerWin.FocusOrShow);
_menuToolsProfilerWindow = cm.AddButton("Profiler", inputOptions.ProfilerWindow, () => Editor.Windows.ProfilerWin.FocusOrShow());
cm.AddSeparator();
_menuToolsSetTheCurrentSceneViewAsDefault = cm.AddButton("Set current scene view as project default", SetTheCurrentSceneViewAsDefault);
_menuToolsTakeScreenshot = cm.AddButton("Take screenshot", inputOptions.TakeScreenshot, Editor.Windows.TakeScreenshot);
@@ -611,7 +612,7 @@ namespace FlaxEditor.Modules
cm.AddButton("Output Log", Editor.Windows.OutputLogWin.FocusOrShow);
cm.AddButton("Graphics Quality", Editor.Windows.GraphicsQualityWin.FocusOrShow);
cm.AddButton("Game Cooker", Editor.Windows.GameCookerWin.FocusOrShow);
cm.AddButton("Profiler", Editor.Windows.ProfilerWin.FocusOrShow);
cm.AddButton("Profiler", inputOptions.ProfilerWindow, Editor.Windows.ProfilerWin.FocusOrShow);
cm.AddButton("Content Search", Editor.ContentFinding.ShowSearch);
cm.AddButton("Visual Script Debugger", Editor.Windows.VisualScriptDebuggerWin.FocusOrShow);
cm.AddSeparator();
@@ -660,6 +661,7 @@ namespace FlaxEditor.Modules
_menuToolsBuildCSGMesh.ShortKeys = inputOptions.BuildCSG.ToString();
_menuToolsBuildNavMesh.ShortKeys = inputOptions.BuildNav.ToString();
_menuToolsBuildAllMeshesSDF.ShortKeys = inputOptions.BuildSDF.ToString();
_menuToolsProfilerWindow.ShortKeys = inputOptions.ProfilerWindow.ToString();
_menuToolsTakeScreenshot.ShortKeys = inputOptions.TakeScreenshot.ToString();
MainMenuShortcutKeysUpdated?.Invoke();

View File

@@ -162,6 +162,22 @@ namespace FlaxEditor.Options
#endregion
#region Profiler
[DefaultValue(typeof(InputBinding), "None")]
[EditorDisplay("Profiler", "Open Profiler Window"), EditorOrder(630)]
public InputBinding ProfilerWindow = new InputBinding(KeyboardKeys.None);
[DefaultValue(typeof(InputBinding), "None")]
[EditorDisplay("Profiler", "Start/Stop Profiler"), EditorOrder(631)]
public InputBinding ProfilerStartStop = new InputBinding(KeyboardKeys.None);
[DefaultValue(typeof(InputBinding), "None")]
[EditorDisplay("Profiler", "Clear Profiler data"), EditorOrder(632)]
public InputBinding ProfilerClear = new InputBinding(KeyboardKeys.None);
#endregion
#region Debugger
[DefaultValue(typeof(InputBinding), "F5")]

View File

@@ -306,6 +306,9 @@ namespace FlaxEditor.Windows
InputActions.Add(options => options.Play, Editor.Simulation.DelegatePlayOrStopPlayInEditor);
InputActions.Add(options => options.Pause, Editor.Simulation.RequestResumeOrPause);
InputActions.Add(options => options.StepFrame, Editor.Simulation.RequestPlayOneFrame);
InputActions.Add(options => options.ProfilerWindow, () => Editor.Windows.ProfilerWin.FocusOrShow());
InputActions.Add(options => options.ProfilerStartStop, () => { Editor.Windows.ProfilerWin.LiveRecording = !Editor.Windows.ProfilerWin.LiveRecording; Editor.UI.AddStatusMessage($"Profiling {(Editor.Windows.ProfilerWin.LiveRecording ? "started" : "stopped")}."); });
InputActions.Add(options => options.ProfilerClear, () => { Editor.Windows.ProfilerWin.Clear(); Editor.UI.AddStatusMessage($"Profiling results cleared."); });
}
private void ChangeViewportRatio(ViewportScaleOptions v)

View File

@@ -116,6 +116,10 @@ namespace FlaxEditor.Windows.Profiler
Parent = this
};
_tabs.SelectedTabChanged += OnSelectedTabChanged;
InputActions.Add(options => options.ProfilerWindow, Hide);
InputActions.Add(options => options.ProfilerStartStop, () => LiveRecording = !LiveRecording);
InputActions.Add(options => options.ProfilerClear, Clear);
}
/// <summary>

View File

@@ -52,6 +52,9 @@ namespace FlaxEditor.Windows
InputActions.Add(options => options.BuildNav, Editor.BuildNavMesh);
InputActions.Add(options => options.BuildSDF, Editor.BuildAllMeshesSDF);
InputActions.Add(options => options.TakeScreenshot, Editor.Windows.TakeScreenshot);
InputActions.Add(options => options.ProfilerWindow, () => Editor.Windows.ProfilerWin.FocusOrShow());
InputActions.Add(options => options.ProfilerStartStop, () => { Editor.Windows.ProfilerWin.LiveRecording = !Editor.Windows.ProfilerWin.LiveRecording; Editor.UI.AddStatusMessage($"Profiling {(Editor.Windows.ProfilerWin.LiveRecording ? "started" : "stopped")}."); });
InputActions.Add(options => options.ProfilerClear, () => { Editor.Windows.ProfilerWin.Clear(); Editor.UI.AddStatusMessage($"Profiling results cleared."); });
}
}
}