diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/fr/web/api/webglshader | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/fr/web/api/webglshader')
-rw-r--r-- | files/fr/web/api/webglshader/index.html | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/files/fr/web/api/webglshader/index.html b/files/fr/web/api/webglshader/index.html new file mode 100644 index 0000000000..45fa736678 --- /dev/null +++ b/files/fr/web/api/webglshader/index.html @@ -0,0 +1,109 @@ +--- +title: WebGLShader +slug: Web/API/WebGLShader +tags: + - Reference + - WebGL + - WebGLShader +translation_of: Web/API/WebGLShader +--- +<div>{{APIRef("WebGL")}}</div> + +<p>Le <strong>WebGLShader</strong> fait partie de l'<a href="/fr-FR/docs/Web/API/WebGL_API">API WebGL</a> et peut être un shader de sommet ou de fragment. Un {{domxref ("WebGLProgram")}} requiert les deux types de shaders.</p> + +<h2 id="Description">Description</h2> + +<p>Pour créer un <strong>WebGLShader,</strong> utiliser {{domxref("WebGLRenderingContext.createShader")}}, puis reliez-y le code source GLSL en utilisant {{domxref("WebGLRenderingContext.shaderSource()")}}, et enfin, appelez {{domxref ("WebGLRenderingContext.compileShader()")}} pour terminer et compiler le shader. À ce stade, le WebGLShader n'est toujours pas sous une forme utilisable et doit toujours être relié à un {{domxref ("WebGLProgram")}}.</p> + +<pre class="brush: js">function creerShader (gl, codeSource, type) { + // Compile un shader de type soit gl.VERTEX_SHADER, soit gl.FRAGMENT_SHADER + var shader = gl.createShader( type ); + gl.shaderSource( shader, codeSource ); + gl.compileShader( shader ); + + if ( !gl.getShaderParameter(shader, gl.COMPILE_STATUS) ) { + var info = gl.getShaderInfoLog( shader ); + throw 'Impossible de compiler le programme WebGL.\n\n' + info; + } + return shader; +} +</pre> + +<p>Voir {{domxref("WebGLProgram")}} pour des informations sur la liaison de shaders.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Création_d'un_shader_de_sommet">Création d'un shader de sommet</h3> + +<p>Notez qu'il existe de nombreuses autres stratégies pour écrire des chaînes de code source de shader et y accéder. Ces exemples sont à titre d'illustration seulement.</p> + +<pre class="brush: js">var sourceShaderDeSommet = + 'attribute vec4 position;\n' + + 'void main() {\n' + + ' gl_Position = position;\n' + + '}\n'; + +// Utilisez la function creerShader de l'exemple ci-dessus +var shaderDeSommet = creerShader(gl, sourceShaderDeSommet, gl.VERTEX_SHADER) +</pre> + +<h3 id="Création_d'un_shader_de_fragment">Création d'un shader de fragment</h3> + +<pre class="brush: js">var sourceShaderDeFragment = + 'void main() {\n' + + ' gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n' + + '}\n'; + +// Utilisez la fonction creerShader de l'exemple ci-dessus +var shaderDeFragment = creerShader(gl, sourceShaderDeFragment, gl.FRAGMENT_SHADER) +</pre> + +<h2 id="Spécifications">Spécifications</h2> + +<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.8", "WebGLShader")}}</td> + <td>{{Spec2('WebGL')}}</td> + <td>Définition initiale.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> + +<p class="hidden">La table de compatibilité de cette page est générée à partir de données structurées. Si vous souhaitez contribuer aux données, voyez <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> et envoyez nous une pull request.</p> + +<p>{{Compat("api.WebGLShader.WebGLShader")}}</p> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li>{{domxref("WebGLProgram")}}</li> + <li>{{domxref("WebGLRenderingContext.attachShader()")}}</li> + <li>{{domxref("WebGLRenderingContext.bindAttribLocation()")}}</li> + <li>{{domxref("WebGLRenderingContext.compileShader()")}}</li> + <li>{{domxref("WebGLRenderingContext.createProgram()")}}</li> + <li>{{domxref("WebGLRenderingContext.createShader()")}}</li> + <li>{{domxref("WebGLRenderingContext.deleteProgram()")}}</li> + <li>{{domxref("WebGLRenderingContext.deleteShader()")}}</li> + <li>{{domxref("WebGLRenderingContext.detachShader()")}}</li> + <li>{{domxref("WebGLRenderingContext.getAttachedShaders()")}}</li> + <li>{{domxref("WebGLRenderingContext.getProgramParameter()")}}</li> + <li>{{domxref("WebGLRenderingContext.getProgramInfoLog()")}}</li> + <li>{{domxref("WebGLRenderingContext.getShaderParameter()")}}</li> + <li>{{domxref("WebGLRenderingContext.getShaderPrecisionFormat()")}}</li> + <li>{{domxref("WebGLRenderingContext.getShaderInfoLog()")}}</li> + <li>{{domxref("WebGLRenderingContext.getShaderSource()")}}</li> + <li>{{domxref("WebGLRenderingContext.isProgram()")}}</li> + <li>{{domxref("WebGLRenderingContext.isShader()")}}</li> + <li>{{domxref("WebGLRenderingContext.linkProgram()")}}</li> + <li>{{domxref("WebGLRenderingContext.shaderSource()")}}</li> + <li>{{domxref("WebGLRenderingContext.useProgram()")}}</li> + <li>{{domxref("WebGLRenderingContext.validateProgram()")}}</li> +</ul> |