Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Module rendering/tsl/slot

    The holder for the lazily-loaded TSL registry — a zero-runtime-import leaf.

    Split from load.ts for one structural reason: the ShaderSource.webgpu closures in the GLSL shader modules need requireTslMaterials(), and if that lived in load.ts those modules would gain a graph edge to load.ts → registry.ts → *-tsl.ts → *-glsl.ts and close a cycle. The cycle is broken at runtime by the dynamic import, but no-circular in .dependency-cruiser.cjs is an error-severity rule and counts a dynamic edge like any other — correctly, since a cycle that only works because of import timing is exactly the kind of thing that rule exists to stop people relying on.

    So the accessor lives here, importing nothing at runtime, and load.ts is the only module that both reaches registry.ts and writes this slot. Same shape and same motivation as material-manager/soft-dispose-flag.ts.

    setTslMaterials
    requireTslMaterials
    areTslMaterialsLoaded
    clearTslMaterialsForTests