Shadow Receiver Program
Common contract implemented by every shader program that samples the cascaded shadow maps (see ShadowReceiverGlsl for the GLSL these methods drive). Lets applyShadowReceiverUniforms bind cascade depth textures and load the per-frame cascade matrices in one place rather than copy-pasting the recipe into every receiver drawable.
Inheritors
Properties
Frame stamp of the last ShadowState whose uniforms were uploaded into this program. GL uniforms are program-state and persist across draw calls, so once a program has been loaded with the current frame's cascades it doesn't need to be loaded again until the cascades change. Implementations declare this as a plain var field, default -1L.
Functions
Disables shadow sampling. Receivers' fragments fall through to a fixed 1.0 visibility.
Enables shadow sampling and uploads the cascade matrices, split depths, texel sizes, light direction and fade distance from state. Cascade sampler bindings (GL_TEXTURE1..4) are baked in at program init time; the caller is responsible for binding the matching cascade depth textures to those units before invoking this method — applyShadowReceiverUniforms does both in lockstep.