Vixen
02b45cc4
csharp
public sealed class FrameDebuggerView

A frame's command stream, steppable, with the state at each call beside it.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Doc 20's E4 exit criterion: "a draw call can be stepped and its render target inspected". The first half is here in full — the tree, the two step buttons, and a state pane replayed to whichever call is selected. The second half is honest about what it has: a capture taken from a recording backend holds the state and not the pixels, and the target pane says which attachments the draw wrote rather than showing an image that would be a fabrication.

⚠ Stepping moves between draws, not between commands. A frame is a few thousand calls and forty of them per draw are binds; a step that advanced one command would take forty presses to reach the next thing that put a pixel anywhere. Work is the index that makes it one press.

⚠ The tree is rebuilt on capture rather than every frame. A capture does not change while it is on screen — that is the whole point of capturing one — so the only work per frame here is none.

Fields and properties (13)

  • protected override string TagName

    The element name this type answers to when a caller does not choose one.

  • protected override bool AcceptsFocus

    Whether the focus can rest on this kind of control at all.

  • public UiElement Toolbar

    The strip along the top.

  • public Button CaptureButton

    What takes a capture, when the host has given it something to take one with.

  • public Button Previous

    Steps back one draw.

  • public Button Next

    Steps forward one draw.

  • public UiElement Status

    What the capture holds, and where in it the selection is.

  • public TreeView Tree

    The stream, as passes and groups.

  • public UiElement StatePane

    What is bound at the selected call.

  • public Func<FrameCapture>? Source

    What the capture is taken with, or when nothing can.

  • public string? Unavailable

    Why a capture cannot be taken, shown when Source is null.

  • public FrameCapture Capture

    What it is showing.

  • public int Sequence

    Which call the state pane is replayed to.

Methods (4)

  • public void Take()

    Takes a fresh capture, if there is anything to take one with.

  • public void Show(FrameCapture frame)

    Shows a capture somebody else took.

  • public void StepTo(int sequence)

    Moves the selection to a call.

  • protected override void OnCreated()

    Builds whatever this element is made of, once, as it joins a document.

Used by (2)

  • DiagnosticsModuleVixen.Editor.Diagnostics
  • DiagnosticsPanelTestsVixen.Editor.App.Tests