Vixen
dd8b0a81

Editor · guide

The editor shell

The window the editor is made of, and the command registry every part of it is a view over.

Edit this page on GitHub

Documents

Next

  • Commands and the focus route — A menu declares what, and the focus decides who — a command id resolved by walking outwards from the focused element and on past the root to the document and the application, so two views can answer the same verb without knowing each other exists and an item nothing handles greys itself out.
  • Dialogs that answer — A modal question an application can await — confirm, prompt, choose, or one it fills in itself — queued one at a time, completed from the document's tick rather than from the click that answered it, and answered rather than dropped when the application goes away.
  • Strings and the catalogue — A label is an id plus the English it was written as, so a missing translation shows the sentence rather than the id — and the catalogue in use is a signal, so a language change re-labels a running interface with no code at any call site.
  • Background tasks — Long work that does not freeze the window — a task model with progress, status and cancellation whose properties are signals, a queue that lands every report on one point of the frame, and a manager whose disposal is what stops a cancelled import outliving the application that started it.
  • Editor modes — What the viewport's input means right now, and how a mode claims keys that already mean something else.
  • What a play session runs — How a module adds systems to the frame the editor's Play button steps — the `IPlaySystems` contribution, the `PlaySession` that owns their lifetime, and the physics world the editor now stands up on Play and takes away on Stop.
  • Edits made outside the editor — What happens when a file the editor has open is changed by something else, and why the editor's own saves do not count.
  • Saved filters in the project browser — A named search of the project, kept beside the layouts and the keymap — and why it stores the query rather than what the query matched.
  • Collections in the project browser — A named set of assets kept with the project — why it holds ids rather than paths, and why it lives under ProjectSettings while a saved filter lives beside your keymap.
  • Scene menus — A pie menu under the cursor and a list beside it, both filled by one registration and filtered by the active mode.
  • Prefab overrides — How a scene records that an entity came from a prefab and which of its members it has changed, and what happens when the prefab changes underneath it.
  • Icons — Declaring what a type looks like with SVG path data, and the parser that made the attribute buildable.
  • Utility styles — Styling an editor panel with Tailwind-shaped class names — the build step that compiles them, the one palette they resolve against, and which families the engine actually reads.
  • The editing pipeline — One path every edit in the editor takes, so undo, multi-object editing and mixed values are answered once rather than per panel.
  • Writing an editor plugin — What a plugin can contribute to the editor, how it registers, and how everything it added is taken back out when it unloads.
  • Editor scripts — A .cs file in your project's Editor/ folder is compiled by the running editor and loaded like a plugin — drop it in, and its menu item is there.
  • Inspectors in markup — Writing a custom inspector as a .vxml file with no code-behind, bound to the editing pipeline by name after the tree is built.
  • The frame panel — Editing a .vxcompositor as the Standard Frame's knobs, with the resolved quality waterfall and the per-camera volume stack shown beside them, and Explode as the one-way door out.
  • The network panel — Where a session's bandwidth is going, how the link is behaving over time, and what is inside one snapshot — an editor panel over the BandwidthLedger, SnapshotInspector, RoundTripEstimator and transport loss counters a game already has.
  • Sub-object picking — Which face, edge or vertex of one mesh the pointer is on, and why that is a different question from which entity.
  • Showing what is selected — The corner brackets a viewport draws round a selected object, and why a composed pane cannot say it with colour.
  • Snapping — What a transform lands on, which part of it lands there, and why that is one service rather than one per tool.
  • Building to a number — The work plane you build in, typing an exact distance mid-drag, the tape measure, and the scale references.
  • Editable meshes in a scene — How an entity comes to carry an editable mesh, how it is saved, and how an edit is undone.
  • Element selection — Vertex, edge and face modes over one mesh — what a click takes, what a loop walks, and what survives an edit.
  • The shape tool — Making block-out geometry — live parameters, the cube grid, the poly shape, and duplicate, mirror and array.
  • Face materials — Per-face materials, UV projection, smoothing groups and the block-out checker the viewport draws by default.
  • Booleans and handoff — Non-destructive union, subtract and intersect whose operands stay editable — and what turns a block-out into an asset.
  • Retopology and UV surfaces — Where a quad remesh and an unwrap are actually invoked from — the model importer, three command-line verbs, and the blockout mode's own verb and UV panel.
  • The VFX graph — The node library a .vxvfx is authored against — spawners, initializers, updaters and outputs — and the compiler that turns one graph into both an effect the CPU runs and a shader a device runs.
  • Shader-graph preview thumbnails — Compiling one node's sub-expression on its own, running it over a quad, and keeping the target alive across edits.
  • A material that draws with a shader graph — A graph emits a material feature rather than a whole shader, which is why the engine's existing draw can put one on a mesh.
  • Procedural and UV nodes in a shader graph — Noise, a checker and the two UV transforms — each one a call into the shader library rather than a second copy of it, which is also why they have no preview.
  • Graph diagnostics that name a node — How a complaint about a line of generated shader source becomes a complaint about a node the author can select, across sub-graph inlining.
  • Evaluating a texture plan — The plan of compute kernels a texture graph and a layer stack both compile to, the image pool that runs it, and the resolution rule that keeps a graph the same material at every size.
  • Compiling a texture graph — The compiler that turns a node graph into a texture plan, and the four things it hands back besides the plan — the outputs by usage, the pictures a host still owes it, the parameters an author exposed, and the per-node images a preview draws.
  • The texture graph plugin — The .vxtexgraph document, the panel that edits one, and the module that registers both through the plugin contract — plus the three things a plugin could not do when this module was written, each with the change that closed it.
  • Texture-graph node previews — The swatch under every node of a texture graph — one plan that keeps every node's image, one bake, and pixels handed to the host because a compute queue's images are not the interface's to sample.
  • Mesh maps as project assets — The bake panel a mesh-map bake is set up in, what the nine files are called, how a set is keyed on the model it came from, and how a generator finds one by usage rather than by path.
  • Baking a material — How a texture graph's outputs become files the engine already understands — the nine usages and the seven files they land in, the ORM packing, PNG or KTX2, the .vxmat, the GUID dance, and the provenance block that stops a painted-over map being regenerated.
  • Generators and the compound library — How a generator asks for a baked mesh map by what it measures rather than by which file it is, where a shipped compound lives, and why a graph must not name the mesh it is for.
  • Computing a sub-graph's port values — A published graph is inlined rather than called, so what its unfed ports are worth is decided during the walk — this is the seam that lets a front end compute one instead of only reading a number.