From 2fbf7982d0a16243d4adf9f871630f506fc15a0b Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Tue, 25 Nov 2014 12:47:54 +0100 Subject: [PATCH] WebGLRenderer: Simplified code. --- src/renderers/WebGLRenderer.js | 60 +++++++++++++++------------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index cb9697162c..bae1cbaabf 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -2306,38 +2306,6 @@ THREE.WebGLRenderer = function ( parameters ) { }; - function setDirectBuffers( geometry ) { - - var attributes = geometry.attributes; - var attributesKeys = geometry.attributesKeys; - - for ( var i = 0, l = attributesKeys.length; i < l; i ++ ) { - - var key = attributesKeys[ i ]; - var attribute = attributes[ key ]; - - if ( attribute.buffer === undefined ) { - - attribute.buffer = _gl.createBuffer(); - attribute.needsUpdate = true; - - } - - if ( attribute.needsUpdate === true ) { - - var bufferType = ( key === 'index' ) ? _gl.ELEMENT_ARRAY_BUFFER : _gl.ARRAY_BUFFER; - - _gl.bindBuffer( bufferType, attribute.buffer ); - _gl.bufferData( bufferType, attribute.array, _gl.STATIC_DRAW ); - - attribute.needsUpdate = false; - - } - - } - - } - // Buffer rendering this.renderBufferImmediate = function ( object, program, material ) { @@ -3902,7 +3870,33 @@ THREE.WebGLRenderer = function ( parameters ) { if ( geometry instanceof THREE.BufferGeometry ) { - setDirectBuffers( geometry ); + var attributes = geometry.attributes; + var attributesKeys = geometry.attributesKeys; + + for ( var i = 0, l = attributesKeys.length; i < l; i ++ ) { + + var key = attributesKeys[ i ]; + var attribute = attributes[ key ]; + + if ( attribute.buffer === undefined ) { + + attribute.buffer = _gl.createBuffer(); + attribute.needsUpdate = true; + + } + + if ( attribute.needsUpdate === true ) { + + var bufferType = ( key === 'index' ) ? _gl.ELEMENT_ARRAY_BUFFER : _gl.ARRAY_BUFFER; + + _gl.bindBuffer( bufferType, attribute.buffer ); + _gl.bufferData( bufferType, attribute.array, _gl.STATIC_DRAW ); + + attribute.needsUpdate = false; + + } + + } } else if ( object instanceof THREE.Mesh ) { -- GitLab