+ GLuint location; // Filled in only after phases have been constructed. GL_INVALID_INDEX if no location, or if using UBOs.
+ GLint ubo_offset; // Same. -1 if no location or if not using UBOs.
+ GLint ubo_num_elem; // Same. 0 if no location or if not using UBOs.