WebGLProgram

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Le WebGLProgram fait partie de l'API WebGL et il est une combinaison de deux WebGLShader compilés constitués d'un shader de sommet et d'un shader de fragment (tous deux écrits en GLSL). Ces dernier sont ensuite liés dans un programme utilisable.

js
var programme = gl.createProgram();

// Lier les shaders préexistants
gl.attachShader(programme, shaderDeSommet);
gl.attachShader(programme, shaderDeFragment);

gl.linkProgram(programme);

if (!gl.getProgramParameter(programme, gl.LINK_STATUS)) {
  var info = gl.getProgramInfoLog(programme);
  throw "Impossible de compiler le program WebGL.\n\n" + info;
}

Voir WebGLShader pour des informations sur la création de shaderDeSommet et de shaderDeFragment dans le programme ci-dessus.

Exemples

Utilisation du programme

Les étapes pour travailler effectivement avec le programme impliquent d'indiquer à la GPU d'utiliser le programme, de lier les données et les options de configuration appropriées, et enfin, de dessiner quelque chose à l'écran.

js
// Utiliser le programme
gl.useProgram(programme);

// Lier les données d'attribut existantes
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
gl.enableVertexAttribArray(attributeLocation);
gl.vertexAttribPointer(attributeLocation, 3, gl.FLOAT, false, 0, 0);

// Dessiner un unique triangle
gl.drawArrays(gl.TRIANGLES, 0, 3);

Suppression du programme

S'il y a une erreur lors de l'édition de liens du programme, ou si vous voulez supprimer un programme existant, alors c'est tout simple, il suffit d'exécuter WebGLRenderingContext.deleteProgram(). Cela libère la mémoire du programme lié.

js
gl.deleteProgram(programme);

Spécifications

Specification
WebGL Specification
# 5.6

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi