|
@@ -4366,6 +4366,10 @@ function UniformContainer() {
|
|
|
var arrayCacheF32 = [];
|
|
|
var arrayCacheI32 = [];
|
|
|
|
|
|
+// Float32Array cache used for uploading Matrix4 uniform
|
|
|
+
|
|
|
+var mat4array = new Float32Array(16);
|
|
|
+
|
|
|
// Flattening for arrays of vectors and matrices
|
|
|
|
|
|
function flatten( array, nBlocks, blockSize ) {
|
|
@@ -4476,8 +4480,17 @@ function setValue3fm( gl, v ) {
|
|
|
|
|
|
function setValue4fm( gl, v ) {
|
|
|
|
|
|
- if ( v.elements === undefined ) { gl.uniformMatrix4fv( this.addr, false, v ); }
|
|
|
- else { gl.uniformMatrix4fv( this.addr, false, new Float32Array(v.elements) ); }
|
|
|
+ if ( v.elements === undefined ) {
|
|
|
+
|
|
|
+ gl.uniformMatrix4fv( this.addr, false, v );
|
|
|
+
|
|
|
+ }
|
|
|
+ else {
|
|
|
+
|
|
|
+ mat4array.set(v.elements);
|
|
|
+ gl.uniformMatrix4fv( this.addr, false, mat4array );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|