浏览代码

Prevented renderer from caching outdated programs.

tschw 10 年之前
父节点
当前提交
4aa4eeb5c7
共有 1 个文件被更改,包括 11 次插入4 次删除
  1. 11 4
      src/renderers/WebGLRenderer.js

+ 11 - 4
src/renderers/WebGLRenderer.js

@@ -705,6 +705,15 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	var deallocateMaterial = function ( material ) {
 
+		releaseMaterialProgramReference( material );
+
+		properties.delete( material );
+
+	};
+
+
+	function releaseMaterialProgramReference ( material ) {
+
 		var program = properties.get( material ).program.program;
 
 		if ( program === undefined ) return;
@@ -752,9 +761,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 		}
 
-		properties.delete( material );
-
-	};
+	}
 
 	// Buffer rendering
 
@@ -1937,7 +1944,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 		} else if ( materialProperties.program.code !== code ) {
 
 			// changed glsl or parameters
-			deallocateMaterial( material );
+			releaseMaterialProgramReference( material );
 
 		} else if ( shaderID !== undefined ) {