Say one has reached a point of having to program a way to switch programs.
Right now I’m thinking it might be ideal to separate “drawing entities” into groups of programs and perhaps other data.
For instance, a “font entity” or a “static mesh entity”. Each might have its own GLSL program but also other data such as its own lighting etc.
Do you know of a better way?