enableAttributes(attributes) {
    const stride = computeAttributesStride(attributes);
    let offset = 0;
    for (let i = 0; i < attributes.length; i++) {
      const attr = attributes[i];
      this.enableAttributeArray_(
        attr.name,
        attr.size,
        attr.type || FLOAT,
        stride,
        offset,
      );
      offset += attr.size * getByteSizeFromType(attr.type);
    }
  }
Will enable the following attributes to be read from the currently bound buffer,
i.e. tell the GPU where to read the different attributes in the buffer. An error in the
size/type/order of attributes will most likely break the rendering and throw a WebGL exception.
@param {Array<AttributeDescription>} attributes Ordered list of attributes to read from the buffer