What registerSkinningPipeline() installs: a factory the renderer calls
once per context, on the first skinned draw — never at initialize, so a
scene with no skinned mesh issues the byte-identical GL sequence it always
did (the RFC's acceptance gate), and never per frame.
create compiles the colour pair only (unlit + lit). The caster is
compiled later, from the returned pair, if a skinned mesh actually casts.
Compiles the two skinned colour programs on gl. May throw
SHADER_COMPILATION_FAILED (§89); the renderer catches it — §61 forbids a
frame from throwing — warns once, and skins nothing on that context.
What
registerSkinningPipeline()installs: a factory the renderer calls once per context, on the first skinned draw — never at initialize, so a scene with no skinned mesh issues the byte-identical GL sequence it always did (the RFC's acceptance gate), and never per frame.createcompiles the colour pair only (unlit + lit). The caster is compiled later, from the returned pair, if a skinned mesh actually casts.