Vixen
feb85697
csharp
public sealed class DiagnosticsModule

Doc 20's E4: the seven diagnostics panels, and what they are pointed at.

Read the guide page for this →

Remarks

The joining job, in the assembly whose job that is. Neither Vixen.Editor.Profiler nor Vixen.Editor.Debugger knows what a project, a scene or a graphics device is — which is what lets both be tested against a bare UiDocument. Deciding that the statistics panel counts this world, that the GPU timeline reads this device and that the frame debugger captures this frame is this type's.

⚠ A third assembly rather than a move into either of them, and that is the finding. Doc 36 § P3 says the built-ins go through the plugin API; for these two, doing it by putting the joining code inside them would have spent the property their own remarks name. The module is what a feature looks like when its parts are deliberately ignorant of each other.

⚠ Sampling is off until somebody presses Record. An always-on profiler is the right default for a game, where the interesting thirty seconds are the ones before the crash; an editor left running for a day would fill sixteen thread rings with a day of menu clicks that nobody will ever collect. ProfilerModel.Start turns it on and empties the rings first, which is what makes a capture start where the button was pressed.

Fields and properties (12)

  • public const string ModuleId

    What the host activates it under, and what a plugin depending on it names.

  • public const string ModuleName

    What a plugin-management panel calls it.

  • public const string DiagnosticsContext

    The context id of the diagnostics panels.

  • public const string UiDiagnosticsPanel

    The panel that reads UiDocument.Diagnostics for the shell's own document.

  • public Func<FrameCapture>? FrameCaptureSource

    What a frame capture is taken from, when the host can take one.

  • public string? InspectorEndpoint

    Where a standalone play-mode process would listen for an inspector.

  • public BandwidthLedger? NetworkLedger

    The bandwidth ledger of whatever session is running, when the host has one.

  • public ReplicationRegistry? NetworkRegistry

    The replication registry that names the component types inside a packet.

  • public ReadOnlyMemory<byte> NetworkSnapshot

    The newest snapshot's bytes, exactly as they went on the wire.

  • public NetworkSession? NetworkSession

    The session whose round trip and jitter the panel graphs, when the host has one.

  • public ProfilerModel Profiling

    The profiler's model, for a test and for the host's own frame samples.

  • public DeviceManager Devices

    The devices this editor can see, so a build can say what it is doing to one.

Methods (6)

  • public void Activate(PluginContext context)

    Adds everything the plugin contributes.

  • public void Deactivate()

    Releases what the registration scope does not know about.

  • public void Dispose()
  • public string Report()

    The report's text: the project, the scene, the memory, the statistics, the profile and the log.

  • public IEnumerable<MemoryRow> AssetResidency()

    What the project has loaded, as rows for the memory view.

  • public int Deepest()

    How deep the shown scene's hierarchy goes.

Used by (3)

  • DiagnosticsPanelTestsVixen.Editor.App.Tests
  • EditorModulesVixen.Editor.Host
  • UiDiagnosticsPanelTestsVixen.Editor.App.Tests