julien-c's picture
julien-c HF staff
do not gitignore the builds
6cd9596
raw
history blame
931 Bytes
/**
* Uniform Utilities
*/
export function cloneUniforms( src ) {
var dst = {};
for ( var u in src ) {
dst[ u ] = {};
for ( var p in src[ u ] ) {
var property = src[ u ][ p ];
if ( property && ( property.isColor ||
property.isMatrix3 || property.isMatrix4 ||
property.isVector2 || property.isVector3 || property.isVector4 ||
property.isTexture ) ) {
dst[ u ][ p ] = property.clone();
} else if ( Array.isArray( property ) ) {
dst[ u ][ p ] = property.slice();
} else {
dst[ u ][ p ] = property;
}
}
}
return dst;
}
export function mergeUniforms( uniforms ) {
var merged = {};
for ( var u = 0; u < uniforms.length; u ++ ) {
var tmp = cloneUniforms( uniforms[ u ] );
for ( var p in tmp ) {
merged[ p ] = tmp[ p ];
}
}
return merged;
}
// Legacy
var UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };
export { UniformsUtils };