getAttribLocation method

Returns an index to the location in a program of a named attribute variable.




var index = WebGLRenderingContext.getAttribLocation(program, name);


program [in]

Type: WebGLProgram

The program object.

name [in]

Type: String

The name of the attribute variable.

Return value

Type: Number

The location of the attribute variable name if found. Returns a -1 if not.


If name is a matrix variable, index points to the first column of the matrix.


This example gets the location of an attribute passed into a shader using the getAttribLocation method. For more info on this example, see Get started with WebGL.

  // Look up where the vertex data needs to go.
this.texCoordLocation2 = gl.getAttribLocation(this.lineprogram, "a_texCoord");

  // Provide texture coordinates for the rectangle.
this.texCoordBuffer2 = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, this.texCoordBuffer2);
// Create a buffer and set it use the array set up above.
// Set it to be modified once, use many.
// createRedGrid sets up the vector array itself.        
gl.bufferData(gl.ARRAY_BUFFER, createRedGrid(), gl.STATIC_DRAW); // Fill buffer data

// Turns on the vertex attributes in the GPU program. 

// Set up the data format for the vertex array - set to points (x/y). 
// Use floats.
gl.vertexAttribPointer(this.texCoordLocation2, 2, gl.FLOAT, false, 0, 0);

See also