Files
Test/Library/PackageCache/com.unity.render-pipelines.core@13460d8ea9e5/Runtime/Debugging/DebugDisplaySettingsStats.cs
T
2026-11-01 23:39:55 +02:00

117 lines
3.8 KiB
C#

using System;
using System.Collections.Generic;
namespace UnityEngine.Rendering
{
/// <summary>
/// Display stats panel.
/// </summary>
public class DebugDisplaySettingsStats : IDebugDisplaySettingsData
{
/// <summary>Current display stats.</summary>
public DebugDisplayStats debugDisplayStats { get; }
/// <summary>
/// Display stats panel constructor with settings.
/// </summary>
/// <param name="debugDisplayStats">The debug display stats object that is used for configuring settings in the stats panel.</param>
public DebugDisplaySettingsStats(DebugDisplayStats debugDisplayStats)
{
this.debugDisplayStats = debugDisplayStats;
}
[DisplayInfo(name = "Display Stats", order = int.MinValue)]
private class StatsPanel : DebugDisplaySettingsPanel
{
readonly DebugDisplaySettingsStats m_Data;
public override DebugUI.Flags Flags => DebugUI.Flags.RuntimeOnly;
public StatsPanel(DebugDisplaySettingsStats displaySettingsStats)
{
m_Data = displaySettingsStats;
m_Data.debugDisplayStats.EnableProfilingRecorders();
var list = new List<DebugUI.Widget>();
m_Data.debugDisplayStats.RegisterDebugUI(list);
foreach (var w in list)
AddWidget(w);
}
public override void Dispose()
{
m_Data.debugDisplayStats.DisableProfilingRecorders();
base.Dispose();
}
}
/// <inheritdoc/>
public bool AreAnySettingsActive => false;
/// <inheritdoc/>
public IDebugDisplaySettingsPanelDisposable CreatePanel()
{
return new StatsPanel(this);
}
}
/// <summary>
/// Display stats panel.
/// </summary>
/// <typeparam name="TProfileId">Type of ProfileId the pipeline uses</typeparam>
[Obsolete("Use the non-generic DebugDisplaySettingsStats class. #from(6000.6)")]
public class DebugDisplaySettingsStats<TProfileId> : IDebugDisplaySettingsData
where TProfileId : Enum
{
/// <summary>Current display stats</summary>
public DebugDisplayStats<TProfileId> debugDisplayStats { get; }
/// <summary>
/// Display stats panel constructor with settings
/// </summary>
/// <param name="debugDisplayStats">The debug display stats object that is used for configuring settings in the stats panel.</param>
public DebugDisplaySettingsStats(DebugDisplayStats<TProfileId> debugDisplayStats)
{
this.debugDisplayStats = debugDisplayStats;
}
[DisplayInfo(name = "Display Stats", order = int.MinValue)]
private class StatsPanel : DebugDisplaySettingsPanel
{
readonly DebugDisplaySettingsStats<TProfileId> m_Data;
public override DebugUI.Flags Flags => DebugUI.Flags.RuntimeOnly;
public StatsPanel(DebugDisplaySettingsStats<TProfileId> displaySettingsStats)
{
m_Data = displaySettingsStats;
m_Data.debugDisplayStats.EnableProfilingRecorders();
var list = new List<DebugUI.Widget>();
m_Data.debugDisplayStats.RegisterDebugUI(list);
foreach (var w in list)
AddWidget(w);
}
public override void Dispose()
{
m_Data.debugDisplayStats.DisableProfilingRecorders();
base.Dispose();
}
}
/// <inheritdoc/>
public bool AreAnySettingsActive => false;
/// <inheritdoc/>
public IDebugDisplaySettingsPanelDisposable CreatePanel()
{
return new StatsPanel(this);
}
}
}