Browse Source

WebGLObjects: Replaced __webglInit with local list.
This allows rendering the same geometry with different WebGLRenderers.

Mr.doob 10 years ago
parent
commit
6890f362a8
1 changed files with 5 additions and 3 deletions
  1. 5 3
      src/renderers/webgl/WebGLObjects.js

+ 5 - 3
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 ) {