public sealed class FrameGraphOverlayA live mini flame chart of the last frame: one bar per profiler scope, nested by depth.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
[13](../../../../docs/plan/13-diagnostics.md) § Diagnostic overlays asks for this beside the frame stats, and the two answer different questions: the stats say that a frame was slow, and this says what in it was. Neither is much use without the other, which is why the profiler is compiled in and left on.
⚠ Enabled, this drains the profiler's rings. Collect is destructive — it is how the rings are emptied — so this overlay and a trace export cannot both be reading at once. Set Collects to and feed it with Capture when something else owns the collection; that is what a host exporting Perfetto traces has to do.
⚠ Only the deepest thread is charted, and it says which. A flame chart of every worker stacked in one panel is unreadable at overlay size, and picking one arbitrarily would show a different thread each frame. The one with the most samples is the one doing the work, and the header names it so the choice is not silent.
Fields and properties (9)
public const int MaxDepthHow many nested levels are drawn before the rest are folded away.
public string NameWhat the console and the toggles call it. Lower case, no spaces.
public OverlayAnchor AnchorWhich corner it is pinned to.
public bool EnabledWhether it is drawn.
public float WidthHow wide the panel is, in pixels.
public bool CollectsWhether drawing collects from Profiler itself.
public float BarHeightHow tall one nesting level's bar is, in pixels.
public double FrameMillisecondsHow long the charted frame took, in milliseconds.
public int ScopeCountHow many scopes the last chart drew.
Methods (2)
public void Capture(ProfilerThreadSamples[] threads)Hands the overlay samples somebody else collected.
public void Draw(OverlaySurface surface, in GameTime time)Draws it.