What registerParticlePipeline() installs: a factory the renderer calls
once per context, on the first particle item — never at initialize,
so a scene with no particles issues the byte-identical GL sequence it
always did, and never per frame.
Compiles the plain billboard program on gl and builds the two caches.
May throw SHADER_COMPILATION_FAILED (§89); the renderer catches it —
§61 forbids a frame from throwing — warns once, and draws no particles
on that context.
What
registerParticlePipeline()installs: a factory the renderer calls once per context, on the first particle item — never at initialize, so a scene with no particles issues the byte-identical GL sequence it always did, and never per frame.