using System; using UnityEngine.Rendering.RenderGraphModule; using NameAndTooltip = UnityEngine.Rendering.DebugUI.Widget.NameAndTooltip; namespace UnityEngine.Rendering { /// /// Render Graph-related Rendering Debugger settings. /// class DebugDisplaySettingsRenderGraph : IDebugDisplaySettingsData { public DebugDisplaySettingsRenderGraph() { foreach (var graph in RenderGraph.GetRegisteredRenderGraphs()) { graph.debugParams.Reset(); } } [DisplayInfo(name = "Render Graph", order = 10)] private class SettingsPanel : DebugDisplaySettingsPanel { public override string PanelName => "Render Graph"; public SettingsPanel(DebugDisplaySettingsRenderGraph _) { bool usingRenderGraph = false; foreach (var graph in RenderGraph.GetRegisteredRenderGraphs()) { usingRenderGraph = true; var list = graph.GetWidgetList(); foreach (var item in list) AddWidget(item); } if (!usingRenderGraph) { AddWidget(new DebugUI.MessageBox() { displayName = "Warning: The current render pipeline does not have Render Graphs Registered", style = DebugUI.MessageBox.Style.Warning }); } } } #region IDebugDisplaySettingsQuery /// IDebugDisplaySettingsPanelDisposable IDebugDisplaySettingsData.CreatePanel() { return new SettingsPanel(this); } public bool AreAnySettingsActive { get { foreach (var graph in RenderGraph.GetRegisteredRenderGraphs()) { if (graph.areAnySettingsActive) return true; } return false; } } #endregion } }