-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshader.js
39 lines (30 loc) · 1.14 KB
/
shader.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function createShader(gl, type, source) {
const shader = gl.createShader(type);
gl.shaderSource(shader, source);
gl.compileShader(shader);
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
console.error('An error occurred compiling the shader:', gl.getShaderInfoLog(shader));
gl.deleteShader(shader);
return null;
}
return shader;
}
function createProgram(gl, vertexShader, fragmentShader) {
const program = gl.createProgram();
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
console.error('Unable to initialize the shader program:', gl.getProgramInfoLog(program));
return null;
}
return program;
}
const canvas = document.getElementById('myCanvas');
const gl = canvas.getContext('webgl');
// Définir les dimensions du canvas
canvas.width = 610;
canvas.height = 340;
// ... (le reste de votre code, en utilisant les fonctions createShader et createProgram)
// Dessiner le triangle
gl.drawArrays(gl.TRIANGLES, 0, 3);