ReadonlyisBuild-time camera mode — the line graphs' config.isOrtho.
ReadonlyuThe RGBA32F line texture node (6 texels/segment).
ReadonlylineIts width in texels — already .toVar()ed by the caller's prologue.
ReadonlyuViewport resolution uniform node.
ReadonlyuPhysical render-target pixels per CSS pixel.
ReadonlynearScene-relative near-cull distance (already floored).
ReadonlyselfThis segment's own STORAGE slot, as an int node (self-reference guard).
ReadonlyatWhich end of the segment this call is for — a plain JS boolean, not a
node: the caller evaluates BOTH ends unconditionally (see below), so the
direction ternaries fold at graph-build time instead of emitting a
select() that would materialise both arms per vertex.
ReadonlyreachesFalse when near-clipping moved this endpoint off its source vertex.
Readonlyjointtexel4.y at the start vertex, texel4.z at the end one.
ReadonlysharedNDC of the shared vertex (ndcStart / ndcEnd).
ReadonlylineThis segment's unit direction in pixel space.
ReadonlypixelReadonlyjoinTHIS END's clamped pixel half-width — segment-constant, NOT the calling
vertex's. Both width-dependent decisions below (the 2 px gate and the
axial-overshoot guard) feed a flat cap varying, so a per-vertex width
would let the t=0 and t=1 corners of a tapered or foreshortened segment
answer differently and hand the cap to the provoking vertex alone (WGSL
provokes first, WebGL last — so the backends would disagree too).
ReadonlyselfView-space depth (-mvZ) of THIS segment's far endpoint, i.e. the one that is NOT the shared vertex, taken from the UNCLIPPED endpoint depths.
ReadonlycornerOUT — a vec2 .toVar() the caller pre-set to perpendicular * joinPixelWidth. Overwritten with the miter point only where the join
actually applies, so every skipped path keeps the shipped expansion.
ReadonlycapOUT — a float .toVar() the caller pre-set to -1.0 ("no partner reached,
keep the code-implied cap"). Set to the screen-space suppression wherever
a partner IS reached.
Everything
tslLineJoinneeds from its calling vertex stage.