aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/api/webglrenderingcontext/getuniformlocation/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/web/api/webglrenderingcontext/getuniformlocation/index.md')
-rw-r--r--files/fr/web/api/webglrenderingcontext/getuniformlocation/index.md152
1 files changed, 65 insertions, 87 deletions
diff --git a/files/fr/web/api/webglrenderingcontext/getuniformlocation/index.md b/files/fr/web/api/webglrenderingcontext/getuniformlocation/index.md
index 89393bd4f7..27f389fd28 100644
--- a/files/fr/web/api/webglrenderingcontext/getuniformlocation/index.md
+++ b/files/fr/web/api/webglrenderingcontext/getuniformlocation/index.md
@@ -14,70 +14,51 @@ tags:
- getUniformLocation
translation_of: Web/API/WebGLRenderingContext/getUniformLocation
---
-<div>{{APIRef("WebGL")}}</div>
+{{APIRef("WebGL")}}Faisant partie de l'[API WebGL](/fr-FR/docs/Web/API/WebGL_API), la méthode {{domxref("WebGLRenderingContext")}} **`getUniformLocation()`** retourne l'emplacement d'une variable **uniform** particulière appartenant au {{domxref ("WebGLProgram")}} indiqué. La variable uniform est retournée sous la forme d'un objet {{domxref("WebGLUniformLocation")}}, qui est un identificateur opaque utilisé pour indiquer où se trouve la variable uniform dans la mémoire de la GPU. Une fois que vous avez l'emplacement de l'uniform, vous pouvez accéder à l'uniform lui-même en utilisant l'une des autres méthodes d'accès uniform, en passant l'emplacement de l'uniform comme l'une des entrées :
-<div>Faisant partie de l'<a href="/fr-FR/docs/Web/API/WebGL_API">API WebGL</a>, la méthode {{domxref("WebGLRenderingContext")}} <code><strong>getUniformLocation()</strong></code> retourne l'emplacement d'une variable <strong>uniform</strong> particulière appartenant au {{domxref ("WebGLProgram")}} indiqué. La variable uniform est retournée sous la forme d'un objet {{domxref("WebGLUniformLocation")}}, qui est un identificateur opaque utilisé pour indiquer où se trouve la variable uniform dans la mémoire de la GPU.</div>
+- {{domxref ("WebGLRenderingContext.getUniform", "getUniform()")}}
+ - : Retourne la valeur de l'uniform à l'emplacement indiqué.
+- {{domxref ("WebGLRenderingContext.uniform", "uniform[1234] [fi] [v]()")}}
+ - : Affecte à la valeur de l'uniform la valeur spécifiée, qui peut être un nombre flottant ou entier unique, ou un vecteur de 2 à 4 composantes spécifié soit comme une liste de valeurs, soit comme un {{jsxref ("Float32Array")}} ou un {{ jsxref ("Int32Array")}}.
+- {{domxref ("WebGLRenderingContext.uniformMatrix", "uniformMatrix[234][fv]()")}}
+ - : Affecte à la valeur de l'uniforme la matrice spécifiée, éventuellement avec transposition. La valeur est représentée comme une suite de valeurs GLfloat ou comme un Float32Array.
-<div> </div>
+L'uniform lui-même est déclaré dans le programme shader en utilisant GLSL.
-<div>Une fois que vous avez l'emplacement de l'uniform, vous pouvez accéder à l'uniform lui-même en utilisant l'une des autres méthodes d'accès uniform, en passant l'emplacement de l'uniform comme l'une des entrées :</div>
+## Syntaxe
-<div> </div>
+ WebGLUniformLocation = WebGLRenderingContext.getUniformLocation(programme, nom);
-<dl>
- <dt>{{domxref ("WebGLRenderingContext.getUniform", "getUniform()")}}</dt>
- <dd>Retourne la valeur de l'uniform à l'emplacement indiqué.</dd>
- <dt><br>
- {{domxref ("WebGLRenderingContext.uniform", "uniform[1234] [fi] [v]()")}}</dt>
- <dd>Affecte à la valeur de l'uniform la valeur spécifiée, qui peut être un nombre flottant ou entier unique, ou un vecteur de 2 à 4 composantes spécifié soit comme une liste de valeurs, soit comme un {{jsxref ("Float32Array")}} ou un {{ jsxref ("Int32Array")}}.</dd>
- <dt><br>
- {{domxref ("WebGLRenderingContext.uniformMatrix", "uniformMatrix[234][fv]()")}}</dt>
- <dd>Affecte à la valeur de l'uniforme la matrice spécifiée, éventuellement avec transposition. La valeur est représentée comme une suite de valeurs GLfloat ou comme un Float32Array.</dd>
-</dl>
+### Paramètres
-<p><br>
- L'uniform lui-même est déclaré dans le programme shader en utilisant GLSL.</p>
+- `programme`
+ - : Le {{domxref ("WebGLProgram")}} dans lequel localiser la variable uniform indiquée.
+- `nom`
+ - : Une {{domxref ("DOMString")}} indiquant le nom de la variable uniform dont l'emplacement doit être retourné. Le nom ne peut contenir aucun espace, et vous ne pouvez pas utiliser cette fonction pour obtenir l'emplacement d'aucun uniform commençant par la chaîne réservée `"gl_"`, du fait que ceux-ci sont internes à la couche WebGL.
-<h2 id="Syntaxe">Syntaxe</h2>
+### Valeur retournée
-<pre class="syntaxbox"><em>WebGLUniformLocation</em> = <em>WebGLRenderingContext</em>.getUniformLocation(<em>programme</em>, <em>nom</em>);
-</pre>
+Une valeur {{domxref ("WebGLUniformLocation")}} indiquant l'emplacement de la variable nommée, si elle existe. Si la variable indiquée n'existe pas, {{jsxref("null")}} est retourné à la place.
-<h3 id="Paramètres">Paramètres</h3>
+`WebGLUniformLocation` est une valeur opaque utilisée pour identifier de manière unique l'emplacement dans la mémoire de la GPU auquel se trouve la variable uniform. Avec cette valeur en main, vous pouvez appeler d'autres méthodes WebGL pour accéder à la valeur de la variable uniform.
-<dl>
- <dt><code>programme</code></dt>
- <dd>Le {{domxref ("WebGLProgram")}} dans lequel localiser la variable uniform indiquée.</dd>
- <dt><code>nom</code></dt>
- <dd>Une {{domxref ("DOMString")}} indiquant le nom de la variable uniform dont l'emplacement doit être retourné. Le nom ne peut contenir aucun espace, et vous ne pouvez pas utiliser cette fonction pour obtenir l'emplacement d'aucun uniform commençant par la chaîne réservée <code>"gl_"</code>, du fait que ceux-ci sont internes à la couche WebGL.</dd>
-</dl>
+> **Note :** Le type `WebGLUniformLocation` est compatible avec le type `GLint` pour indiquer l'indice ou l'emplacement d'un attribut uniform.
-<h3 id="Valeur_retournée">Valeur retournée</h3>
+### Erreurs
-<p>Une valeur {{domxref ("WebGLUniformLocation")}} indiquant l'emplacement de la variable nommée, si elle existe. Si la variable indiquée n'existe pas, {{jsxref("null")}} est retourné à la place.</p>
+Les erreurs suivantes peuvent se produire ; pour vérifier les erreurs après le retour de getUniformLocation(), appelez {{domxref ("WebGLRenderingContext.getError", "getError()")}}.
-<p><code>WebGLUniformLocation</code> est une valeur opaque utilisée pour identifier de manière unique l'emplacement dans la mémoire de la GPU auquel se trouve la variable uniform. Avec cette valeur en main, vous pouvez appeler d'autres méthodes WebGL pour accéder à la valeur de la variable uniform.</p>
+- GL_INVALID_VALUE
+ - : Le paramètre `programme` n'est pas une valeur ou un objet généré par WebGL.
+- GL_INVALID_OPERATION
+ - : Le paramètre `programme` ne correspond pas à un programme GLSL généré par WebGL, ou le programme indiqué n'a pas été lié avec succès.
-<div class="note">
-<p><strong>Note :</strong> Le type <code>WebGLUniformLocation</code> est compatible avec le type <code>GLint</code> pour indiquer l'indice ou l'emplacement d'un attribut uniform.</p>
-</div>
+## Exemple
-<h3 id="Erreurs">Erreurs</h3>
+Dans cet exemple, extrait de la méthode `animateScene()` dans l'article [Un exemple d'animation 2D WebGL de base](/fr-FR/docs/Web/API/WebGL_API/Basic_2D_animation_example#Drawing_and_animating_the_scene), retrouve les emplacements de trois uniforms du programme d'ombrage, puis définit la valeur de chacun des trois uniforms.
-<p>Les erreurs suivantes peuvent se produire ; pour vérifier les erreurs après le retour de getUniformLocation(), appelez {{domxref ("WebGLRenderingContext.getError", "getError()")}}.</p>
-
-<dl>
- <dt>GL_INVALID_VALUE</dt>
- <dd>Le paramètre <code>programme</code> n'est pas une valeur ou un objet généré par WebGL.</dd>
- <dt>GL_INVALID_OPERATION</dt>
- <dd>Le paramètre <code>programme</code> ne correspond pas à un programme GLSL généré par WebGL, ou le programme indiqué n'a pas été lié avec succès.</dd>
-</dl>
-
-<h2 id="Exemple">Exemple</h2>
-
-<p>Dans cet exemple, extrait de la méthode <code>animateScene()</code> dans l'article <a href="/fr-FR/docs/Web/API/WebGL_API/Basic_2D_animation_example#Drawing_and_animating_the_scene">Un exemple d'animation 2D WebGL de base</a>, retrouve les emplacements de trois uniforms du programme d'ombrage, puis définit la valeur de chacun des trois uniforms.</p>
-
-<pre class="brush: js">gl.useProgram(programmeShader);
+```js
+gl.useProgram(programmeShader);
uScalingFactor =
gl.getUniformLocation(programmeShader, "uScalingFactor");
@@ -88,55 +69,52 @@ uRotationVector =
gl.uniform2fv(uScalingFactor, currentScale);
gl.uniform2fv(uRotationVector, currentRotation);
-gl.uniform4fv(uGlobalColor, [0.1, 0.7, 0.2, 1.0]);</pre>
+gl.uniform4fv(uGlobalColor, [0.1, 0.7, 0.2, 1.0]);
+```
-<div class="note">
- <p><strong>Note :</strong> Cet extrait de code provient de <a href="/fr-FR/docs/Web/API/WebGL_API/Basic_2D_animation_example#Drawing_and_animating_the_scene">la fonction animateScene()</a> dans "Un exemple d'animation WebGL 2D de base". Voir cet article pour l'exemple complet et pour voir l'animation résultante en action.</p>
-</div>
+> **Note :** Cet extrait de code provient de [la fonction animateScene()](/fr-FR/docs/Web/API/WebGL_API/Basic_2D_animation_example#Drawing_and_animating_the_scene) dans "Un exemple d'animation WebGL 2D de base". Voir cet article pour l'exemple complet et pour voir l'animation résultante en action.
-<p>Après avoir défini le programme d'ombrage en cours comme <code>programmeShader</code>, ce code récupère les trois uniforms <code>"uScalingFactor"</code>, <code>"uGlobalColor"</code> et <code>"uRotationVector"</code>, en appelant <code>getUniformLocation()</code> une fois pour chaque uniform.</p>
+Après avoir défini le programme d'ombrage en cours comme `programmeShader`, ce code récupère les trois uniforms `"uScalingFactor"`, `"uGlobalColor"` et `"uRotationVector"`, en appelant `getUniformLocation()` une fois pour chaque uniform.
-<p>Ensuite, les valeurs des trois uniforms sont définies :</p>
+Ensuite, les valeurs des trois uniforms sont définies :
-<ul>
- <li>L'uniform <code>uScalingFactor</code> - un sommet à 2 composantes - reçoit les facteurs d'échelle horizontale et verticale à partir de la variable <code>currentScale</code>.</li>
- <li>L'uniform <code>uRotationVector</code> reçoit le contenu de la variable <code>currentRotation</code>. C'est également un sommet à deux composantes.</li>
- <li>Enfin, l'uniform <code>uGlobalColor</code> reçoit la couleur <code>[0.1, 0.7, 0.2, 1.0]</code>, les composants de ce vecteur à quatre composants représentant respectivement les valeurs rouge, vert, bleu et alpha.</li>
-</ul>
+- L'uniform `uScalingFactor` - un sommet à 2 composantes - reçoit les facteurs d'échelle horizontale et verticale à partir de la variable `currentScale`.
+- L'uniform `uRotationVector` reçoit le contenu de la variable `currentRotation`. C'est également un sommet à deux composantes.
+- Enfin, l'uniform `uGlobalColor` reçoit la couleur `[0.1, 0.7, 0.2, 1.0]`, les composants de ce vecteur à quatre composants représentant respectivement les valeurs rouge, vert, bleu et alpha.
-<p>Cela fait, la prochaine fois que les fonctions d'ombrage seront appelées, leurs propres variables nommées <code>uScalingFactor</code>, <code>uGlobalColor</code> et <code>uRotationVector</code> auront toutes les valeurs fournies par le code JavaScript.</p>
+Cela fait, la prochaine fois que les fonctions d'ombrage seront appelées, leurs propres variables nommées `uScalingFactor`, `uGlobalColor` et `uRotationVector` auront toutes les valeurs fournies par le code JavaScript.
-<h2 id="Spécifications">Spécifications</h2>
+## Spécifications
<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Spécification</th>
- <th scope="col">Statut</th>
- <th scope="col">Commentaire</th>
- </tr>
- <tr>
- <td>{{SpecName('WebGL', "#5.14.10", "getUniformLocation")}}</td>
- <td>{{Spec2('WebGL')}}</td>
- <td>
- <p>Définition initiale.</p>
- </td>
- </tr>
- <tr>
- <td>{{SpecName('OpenGL ES 2.0', "glGetUniformLocation.xml", "glGetUniformLocation")}}</td>
- <td>{{Spec2('OpenGL ES 2.0')}}</td>
- <td>Page man de l’API OpenGL.</td>
- </tr>
- </tbody>
+ <tbody>
+ <tr>
+ <th scope="col">Spécification</th>
+ <th scope="col">Statut</th>
+ <th scope="col">Commentaire</th>
+ </tr>
+ <tr>
+ <td>
+ {{SpecName('WebGL', "#5.14.10", "getUniformLocation")}}
+ </td>
+ <td>{{Spec2('WebGL')}}</td>
+ <td><p>Définition initiale.</p></td>
+ </tr>
+ <tr>
+ <td>
+ {{SpecName('OpenGL ES 2.0', "glGetUniformLocation.xml", "glGetUniformLocation")}}
+ </td>
+ <td>{{Spec2('OpenGL ES 2.0')}}</td>
+ <td>Page man de l’API OpenGL.</td>
+ </tr>
+ </tbody>
</table>
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
+## Compatibilité des navigateurs
-<p>{{Compat("api.WebGLRenderingContext.getUniformLocation")}}</p>
+{{Compat("api.WebGLRenderingContext.getUniformLocation")}}
-<h2 id="Voir_aussi">Voir aussi</h2>
+## Voir aussi
-<ul>
- <li>{{domxref("WebGLRenderingContext.getAttribLocation()")}}</li>
- <li>{{domxref("WebGLUniformLocation")}}</li>
-</ul>
+- {{domxref("WebGLRenderingContext.getAttribLocation()")}}
+- {{domxref("WebGLUniformLocation")}}