diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index edfdb5b823ff26ceaf47abbb8366aba7bc48249c..e9a9efc0a6a76631e101de912a6d7c0f01ded432 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -686,14 +686,16 @@ function WebGLRenderer( parameters ) { }; + var program, geometryProgram, updateBuffers; + this.renderBufferDirect = function ( camera, fog, geometry, material, object, group ) { setMaterial( material ); - var program = setProgram( camera, fog, material, object ); + program = setProgram( camera, fog, material, object ); + geometryProgram = geometry.id + '_' + program.id + '_' + material.wireframe; - var updateBuffers = false; - var geometryProgram = geometry.id + '_' + program.id + '_' + material.wireframe; + updateBuffers = false; if ( geometryProgram !== _currentGeometryProgram ) { @@ -708,6 +710,8 @@ function WebGLRenderer( parameters ) { if ( morphTargetInfluences !== undefined ) { + // TODO Remove allocations + var activeInfluences = []; for ( var i = 0, l = morphTargetInfluences.length; i < l; i ++ ) { @@ -754,8 +758,7 @@ function WebGLRenderer( parameters ) { } - program.getUniforms().setValue( - _gl, 'morphTargetInfluences', morphInfluences ); + program.getUniforms().setValue( _gl, 'morphTargetInfluences', morphInfluences ); updateBuffers = true; @@ -774,17 +777,13 @@ function WebGLRenderer( parameters ) { } - var renderer; + var renderer = bufferRenderer; if ( index !== null ) { renderer = indexedBufferRenderer; renderer.setIndex( index ); - } else { - - renderer = bufferRenderer; - } if ( updateBuffers ) { @@ -2296,7 +2295,8 @@ function WebGLRenderer( parameters ) { if ( light.castShadow ) { - _lights.shadows[ lightShadowsLength ++ ] = light; + _lights.shadows[ lightShadowsLength ] = light; + lightShadowsLength ++; }