diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index ea604243bbcdedd94511ce0dc47b6441d0860692..40c57d8d57c74819416af9e1ce3ae0309bc3a745 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -32,8 +32,6 @@ THREE.WebGLRenderer = function ( parameters ) { _clearColor = new THREE.Color( 0x000000 ), _clearAlpha = 0; - var webGLProps = new THREE.WebGLProperties(); - var lights = []; var opaqueObjects = []; @@ -184,7 +182,6 @@ THREE.WebGLRenderer = function ( parameters ) { setDefaultGLState(); objects.objects = {}; - objects.webGLProps.deleteAll(); webGLProps.deleteAll(); }, false); @@ -211,8 +208,10 @@ THREE.WebGLRenderer = function ( parameters ) { } + var webGLProps = new THREE.WebGLProperties(); + var objects = new THREE.WebGLObjects( _gl, webGLProps, this.info ); + var extensions = new THREE.WebGLExtensions( _gl ); - var objects = new THREE.WebGLObjects( _gl, this.info ); extensions.get( 'OES_texture_float' ); extensions.get( 'OES_texture_float_linear' ); diff --git a/src/renderers/webgl/WebGLObjects.js b/src/renderers/webgl/WebGLObjects.js index 0261c4c598a84506d2acded6903620baf8bcec42..be5d88374281a4ea5883064ef1e1bb23131aa75d 100644 --- a/src/renderers/webgl/WebGLObjects.js +++ b/src/renderers/webgl/WebGLObjects.js @@ -2,13 +2,11 @@ * @author mrdoob / http://mrdoob.com/ */ -THREE.WebGLObjects = function ( gl, info ) { +THREE.WebGLObjects = function ( gl, webGLProps, info ) { var objects = {}; var objectsImmediate = []; - var webGLProps = new THREE.WebGLProperties(); - var morphInfluences = new Float32Array( 8 ); var geometries = new THREE.WebGLGeometries( gl, info ); @@ -67,7 +65,6 @@ THREE.WebGLObjects = function ( gl, info ) { this.objects = objects; this.objectsImmediate = objectsImmediate; - this.webGLProps = webGLProps; this.geometries = geometries; @@ -243,7 +240,8 @@ THREE.WebGLObjects = function ( gl, info ) { }; // returns the webgl buffer for a specified attribute - this.getAttributeBuffer = function (attribute) { + this.getAttributeBuffer = function ( attribute ) { + if ( attribute instanceof THREE.InterleavedBufferAttribute ) { return webGLProps.get( attribute.data ).__webglBuffer @@ -251,6 +249,7 @@ THREE.WebGLObjects = function ( gl, info ) { } return webGLProps.get( attribute ).__webglBuffer; + } this.update = function ( renderList ) {