Commit 54725c01 authored by Berthold Krevert's avatar Berthold Krevert Committed by Pasi Keränen
Browse files

Plasmaeffect example: Disable vertex attributes if not used


This fixes a crash that may occur on some hardware

Change-Id: I603352ce625ea01f977ff0ca19b1c64ae003d3c1
Reviewed-by: default avatarTomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: default avatarPasi Keränen <pasi.keranen@digia.com>
Showing with 8 additions and 5 deletions
...@@ -158,6 +158,9 @@ function renderGL(canvas) { ...@@ -158,6 +158,9 @@ function renderGL(canvas) {
gl.drawArrays(gl.TRIANGLES, 0, 6); gl.drawArrays(gl.TRIANGLES, 0, 6);
gl.disableVertexAttribArray(bkgAttribute_vertexPosition);
gl.disableVertexAttribArray(bkgAttribute_textureCoord);
gl.enable(gl.DEPTH_TEST); gl.enable(gl.DEPTH_TEST);
gl.depthMask(true); gl.depthMask(true);
gl.enable(gl.DEPTH_WRITE); gl.enable(gl.DEPTH_WRITE);
...@@ -240,6 +243,11 @@ function renderGL(canvas) { ...@@ -240,6 +243,11 @@ function renderGL(canvas) {
gl.uniformMatrix4fva(cubeUniform_mvMatrix, false, mvMatrix); gl.uniformMatrix4fva(cubeUniform_mvMatrix, false, mvMatrix);
gl.drawElements(gl.TRIANGLES, 36, gl.UNSIGNED_SHORT, 0); gl.drawElements(gl.TRIANGLES, 36, gl.UNSIGNED_SHORT, 0);
gl.disableVertexAttribArray(cubeAttribute_vertexPosition);
gl.disableVertexAttribArray(cubeAttribute_vertexColor);
gl.disableVertexAttribArray(cubeAttribute_textureCoord);
} }
function initBuffers() function initBuffers()
...@@ -447,11 +455,8 @@ function initShaders() ...@@ -447,11 +455,8 @@ function initShaders()
gl.useProgram(cubeShaderProgram); gl.useProgram(cubeShaderProgram);
cubeAttribute_vertexPosition = gl.getAttribLocation(cubeShaderProgram, "aVertexPosition"); cubeAttribute_vertexPosition = gl.getAttribLocation(cubeShaderProgram, "aVertexPosition");
gl.enableVertexAttribArray(cubeAttribute_vertexPosition);
cubeAttribute_vertexColor = gl.getAttribLocation(cubeShaderProgram, "aVertexColor"); cubeAttribute_vertexColor = gl.getAttribLocation(cubeShaderProgram, "aVertexColor");
gl.enableVertexAttribArray(cubeAttribute_vertexColor);
cubeAttribute_textureCoord = gl.getAttribLocation(cubeShaderProgram, "aTextureCoord"); cubeAttribute_textureCoord = gl.getAttribLocation(cubeShaderProgram, "aTextureCoord");
gl.enableVertexAttribArray(cubeAttribute_textureCoord);
cubeUniform_time = gl.getUniformLocation(cubeShaderProgram, "uTime"); cubeUniform_time = gl.getUniformLocation(cubeShaderProgram, "uTime");
cubeUniform_pMatrix = gl.getUniformLocation(cubeShaderProgram, "uPMatrix"); cubeUniform_pMatrix = gl.getUniformLocation(cubeShaderProgram, "uPMatrix");
...@@ -524,9 +529,7 @@ function initShaders() ...@@ -524,9 +529,7 @@ function initShaders()
gl.useProgram(bkgShaderProgram); gl.useProgram(bkgShaderProgram);
bkgAttribute_vertexPosition = gl.getAttribLocation(bkgShaderProgram, "aVertexPosition"); bkgAttribute_vertexPosition = gl.getAttribLocation(bkgShaderProgram, "aVertexPosition");
gl.enableVertexAttribArray(bkgAttribute_vertexPosition);
bkgAttribute_textureCoord = gl.getAttribLocation(bkgShaderProgram, "aTextureCoord"); bkgAttribute_textureCoord = gl.getAttribLocation(bkgShaderProgram, "aTextureCoord");
gl.enableVertexAttribArray(bkgAttribute_textureCoord);
bkgUniform_time = gl.getUniformLocation(bkgShaderProgram, "uTime"); bkgUniform_time = gl.getUniformLocation(bkgShaderProgram, "uTime");
gl.bindTexture(gl.TEXTURE_2D, 0); gl.bindTexture(gl.TEXTURE_2D, 0);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment