Luxar Viewer API Documentation - v2026.10.19
    Preparing search index...
    interface LineTSLConfig {
        useColormap?: boolean;
        useMaxRGBContribution?: boolean;
        blendingMode?: BlendingModeName;
        gammaOne?: boolean;
        noGOG?: boolean;
        join?: LineJoinStyleName;
        projection?: LineProjectionVariant;
        elementTextureWidth?: number;
    }
    Index
    useColormap?: boolean
    useMaxRGBContribution?: boolean

    When undefined, derived from blendingMode === 'max'. Explicit config still wins.

    blendingMode?: BlendingModeName

    Luxar blending mode. Defaults to 'additive' to match the GLSL wrapper class.

    gammaOne?: boolean

    Fast path: skip the pow(adjusted, vec3(uInvGamma)) call when the wrapper knows gamma == 1.0. Saves 3 fragment-stage pow() calls in the default-gamma case (the common case).

    noGOG?: boolean

    Fast path: skip the vColor * uIntensity + uOffset GOG chain (and its max(..., vec3(0)) clamp) when the wrapper knows intensity == 1 && offset == 0 — the default and most common configuration. Saves 1 vec3 multiply, 1 vec3 add, and 1 vec3 max per fragment.

    Join style at degree-2 polyline joints (#790). BUILD-time here, unlike the GLSL twin's uLineJoin uniform: the TSL vertex stage is traced in a single Fn() that deliberately avoids structural select() branches, so the style is a graph variant and the wrapper calls rebuildGraph() when it changes. Omitted ⇒ the session default.

    The camera projection is NOT a config field: the ortho/perspective split is read per draw from cameraProjectionMatrix (isOrthoProjectionTSL(), the GLSL twin's luxarLineIsOrtho), so one graph serves both cameras and a camera-kind flip rebuilds nothing.

    Compile-time projection variant (screen-space quad only). 'ortho' / 'perspective' bake the ortho test into the graph as a constant, so the compiler drops the other projection's code (a single runtime-ortho graph measured +4.6% of the GPU pass on the 10M-segment ortho quad under WebGPU); the ortho variant also carries no view-z varying. The wrapper picks the variant PER DRAW from the drawn camera's projection matrix (selectProjectionVariant, _shared/projection-variant.ts) — nothing is pushed from the CPU. Unset: the ortho test is read at runtime from cameraProjectionMatrix (the parity harness / ShaderSource path).

    elementTextureWidth?: number

    The line texture's width, baked into the vertex addressing as a literal. Defaults to the width resolved from nodes.uLineTex.value; a wrapper building a SHARED graph (shared-graph-tsl.ts) passes it so it is part of the graph's configuration key. Read by both line factories (quad and capsule).