Quellcode durchsuchen

WebGLProgram: Simplified index0AttributeName code.

Mr.doob vor 10 Jahren
Ursprung
Commit
497d3b23fb
1 geänderte Dateien mit 10 neuen und 19 gelöschten Zeilen
  1. 10 19
      src/renderers/webgl/WebGLProgram.js

+ 10 - 19
src/renderers/webgl/WebGLProgram.js

@@ -32,7 +32,7 @@ THREE.WebGLProgram = ( function () {
 			var name = info.name;
 			var location = gl.getUniformLocation( program, name );
 
-			//console.log("THREE.WebGLProgram: ACTIVE UNIFORM:", name);
+			// console.log("THREE.WebGLProgram: ACTIVE UNIFORM:", name);
 
 			var suffixPos = name.lastIndexOf( '[0]' );
 			if ( suffixPos !== - 1 && suffixPos === name.length - 3 ) {
@@ -60,7 +60,7 @@ THREE.WebGLProgram = ( function () {
 			var info = gl.getActiveAttrib( program, i );
 			var name = info.name;
 
-			//console.log("THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:", name);
+			// console.log("THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:", name, i );
 
 			attributes[ name ] = gl.getAttribLocation( program, name );
 
@@ -85,18 +85,6 @@ THREE.WebGLProgram = ( function () {
 		var vertexShader = material.__webglShader.vertexShader;
 		var fragmentShader = material.__webglShader.fragmentShader;
 
-		var index0AttributeName = material.index0AttributeName;
-
-		/*
-		if ( index0AttributeName === undefined && parameters.morphTargets === true ) {
-
-			// programs with morphTargets displace position out of attribute 0
-
-			index0AttributeName = 'position';
-
-		}
-		*/
-
 		var shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';
 
 		if ( parameters.shadowMapType === THREE.PCFShadowMap ) {
@@ -364,13 +352,16 @@ THREE.WebGLProgram = ( function () {
 		gl.attachShader( program, glVertexShader );
 		gl.attachShader( program, glFragmentShader );
 
-		if ( index0AttributeName !== undefined ) {
+		// Force a particular attribute to index 0.
+
+		if ( material.index0AttributeName !== undefined ) {
 
-			// Force a particular attribute to index 0.
-			// because potentially expensive emulation is done by browser if attribute 0 is disabled.
-			// And, color, for example is often automatically bound to index 0 so disabling it
+			gl.bindAttribLocation( program, 0, material.index0AttributeName );
 
-			gl.bindAttribLocation( program, 0, index0AttributeName );
+		} else if ( parameters.morphTargets === true ) {
+
+			// programs with morphTargets displace position out of attribute 0
+			gl.bindAttribLocation( program, 0, 'position' );
 
 		}