public static class TextureCompoundLibraryThe shipped compounds, and a project's own, as node types a graph may contain.
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 ExtensionWhat a compound is written as.
public const string FolderWhere a project keeps the graphs it publishes as node types, under Assets/.
public static ImmutableArray<string> ShippedThe 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