now webgl takes a signal function, so we can do one-time bind and link