Buckets:
| import { ColorManagement } from '../../math/ColorManagement.js'; | |
| // Uniform Utilities | |
| 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; | |
| } | |
| export function mergeUniforms( uniforms ) { | |
| const merged = {}; | |
| for ( let u = 0; u < uniforms.length; u ++ ) { | |
| const tmp = cloneUniforms( uniforms[ u ] ); | |
| for ( const p in tmp ) { | |
| merged[ p ] = tmp[ p ]; | |
| } | |
| } | |
| return merged; | |
| } | |
| export function cloneUniformsGroups( src ) { | |
| const dst = []; | |
| for ( let u = 0; u < src.length; u ++ ) { | |
| dst.push( src[ u ].clone() ); | |
| } | |
| return dst; | |
| } | |
| 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; | |
| } | |
| // Legacy | |
| const UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms }; | |
| export { UniformsUtils }; | |
Xet Storage Details
- Size:
- 1.89 kB
- Xet hash:
- b21368c7e0b860682893f599ae6a1ed255f49fd399c33df2aa0265c4f50bdebd
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.