public sealed class DiagnosticsModuleDoc 20's E4: the seven diagnostics panels, and what they are pointed at.
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 (9)
public const string ModuleIdWhat the host activates it under, and what a plugin depending on it names.
public const string ModuleNameWhat a plugin-management panel calls it.
public const string DiagnosticsContextThe context id of the diagnostics panels.
public IGraphicsDevice? GraphicsDeviceThe device the GPU timeline reads, when the host has one.
public GpuFrame GpuFrameThe frame's GPU regions, as the host resolved them.
public Func<FrameCapture>? FrameCaptureSourceWhat a frame capture is taken from, when the host can take one.
public string? InspectorEndpointWhere a standalone play-mode process would listen for an inspector.
public ProfilerModel ProfilingThe profiler's model, for a test and for the host's own frame samples.
public DeviceManager DevicesThe devices this editor can see, so a build can say what it is doing to one.
Methods (5)
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 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 (2)
- EditorApplicationVixen.Editor.App
- EditorModulesVixen.Editor.Host