From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/fr/web/api/webglprogram/index.html | 101 +++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 files/fr/web/api/webglprogram/index.html (limited to 'files/fr/web/api/webglprogram') diff --git a/files/fr/web/api/webglprogram/index.html b/files/fr/web/api/webglprogram/index.html new file mode 100644 index 0000000000..1602a4efc6 --- /dev/null +++ b/files/fr/web/api/webglprogram/index.html @@ -0,0 +1,101 @@ +--- +title: WebGLProgram +slug: Web/API/WebGLProgram +tags: + - WebGL + - WebGLProgram +translation_of: Web/API/WebGLProgram +--- +
{{APIRef("WebGL")}}
+ +

Le WebGLProgram fait partie de l'API WebGL et il est une combinaison de deux {{domxref ("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.

+ +
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 {{domxref("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.

+ +
// 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 {{domxref ("WebGLRenderingContext.deleteProgram()")}}. Cela libère la mémoire du programme lié.

+ +
gl.deleteProgram(programme);
+
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('WebGL', "#5.6", "WebGLProgram")}}{{Spec2('WebGL')}}Définition initale.
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("api.WebGLProgram")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf