Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. {
  2.  
  3. const init = () => {
  4. const $canvas = document.querySelector(`.canvas`),
  5. gl = $canvas.getContext(`webgl`);
  6.  
  7. if(!gl) console.log(`WebGL niet ondersteunt`);
  8.  
  9. $canvas.width = window.innerWidth;
  10. $canvas.height = window.innerHeight;
  11.  
  12. gl.viewport(0, 0, $canvas.width, $canvas.height);
  13. gl.clearColor(0.75, 0.85, 0.8, 1);
  14. gl.clear(gl.COLOR_BUFFER_BIT || gl.DEPTH_BUFFER_BIT);
  15.  
  16. const vertexShaderSource = `
  17. precision mediump float;
  18. attribute vec2 vertPosition;
  19.  
  20. void main()
  21. {
  22. gl_Position = vec4(vertPosition, 0.0, 1.0);
  23. }
  24. `;
  25.  
  26. const fragmentShaderSource = `
  27. precision mediump float;
  28.  
  29. void main()
  30. {
  31. gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0);
  32. }
  33. `;
  34.  
  35. const vertexShader = gl.createShader(gl.VERTEX_SHADER);
  36. const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
  37. gl.shaderSource(vertexShader, vertexShaderSource);
  38. gl.shaderSource(fragmentShader, fragmentShaderSource);
  39.  
  40. gl.compileShader(vertexShader);
  41. if(!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)){
  42. console.error(`ERROR compiling vShader`, gl.getShaderInfoLog(vertexShader));
  43. return;
  44. }
  45. gl.compileShader(fragmentShader);
  46. if(!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)){
  47. console.error(`ERROR compiling fShader`, gl.getShaderInfoLog(fragmentShader));
  48. return;
  49. }
  50.  
  51. //program aanmaken
  52. const program = gl.createProgram();
  53. gl.attachShader(program, vertexShader);
  54. gl.attachShader(program, fragmentShader);
  55. gl.linkProgram(program);
  56. if(!gl.getProgramParameter(program, gl.LINK_STATUS)){
  57. console.error(`ERROR LINKING PROGRAM`, gl.getProgramInfoLog(program));
  58. return;
  59. }
  60.  
  61. gl.validateProgram(program);
  62. if(!gl.getProgramParameter(program, gl.VALIDATE_STATUS)){
  63. console.error(`ERROR VALIDATING PROGRAM`, gl.getProgramInfoLog(program));
  64. return;
  65. }
  66.  
  67. // create buffer
  68. const triangleVertices = [
  69. //x, y
  70. 0.0, 0.5,
  71. -0.5, -0.5,
  72. 0.5, -0.5
  73. ];
  74. const triangleVertexBufferObj = gl.createBuffer();
  75. gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexBufferObj);
  76. gl.bufferData(gl.ARRAY_BUFFER,
  77. new Float32Array(triangleVertices),
  78. gl.STATIC_DRAW
  79. );
  80.  
  81. //verticles aan shader meegeven
  82. const positionAttribLocation = gl.getAttribLocation(program, `vertPosition`)
  83. gl.vertexAttribPointer(
  84. positionAttribLocation,
  85. 2,
  86. gl.FLOAT,
  87. gl.FALSE,
  88. 2 * Float32Array.BYTES_PER_ELEMENT,
  89. 0 * Float32Array.BYTES_PER_ELEMENT
  90. );
  91. gl.enableVertexAttribArray(positionAttribLocation);
  92.  
  93. //tekenen op canvas
  94. gl.useProgram(program);
  95. gl.drawArrays(
  96. gl.TRIANGLES,
  97. 0,
  98. 3
  99. );
  100.  
  101. };
  102.  
  103. init();
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement