One render-pass slot's compiled shader program — the base (flat-shaded, no-UVs) variant, plus the optional set of Lambert variants compiled into the same slot.

ShaderTechniqueRecord extends ShaderSource, so callers that only care about the base program can read its fields directly without descending into variants.

interface DrawTechniqueRecord {
    className: string;
    config: DrawTechniqueConfig;
    fragmentShaderCommentedSrc: string;
    fragmentShaderSrc: string;
    variants?: Partial<Record<ShaderVariantName, ShaderVariantRecord>>;
    vertexShaderCommentedSrc: string;
    vertexShaderSrc: string;
}

Hierarchy (View Summary)

Properties

className: string

Constructor name of the underlying DrawTechnique subclass — e.g. "TrianglesDrawColorTechnique".

Compile-time technique config — vertsPerPrim and the thickLines flag, captured from the underlying DrawTechnique. Surfaces the renderer's quad-expanded thick-line path so inspectors can flag those slots distinctly from the legacy GL_LINES path.

fragmentShaderCommentedSrc: string

The original shader source code, with comments included. This may be more readable for debugging purposes, but may not be valid GLSL source that can be compiled by WebGL.

fragmentShaderSrc: string

The original shader source code, with comments removed.

variants?: Partial<Record<ShaderVariantName, ShaderVariantRecord>>

Optional Lambert-style variants compiled into this slot. Absent (or empty) for slots that don't vary on (hasNormals, hasUVs, triplanar), e.g. silhouette / pick / edge / shadow-depth / snap passes.

vertexShaderCommentedSrc: string

The original shader source code, with comments included. This may be more readable for debugging purposes, but may not be valid GLSL source that can be compiled by WebGL.

vertexShaderSrc: string

The original shader source code, with comments removed.