Whether EffectProgram.dispose has run.
Deletes the GL program (§83). Idempotent.
Only call this on a live context — see UnlitProgram.dispose.
Selects the plain copy for the draw about to be issued — §70's blit.
Issues a uniform1i only if a grade preceded it, so a program that has
only ever copied has never uploaded this uniform and the fragment stage
runs its no-arithmetic path.
Selects §70's colour grade with the three coefficients
ColorGradeEffect documents, in that order.
Issues a GL call only where the draw changes something: the switch when it was off, the coefficients when any of the three moved. A chain that grades with the same numbers every frame therefore uploads them once.
Selects §60a's output transform for the draw about to be issued: the source encoded as sRGB, with no grade.
Issues at most the two switch uploads, and only the ones that actually change — a chain that presents the same way every frame uploads them once in the lifetime of the program.
Points the source sampler at texture unit, once per program
lifetime.
glUniform1i writes into the currently bound program, so this cannot
happen at creation time without putting the renderer's program state in two
places (the argument SpriteProgram.setSampler records). GL's initial
sampler value is already EFFECT_TEXTURE_UNIT, so the upload is belt
and braces — it costs one call in the lifetime of the program and nothing
per frame, which is what keeps a chain of copies free of uniform traffic.
Makes this the current program. Call before any upload below.
StaticcreateCompiles and links the effect program on gl.
Fails exactly as UnlitProgram.create does — see it, and
createLinkedProgram, for the contract; the messages name "effect" and
the §89 code is the same SHADER_COMPILATION_FAILED.
§70's full-screen effect pipeline (R-6) — see the module header.
Owns its GL program and nothing else: the texture it samples belongs to
gl-render-target.ts's cache. Since 2026-09-11 it compiles lazily, on the renderer's first fixed effect pass, and only once registerEffectPipeline has been called — the renderer drops it on context loss and re-acquires it on the next effect (§61), exactly as it handles the skinned pair.