Vixen
caa30e12
csharp
public sealed class StandardFrameDocument

A frame document open for editing as knobs rather than as a graph.

Read the guide page for this →

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 Extension

    What a frame document is written as.

  • public const string PresetFile

    What the project's quality preset is called, beside the frame.

  • public const string ExplodedHeader

    What an exploded file opens with, which is the CLI's sentence.

  • public string AssetPath

    Where the file is, absolute.

  • public GraphicsCompositorAsset Document

    The document as it was read, with its frame node still on it.

  • public StandardFrameAsset? Node

    The frame node, or null for a document that is a full graph.

  • public bool CanEdit

    Whether the knobs apply, which is whether there is a frame node to turn.

  • public StandardFrameSettings Settings

    The knobs, as the inspector edits them.

  • public LookSettings Look

    The look profile the document carries inline, as the inspector edits it.

  • public RenderQualityAsset? Preset

    The project's RenderQuality.vxpreset, or null where it has none.

  • public GraphicsCompositorAsset Expanded

    What a builder would build from this document — the expansion, live.

  • public IReadOnlyList<string> Diagnostics

    What reading or expanding it had to say, guardrail refusals included.

  • public QualityTier Tier

    The tier the document resolves against, with the host's pick standing in.

  • public bool TierIsHosts

    Whether the tier came from the document or from the host standing in for it.

  • public bool CanExplode

    Whether exploding would do anything, which is whether there is a node to expand.

Events (1)

  • public Action<StandardFrameDocument>? Changed

    Raised 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