X-Git-Url: https://git.r.bdr.sh/rbdr/flower/blobdiff_plain/b006b62b6d8de603bde0fa416a818608e3ed5574..d8421d6220e8c02a67de60e06f7d643cf459da6a:/lib/flower.js?ds=sidebyside diff --git a/lib/flower.js b/lib/flower.js index 78b657a..69802d7 100644 --- a/lib/flower.js +++ b/lib/flower.js @@ -1,3 +1,5 @@ +/* globals window document mat4 */ + const internals = { // Constants @@ -5,7 +7,7 @@ const internals = { kEntrypointElementId: 'entrypoint', // The id of the canvas element where we will render kWidthRatio: 2.76, kHeightRatio: 1, - kTargetVerticalResolution: 32, + kTargetVerticalResolution: 32 + Math.round(Math.random() * 1024), kFieldOfView: 45, kNearLimit: 0.1, kFarLimit: 100, @@ -53,7 +55,7 @@ const internals = { const canvas = internals.initializeCanvas(); - const {gl, programInfo, buffers} = internals.initializeWebGL(canvas); + const { gl, programInfo, buffers } = internals.initializeWebGL(canvas); window.requestAnimationFrame(internals.animate.bind(this, gl, programInfo, buffers)); }, @@ -92,7 +94,7 @@ const internals = { const buffers = internals.initializeBuffers(gl); - return { gl, programInfo, buffers}; + return { gl, programInfo, buffers }; }, // Methods: Canvas @@ -112,10 +114,7 @@ const internals = { canvas.style.height = `${height}px`; canvas.width = internals.kTargetVerticalResolution * internals.kWidthRatio; - canvas.height = internals.kTargetVerticalResolution; - - canvas.width = width; - canvas.height = height; + canvas.height = internals.kTargetVerticalResolution; }, // Methods: Shader / GL Related @@ -132,7 +131,7 @@ const internals = { gl.linkProgram(shaderProgram); if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) { - alert(`Unable to initialize shader program: ${gl.getProgramInfoLog(shaderProgram)}`); + console.error(`Unable to initialize shader program: ${gl.getProgramInfoLog(shaderProgram)}`); return null; } @@ -146,7 +145,7 @@ const internals = { gl.compileShader(shader); if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - alert(`Unable to compile shader: ${gl.getShaderInfoLog(shader)}`); + console.error(`Unable to compile shader: ${gl.getShaderInfoLog(shader)}`); gl.deleteShader(shader); return null; } @@ -178,12 +177,12 @@ const internals = { ]; gl.bufferData(gl.ARRAY_BUFFER, - new Float32Array(positions), - gl.STATIC_DRAW); + new Float32Array(positions), + gl.STATIC_DRAW); return { position: positionBuffer - } + }; }, // Methods: Utility @@ -193,9 +192,9 @@ const internals = { const matrix = mat4.create(); mat4.translate( - matrix, - matrix, - [-0.0, 0.0, -6.0] + matrix, + matrix, + [-0.0, 0.0, -6.0] ); return matrix; @@ -222,11 +221,11 @@ const internals = { const projectionMatrix = mat4.create(); mat4.perspective( - projectionMatrix, - fieldOfView, - aspectRatio, - internals.kNearLimit, - internals.kFarLimit + projectionMatrix, + fieldOfView, + aspectRatio, + internals.kNearLimit, + internals.kFarLimit ); internals.modelViewMatrix = internals.modelViewMatrix || internals.createMatrix(); @@ -242,12 +241,12 @@ const internals = { gl.bindBuffer(gl.ARRAY_BUFFER, buffers.position); gl.vertexAttribPointer( - programInfo.attribLocations.vertexPosition, - numberOfComponents, - type, - normalize, - stride, - offset + programInfo.attribLocations.vertexPosition, + numberOfComponents, + type, + normalize, + stride, + offset ); gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); } @@ -277,8 +276,8 @@ const internals = { ]; gl.bufferData(gl.ARRAY_BUFFER, - new Float32Array(colors), - gl.STATIC_DRAW); + new Float32Array(colors), + gl.STATIC_DRAW); const numberOfComponents = 4; const type = gl.FLOAT; @@ -288,12 +287,12 @@ const internals = { gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); gl.vertexAttribPointer( - programInfo.attribLocations.vertexColor, - numberOfComponents, - type, - normalize, - stride, - offset + programInfo.attribLocations.vertexColor, + numberOfComponents, + type, + normalize, + stride, + offset ); gl.enableVertexAttribArray(programInfo.attribLocations.vertexColor); @@ -303,14 +302,14 @@ const internals = { gl.useProgram(programInfo.program); gl.uniformMatrix4fv( - programInfo.uniformLocations.projectionMatrix, - false, - projectionMatrix + programInfo.uniformLocations.projectionMatrix, + false, + projectionMatrix ); gl.uniformMatrix4fv( - programInfo.uniformLocations.modelViewMatrix, - false, - internals.modelViewMatrix + programInfo.uniformLocations.modelViewMatrix, + false, + internals.modelViewMatrix ); {