Vixen
dd8b0a81
csharp
public static class TextureCompoundLibrary

The shipped compounds, and a project's own, as node types a graph may contain.

Read the guide page for this →

Remarks

Doc 48 § D5's claim made true: the several hundred nodes are content. A Histogram Scan is a Levels with its numbers driven by two knobs; a Dirt is a curvature multiplied by an occlusion. Neither is code, and the whole argument for forty-one kernels rather than four hundred is that the rest of the catalogue is .vxtexgraph files somebody authored in the tool. This is the mechanism that turns a folder of them into a menu.

Two roots, one path space, and shipped wins. The shipped compounds are embedded in this assembly — the arrangement Shaders/*.rvn already uses, and for the same reason: there is nothing anybody can leave behind on a deployment. A project's own live in a folder it names, and they are published into the same menu beside the shipped ones, which is doc 48 § A.10's "a folder of .vxtexgraph" and § D14's "a third-party plugin surface".

⚠ A project compound whose path collides with a shipped one is refused rather than allowed to shadow it. Overriding is what a library grows into wanting, and it is also how a graph that worked yesterday quietly starts computing something else — an author's half-finished copy of Generators/Dirt, saved under its own name, silently rebinding every material that reads it. So the collision is a TextureCompoundProblem naming both files, and a deliberate override with a visible marker is a decision somebody makes on purpose rather than a behaviour that arrives by accident.

⚠ This used to say nothing in the tree called Publish outside its own tests, and all three of its claims are now false — #799 closed and this did not. TextureNodeLibrary.Publish in Vixen.Editor.Texturing calls this and is the production caller; TextureNodeLibrary.Create is no longer the only thing there — it is the cheap half, for a caller that needs the node types and no sub-graph source; and TextureGraphDocument takes both halves from Publish and hands the source to its compiler as SubGraphSource. The shipped compounds are in the panel's search.

Fields and properties (3)

  • public const string Extension

    What a compound is written as.

  • public const string Folder

    Where a project keeps the graphs it publishes as node types, under Assets/.

  • public static ImmutableArray<string> Shipped

    The names of the compounds this assembly ships, as node-type paths.

Methods (3)

  • public static string? FolderOf(string? assets)

    Which folder a project's compounds are read from.

  • public static string? Source(string path)

    The text of one shipped compound.

  • public static ISubGraphSource Publish(NodeTypeRegistry registry, string? folder, out ImmutableArray<TextureCompoundProblem> problems)

    Publishes every compound, shipped and then the project's, as node types.

Used by (12)

  • MaskStackTestsVixen.Editor.Texturing.Tests
  • MeshMapGeneratorBindingTestsVixen.Editor.App.Tests
  • SmartMaterialContentTestsVixen.Editor.Texturing.Tests
  • TextureCommandTestsVixen.Cli.Tests
  • TextureCompoundBakeDeviceTestsVixen.Editor.TextureGraph.Tests
  • TextureCompoundLibraryTestsVixen.Editor.TextureGraph.Tests
  • TextureCompoundNameKnobRollCallTestsVixen.Editor.TextureGraph.Tests
  • TextureGraphDocumentTestsVixen.Editor.Texturing.Tests
  • TextureGraphNameKnobTestsVixen.Editor.TextureGraph.Tests
  • TextureGraphPanelTestsVixen.Editor.Texturing.Tests
  • TextureGraphRunnerVixen.Cli
  • TextureNodeLibraryVixen.Editor.Texturing