function getAttributeData(program, gl) {
    var attributes = {};
    var totalAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
    for (var i = 0; i < totalAttributes; i++) {
        var attribData = gl.getActiveAttrib(program, i);
        if (attribData.name.indexOf('gl_') === 0) {
            continue;
        }
        var type = mapType(gl, attribData.type);
        var data = {
            type: type,
            name: attribData.name,
            size: mapSize(type),
            location: gl.getAttribLocation(program, attribData.name),
        };
        attributes[attribData.name] = data;
    }
    return attributes;
}
returns the attribute data from the program
@private
@param {WebGLProgram} [program] - the WebGL program
@param {WebGLRenderingContext} [gl] - the WebGL context
@returns {object} the attribute data for this program