public sealed class StandardFrameDocumentA frame document open for editing as knobs rather than as a graph.
Remarks
Doc 39's sequencing step 3, and the file it opens is the same .vxcompositor a hand-authored frame lives in. There is exactly one document format and this is one view over it: a document whose game: is a !StandardFrame gets the knobs, and one that is a full graph is opened read-only with the resolved stacks still shown — which is what makes the explode transition survivable rather than a cliff.
⚠ Written back through CompositorWriter, and only for a document that still has a frame node. Reserialising an eleven-hundred-line hand-authored document would reformat it and drop every comment in it — a save that silently rewrote sample 13's frame is a worse outcome than a panel that declines to save. CanEdit is that refusal, stated where the buttons can read it rather than discovered on the first Ctrl+S.
⚠ Every write re-expands, and that is the whole live-apply story. Expanded is the document a builder would build — through PostEffectFactory, the same transformer seam CompositorBuilder.Build applies, never a second opinion of it — so the stage, target and buffer counts beside the knobs move as the knobs move, and a guardrail refusal arrives on the edit that caused it instead of at the next launch. Changed is what a viewport hosting a SceneRenderHost subscribes to; SceneRenderHost.Load is documented as callable again for exactly this.
Fields and properties (15)
public const string ExtensionWhat a frame document is written as.
public const string PresetFileWhat the project's quality preset is called, beside the frame.
public const string ExplodedHeaderWhat an exploded file opens with, which is the CLI's sentence.
public string AssetPathWhere the file is, absolute.
public GraphicsCompositorAsset DocumentThe document as it was read, with its frame node still on it.
public StandardFrameAsset? NodeThe frame node, or null for a document that is a full graph.
public bool CanEditWhether the knobs apply, which is whether there is a frame node to turn.
public StandardFrameSettings SettingsThe knobs, as the inspector edits them.
public LookSettings LookThe look profile the document carries inline, as the inspector edits it.
public RenderQualityAsset? PresetThe project's RenderQuality.vxpreset, or null where it has none.
public GraphicsCompositorAsset ExpandedWhat a builder would build from this document — the expansion, live.
public IReadOnlyList<string> DiagnosticsWhat reading or expanding it had to say, guardrail refusals included.
public QualityTier TierThe tier the document resolves against, with the host's pick standing in.
public bool TierIsHostsWhether the tier came from the document or from the host standing in for it.
public bool CanExplodeWhether exploding would do anything, which is whether there is a node to expand.
Events (1)
public Action<StandardFrameDocument>? ChangedRaised whenever the knobs, the look or the file underneath them changed.
Methods (6)
public StandardFrameDocument(EditorProject project, AssetId asset, string path)Opens a frame document.
public void Reload()Reads the file again, from disk, and rebuilds everything derived from it.
public bool Apply()Pushes what the inspector wrote back onto the node and re-expands.
public string Explode()Replaces the !StandardFrame node with the graph it stood for, in place, keeping a copy of what was there.
public string ToYaml()The document as this document would write it, without writing it.
protected override void SaveCore()Writes the document back to wherever it came from.
Used by (3)
- FrameDocumentTestsVixen.Editor.AssetEditors.Tests
- StandardFrameEditorFactoryVixen.Editor.AssetEditors
- StandardFrameViewVixen.Editor.AssetEditors