Browse Source

Added Matrix3 uniforms loading

Ryan Tsao 11 years ago
parent
commit
fa57db86d9
1 changed files with 27 additions and 0 deletions
  1. 27 0
      src/renderers/WebGLRenderer.js

+ 27 - 0
src/renderers/WebGLRenderer.js

@@ -4855,6 +4855,33 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 				_gl.uniform4fv( location, uniform._array );
 
+			} else if ( type === "m3") { // single THREE.Matrix3
+
+				if ( uniform._array === undefined ) {
+
+					uniform._array = new Float32Array( 9 );
+
+				}
+
+				value.flattenToArray( uniform._array );
+				_gl.uniformMatrix3fv( location, false, uniform._array );
+
+			} else if ( type === "m3v" ) { // array of THREE.Matrix3
+
+				if ( uniform._array === undefined ) {
+
+					uniform._array = new Float32Array( 9 * value.length );
+
+				}
+
+				for ( i = 0, il = value.length; i < il; i ++ ) {
+
+					value[ i ].flattenToArrayOffset( uniform._array, i * 9 );
+
+				}
+
+				_gl.uniformMatrix3fv( location, false, uniform._array );
+
 			} else if ( type === "m4") { // single THREE.Matrix4
 
 				if ( uniform._array === undefined ) {