📄 UniformsUtils.js
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 4 |
📦 Imports | 1 |
📊 Variables & Constants | 5 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 src/renderers/shaders/UniformsUtils.js
📦 Imports¶
Name | Source |
---|---|
ColorManagement |
../../math/ColorManagement.js |
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
dst |
{} |
let/var | {} |
✗ |
property |
any |
let/var | src[ u ][ p ] |
✗ |
merged |
{} |
let/var | {} |
✗ |
dst |
any[] |
let/var | [] |
✗ |
UniformsUtils |
{ clone: (src: any) => {}; merge: (un... |
let/var | { clone: cloneUniforms, merge: mergeUniforms } |
✗ |
Functions¶
cloneUniforms(src: any): {}
¶
Parameters:
src
any
Returns: {}
Calls:
console.warn
property.clone
Array.isArray
property.slice
Code
export function cloneUniforms( src ) {
const dst = {};
for ( const u in src ) {
dst[ u ] = {};
for ( const p in src[ u ] ) {
const property = src[ u ][ p ];
if ( property && ( property.isColor ||
property.isMatrix3 || property.isMatrix4 ||
property.isVector2 || property.isVector3 || property.isVector4 ||
property.isTexture || property.isQuaternion ) ) {
if ( property.isRenderTargetTexture ) {
console.warn( 'UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().' );
dst[ u ][ p ] = null;
} else {
dst[ u ][ p ] = property.clone();
}
} else if ( Array.isArray( property ) ) {
dst[ u ][ p ] = property.slice();
} else {
dst[ u ][ p ] = property;
}
}
}
return dst;
}
mergeUniforms(uniforms: any): {}
¶
Parameters:
uniforms
any
Returns: {}
Calls:
cloneUniforms
Code
cloneUniformsGroups(src: any): any[]
¶
Parameters:
src
any
Returns: any[]
Calls:
dst.push
src[ u ].clone
Code
getUnlitUniformColorSpace(renderer: any): any
¶
Parameters:
renderer
any
Returns: any
Calls:
renderer.getRenderTarget
Internal Comments:
// https://github.com/mrdoob/three.js/pull/23937#issuecomment-1111067398
// https://github.com/mrdoob/three.js/issues/27868
Code
export function getUnlitUniformColorSpace( renderer ) {
const currentRenderTarget = renderer.getRenderTarget();
if ( currentRenderTarget === null ) {
// https://github.com/mrdoob/three.js/pull/23937#issuecomment-1111067398
return renderer.outputColorSpace;
}
// https://github.com/mrdoob/three.js/issues/27868
if ( currentRenderTarget.isXRRenderTarget === true ) {
return currentRenderTarget.texture.colorSpace;
}
return ColorManagement.workingColorSpace;
}