Browse Source

added temporary var to lower lookup

Fordy 10 years ago
parent
commit
cb147d071c
1 changed files with 35 additions and 29 deletions
  1. 35 29
      src/renderers/WebGLRenderer.js

+ 35 - 29
src/renderers/WebGLRenderer.js

@@ -1848,6 +1848,8 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 		}
 		}
 
 
+		var webglProps = objectRendererWebGLProps[material.uuid];
+
 		var shaderID = shaderIDs[ material.type ];
 		var shaderID = shaderIDs[ material.type ];
 
 
 		// heuristics to create shader parameters according to lights in the scene
 		// heuristics to create shader parameters according to lights in the scene
@@ -1947,12 +1949,12 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 		var code = chunks.join();
 		var code = chunks.join();
 
 
-		if ( !objectRendererWebGLProps[material.uuid].program ) {
+		if ( !webglProps.program ) {
 
 
 			// new material
 			// new material
 			material.addEventListener( 'dispose', onMaterialDispose );
 			material.addEventListener( 'dispose', onMaterialDispose );
 
 
-		} else if ( objectRendererWebGLProps[material.uuid].program.code !== code ) {
+		} else if ( webglProps.program.code !== code ) {
 
 
 			// changed glsl or parameters
 			// changed glsl or parameters
 			deallocateMaterial( material );
 			deallocateMaterial( material );
@@ -1962,7 +1964,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 			// same glsl
 			// same glsl
 			return;
 			return;
 
 
-		} else if ( objectRendererWebGLProps[material.uuid].__webglShader.uniforms === material.uniforms ) {
+		} else if ( webglProps.__webglShader.uniforms === material.uniforms ) {
 
 
 			// same uniforms (container object)
 			// same uniforms (container object)
 			return;
 			return;
@@ -1973,7 +1975,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 			var shader = THREE.ShaderLib[ shaderID ];
 			var shader = THREE.ShaderLib[ shaderID ];
 
 
-			objectRendererWebGLProps[material.uuid].__webglShader = {
+			webglProps.__webglShader = {
 				uniforms: THREE.UniformsUtils.clone( shader.uniforms ),
 				uniforms: THREE.UniformsUtils.clone( shader.uniforms ),
 				vertexShader: shader.vertexShader,
 				vertexShader: shader.vertexShader,
 				fragmentShader: shader.fragmentShader
 				fragmentShader: shader.fragmentShader
@@ -1981,7 +1983,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 		} else {
 		} else {
 
 
-			objectRendererWebGLProps[material.uuid].__webglShader = {
+			webglProps.__webglShader = {
 				uniforms: material.uniforms,
 				uniforms: material.uniforms,
 				vertexShader: material.vertexShader,
 				vertexShader: material.vertexShader,
 				fragmentShader: material.fragmentShader
 				fragmentShader: material.fragmentShader
@@ -2010,7 +2012,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 		if ( program === undefined ) {
 		if ( program === undefined ) {
 
 
-			material.__webglShader = objectRendererWebGLProps[material.uuid].__webglShader;
+			material.__webglShader = webglProps.__webglShader;
 			program = new THREE.WebGLProgram( _this, code, material, parameters );
 			program = new THREE.WebGLProgram( _this, code, material, parameters );
 			_programs.push( program );
 			_programs.push( program );
 
 
@@ -2018,7 +2020,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 		}
 		}
 
 
-		objectRendererWebGLProps[material.uuid].program = program;
+		webglProps.program = program;
 
 
 		var attributes = program.getAttributes();
 		var attributes = program.getAttributes();
 
 
@@ -2054,15 +2056,15 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 		}
 		}
 
 
-		objectRendererWebGLProps[material.uuid].uniformsList = [];
+		webglProps.uniformsList = [];
 
 
-		var uniformLocations = objectRendererWebGLProps[material.uuid].program.getUniforms();
-		for ( var u in objectRendererWebGLProps[material.uuid].__webglShader.uniforms ) {
+		var uniformLocations = webglProps.program.getUniforms();
+		for ( var u in webglProps.__webglShader.uniforms ) {
 
 
 			var location = uniformLocations[ u ];
 			var location = uniformLocations[ u ];
 
 
 			if ( location ) {
 			if ( location ) {
-				objectRendererWebGLProps[material.uuid].uniformsList.push( [ objectRendererWebGLProps[material.uuid].__webglShader.uniforms[ u ], location ] );
+				webglProps.uniformsList.push( [ webglProps.__webglShader.uniforms[ u ], location ] );
 			}
 			}
 
 
 		}
 		}
@@ -3614,12 +3616,14 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 		if ( renderTarget && objectRendererWebGLProps[renderTarget.uuid].__webglFramebuffer === undefined ) {
 		if ( renderTarget && objectRendererWebGLProps[renderTarget.uuid].__webglFramebuffer === undefined ) {
 
 
+			var webglProps = objectRendererWebGLProps[renderTarget.uuid];
+
 			if ( renderTarget.depthBuffer === undefined ) renderTarget.depthBuffer = true;
 			if ( renderTarget.depthBuffer === undefined ) renderTarget.depthBuffer = true;
 			if ( renderTarget.stencilBuffer === undefined ) renderTarget.stencilBuffer = true;
 			if ( renderTarget.stencilBuffer === undefined ) renderTarget.stencilBuffer = true;
 
 
 			renderTarget.addEventListener( 'dispose', onRenderTargetDispose );
 			renderTarget.addEventListener( 'dispose', onRenderTargetDispose );
 
 
-			objectRendererWebGLProps[renderTarget.uuid].__webglTexture = _gl.createTexture();
+			webglProps.__webglTexture = _gl.createTexture();
 
 
 			_this.info.memory.textures ++;
 			_this.info.memory.textures ++;
 
 
@@ -3631,22 +3635,22 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 			if ( isCube ) {
 			if ( isCube ) {
 
 
-				objectRendererWebGLProps[renderTarget.uuid].__webglFramebuffer = [];
-				objectRendererWebGLProps[renderTarget.uuid].__webglRenderbuffer = [];
+				webglProps.__webglFramebuffer = [];
+				webglProps.__webglRenderbuffer = [];
 
 
-				state.bindTexture( _gl.TEXTURE_CUBE_MAP, objectRendererWebGLProps[renderTarget.uuid].__webglTexture );
+				state.bindTexture( _gl.TEXTURE_CUBE_MAP, webglProps.__webglTexture );
 
 
 				setTextureParameters( _gl.TEXTURE_CUBE_MAP, renderTarget, isTargetPowerOfTwo );
 				setTextureParameters( _gl.TEXTURE_CUBE_MAP, renderTarget, isTargetPowerOfTwo );
 
 
 				for ( var i = 0; i < 6; i ++ ) {
 				for ( var i = 0; i < 6; i ++ ) {
 
 
-					objectRendererWebGLProps[renderTarget.uuid].__webglFramebuffer[ i ] = _gl.createFramebuffer();
-					objectRendererWebGLProps[renderTarget.uuid].__webglRenderbuffer[ i ] = _gl.createRenderbuffer();
+					webglProps.__webglFramebuffer[ i ] = _gl.createFramebuffer();
+					webglProps.__webglRenderbuffer[ i ] = _gl.createRenderbuffer();
 
 
 					state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null );
 					state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null );
 
 
-					setupFrameBuffer( objectRendererWebGLProps[renderTarget.uuid].__webglFramebuffer[ i ], renderTarget, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i );
-					setupRenderBuffer( objectRendererWebGLProps[renderTarget.uuid].__webglRenderbuffer[ i ], renderTarget );
+					setupFrameBuffer( webglProps.__webglFramebuffer[ i ], renderTarget, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i );
+					setupRenderBuffer( webglProps.__webglRenderbuffer[ i ], renderTarget );
 
 
 				}
 				}
 
 
@@ -3654,40 +3658,40 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 			} else {
 			} else {
 
 
-				objectRendererWebGLProps[renderTarget.uuid].__webglFramebuffer = _gl.createFramebuffer();
+				webglProps.__webglFramebuffer = _gl.createFramebuffer();
 
 
 				if ( renderTarget.shareDepthFrom ) {
 				if ( renderTarget.shareDepthFrom ) {
 
 
-					objectRendererWebGLProps[renderTarget.uuid].__webglRenderbuffer = renderTarget.shareDepthFrom.__webglRenderbuffer;
+					webglProps.__webglRenderbuffer = renderTarget.shareDepthFrom.__webglRenderbuffer;
 
 
 				} else {
 				} else {
 
 
-					objectRendererWebGLProps[renderTarget.uuid].__webglRenderbuffer = _gl.createRenderbuffer();
+					webglProps.__webglRenderbuffer = _gl.createRenderbuffer();
 
 
 				}
 				}
 
 
-				state.bindTexture( _gl.TEXTURE_2D, objectRendererWebGLProps[renderTarget.uuid].__webglTexture );
+				state.bindTexture( _gl.TEXTURE_2D, webglProps.__webglTexture );
 				setTextureParameters( _gl.TEXTURE_2D, renderTarget, isTargetPowerOfTwo );
 				setTextureParameters( _gl.TEXTURE_2D, renderTarget, isTargetPowerOfTwo );
 
 
 				state.texImage2D( _gl.TEXTURE_2D, 0, glFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null );
 				state.texImage2D( _gl.TEXTURE_2D, 0, glFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null );
 
 
-				setupFrameBuffer( objectRendererWebGLProps[renderTarget.uuid].__webglFramebuffer, renderTarget, _gl.TEXTURE_2D );
+				setupFrameBuffer( webglProps.__webglFramebuffer, renderTarget, _gl.TEXTURE_2D );
 
 
 				if ( renderTarget.shareDepthFrom ) {
 				if ( renderTarget.shareDepthFrom ) {
 
 
 					if ( renderTarget.depthBuffer && ! renderTarget.stencilBuffer ) {
 					if ( renderTarget.depthBuffer && ! renderTarget.stencilBuffer ) {
 
 
-						_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.RENDERBUFFER, objectRendererWebGLProps[renderTarget.uuid].__webglRenderbuffer );
+						_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.RENDERBUFFER, webglProps.__webglRenderbuffer );
 
 
 					} else if ( renderTarget.depthBuffer && renderTarget.stencilBuffer ) {
 					} else if ( renderTarget.depthBuffer && renderTarget.stencilBuffer ) {
 
 
-						_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.RENDERBUFFER, objectRendererWebGLProps[renderTarget.uuid].__webglRenderbuffer );
+						_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.RENDERBUFFER, webglProps.__webglRenderbuffer );
 
 
 					}
 					}
 
 
 				} else {
 				} else {
 
 
-					setupRenderBuffer( objectRendererWebGLProps[renderTarget.uuid].__webglRenderbuffer, renderTarget );
+					setupRenderBuffer( webglProps.__webglRenderbuffer, renderTarget );
 
 
 				}
 				}
 
 
@@ -3716,13 +3720,15 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 		if ( renderTarget ) {
 		if ( renderTarget ) {
 
 
+			var webglProps = objectRendererWebGLProps[renderTarget.uuid];
+
 			if ( isCube ) {
 			if ( isCube ) {
 
 
-				framebuffer = objectRendererWebGLProps[renderTarget.uuid].__webglFramebuffer[ renderTarget.activeCubeFace ];
+				framebuffer = webglProps.__webglFramebuffer[ renderTarget.activeCubeFace ];
 
 
 			} else {
 			} else {
 
 
-				framebuffer = objectRendererWebGLProps[renderTarget.uuid].__webglFramebuffer;
+				framebuffer = webglProps.__webglFramebuffer;
 
 
 			}
 			}