diff --git a/src/mesh/webgl/MeshRenderer.js b/src/mesh/webgl/MeshRenderer.js index 7fb6247..746ad4b 100644 --- a/src/mesh/webgl/MeshRenderer.js +++ b/src/mesh/webgl/MeshRenderer.js @@ -1,5 +1,6 @@ var ObjectRenderer = require('../../core/renderers/webgl/utils/ObjectRenderer'), - WebGLRenderer = require('../../core/renderers/webgl/WebGLRenderer'); + WebGLRenderer = require('../../core/renderers/webgl/WebGLRenderer'), + Mesh = require('../Mesh'); /** * @author Mat Groves @@ -79,8 +80,7 @@ texture = mesh.texture.baseTexture, shader = renderer.shaderManager.plugins.meshShader; -// var drawMode = mesh.drawMode === Strip.DRAW_MODES.TRIANGLE_STRIP ? gl.TRIANGLE_STRIP : gl.TRIANGLES; - var drawMode = gl.TRIANGLE_STRIP; + var drawMode = mesh.drawMode === Mesh.DRAW_MODES.TRIANGLE_STRIP ? gl.TRIANGLE_STRIP : gl.TRIANGLES; renderer.blendModeManager.setBlendMode(mesh.blendMode); @@ -98,8 +98,6 @@ gl.bufferSubData(gl.ARRAY_BUFFER, 0, mesh.vertices); gl.vertexAttribPointer(shader.attributes.aVertexPosition, 2, gl.FLOAT, false, 0, 0); - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, mesh._indexBuffer); - gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER,0, mesh.indices); // update the uvs gl.bindBuffer(gl.ARRAY_BUFFER, mesh._uvBuffer); @@ -117,6 +115,7 @@ // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); } + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, mesh._indexBuffer); } else { @@ -165,7 +164,8 @@ mesh._vertexBuffer = gl.createBuffer(); mesh._indexBuffer = gl.createBuffer(); mesh._uvBuffer = gl.createBuffer(); - mesh._colorBuffer = gl.createBuffer(); + + gl.bindBuffer(gl.ARRAY_BUFFER, mesh._vertexBuffer); gl.bufferData(gl.ARRAY_BUFFER, mesh.vertices, gl.DYNAMIC_DRAW); @@ -173,8 +173,11 @@ gl.bindBuffer(gl.ARRAY_BUFFER, mesh._uvBuffer); gl.bufferData(gl.ARRAY_BUFFER, mesh.uvs, gl.STATIC_DRAW); - gl.bindBuffer(gl.ARRAY_BUFFER, mesh._colorBuffer); - gl.bufferData(gl.ARRAY_BUFFER, mesh.colors, gl.STATIC_DRAW); + if(mesh.colors){ + mesh._colorBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, mesh._colorBuffer); + gl.bufferData(gl.ARRAY_BUFFER, mesh.colors, gl.STATIC_DRAW); + } gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, mesh._indexBuffer); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, mesh.indices, gl.STATIC_DRAW);