Calling glUniform* only when it's required