add a callback for GL program compilation (and instantiaion, since compilation also happens then)
don't update GL program instance vars for modes until programs finish compiling