From 6890f362a8b208443bf044a9a18b7a32d26b730f Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Thu, 2 Apr 2015 15:47:55 -0400 Subject: [PATCH] WebGLObjects: Replaced __webglInit with local list. This allows rendering the same geometry with different WebGLRenderers. --- src/renderers/webgl/WebGLObjects.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/renderers/webgl/WebGLObjects.js b/src/renderers/webgl/WebGLObjects.js index ab1472e0aa..7e5e215d5a 100644 --- a/src/renderers/webgl/WebGLObjects.js +++ b/src/renderers/webgl/WebGLObjects.js @@ -9,6 +9,8 @@ THREE.WebGLObjects = function ( gl, info, extensions, getBufferMaterial ) { var objects = {}; var objectsImmediate = []; + var geometries = {}; + var geometryGroups = {}; var geometryGroupCounter = 0; @@ -264,7 +266,7 @@ THREE.WebGLObjects = function ( gl, info, extensions, getBufferMaterial ) { function deallocateGeometry ( geometry ) { - delete geometry.__webglInit; + delete geometries[ geometry.id ]; if ( geometry instanceof THREE.BufferGeometry ) { @@ -361,9 +363,9 @@ THREE.WebGLObjects = function ( gl, info, extensions, getBufferMaterial ) { // ImmediateRenderObject - } else if ( geometry.__webglInit === undefined ) { + } else if ( geometries[ geometry.id ] === undefined ) { - geometry.__webglInit = true; + geometries[ geometry.id ] = geometry; geometry.addEventListener( 'dispose', onGeometryDispose ); if ( geometry instanceof THREE.BufferGeometry ) { -- GitLab