Browse Source

WebGLRenderer: Reuse webGLProps in WebGLObjects.

Mr.doob 10 years ago
parent
commit
db5a299ce5
2 changed files with 7 additions and 9 deletions
  1. 3 4
      src/renderers/WebGLRenderer.js
  2. 4 5
      src/renderers/webgl/WebGLObjects.js

+ 3 - 4
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' );

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