1404114041
1404214042 var fog_pars_vertex = "#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif";
1404314043
14044- var fog_fragment = "#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = whiteCompliment( exp2 ( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif";
14044+ var fog_fragment = "#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp ( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif";
1404514045
1404614046 var fog_pars_fragment = "#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif";
1404714047
@@ -15762,13 +15762,13 @@
1576215762
1576315763 function WebGLGeometries( gl, attributes, info ) {
1576415764
15765- var geometries = {} ;
15766- var wireframeAttributes = {} ;
15765+ var geometries = new WeakMap() ;
15766+ var wireframeAttributes = new WeakMap() ;
1576715767
1576815768 function onGeometryDispose( event ) {
1576915769
1577015770 var geometry = event.target;
15771- var buffergeometry = geometries[ geometry.id ] ;
15771+ var buffergeometry = geometries.get( geometry ) ;
1577215772
1577315773 if ( buffergeometry.index !== null ) {
1577415774
@@ -15784,14 +15784,14 @@
1578415784
1578515785 geometry.removeEventListener( 'dispose', onGeometryDispose );
1578615786
15787- delete geometries[ geometry.id ] ;
15787+ geometries. delete( geometry ) ;
1578815788
15789- var attribute = wireframeAttributes[ buffergeometry.id ] ;
15789+ var attribute = wireframeAttributes.get( buffergeometry ) ;
1579015790
1579115791 if ( attribute ) {
1579215792
1579315793 attributes.remove( attribute );
15794- delete wireframeAttributes[ buffergeometry.id ] ;
15794+ wireframeAttributes. delete( buffergeometry ) ;
1579515795
1579615796 }
1579715797
1580315803
1580415804 function get( object, geometry ) {
1580515805
15806- var buffergeometry = geometries[ geometry.id ] ;
15806+ var buffergeometry = geometries.get( geometry ) ;
1580715807
1580815808 if ( buffergeometry ) return buffergeometry;
1580915809
1582515825
1582615826 }
1582715827
15828- geometries[ geometry.id ] = buffergeometry;
15828+ geometries.set( geometry, buffergeometry ) ;
1582915829
1583015830 info.memory.geometries ++;
1583115831
@@ -15915,19 +15915,19 @@
1591515915
1591615916 //
1591715917
15918- var previousAttribute = wireframeAttributes[ geometry.id ] ;
15918+ var previousAttribute = wireframeAttributes.get( geometry ) ;
1591915919
1592015920 if ( previousAttribute ) attributes.remove( previousAttribute );
1592115921
1592215922 //
1592315923
15924- wireframeAttributes[ geometry.id ] = attribute;
15924+ wireframeAttributes.set( geometry, attribute ) ;
1592515925
1592615926 }
1592715927
1592815928 function getWireframeAttribute( geometry ) {
1592915929
15930- var currentAttribute = wireframeAttributes[ geometry.id ] ;
15930+ var currentAttribute = wireframeAttributes.get( geometry ) ;
1593115931
1593215932 if ( currentAttribute ) {
1593315933
1595115951
1595215952 }
1595315953
15954- return wireframeAttributes[ geometry.id ] ;
15954+ return wireframeAttributes.get( geometry ) ;
1595515955
1595615956 }
1595715957
1600716007
1600816008 } else {
1600916009
16010- var extension = extensions.get( 'ANGLE_instanced_arrays' );
16010+ extension = extensions.get( 'ANGLE_instanced_arrays' );
1601116011
1601216012 if ( extension === null ) {
1601316013
1760017600
1760117601 '#define MAX_BONES ' + parameters.maxBones,
1760217602 ( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '',
17603- ( parameters.useFog && parameters.fogExp ) ? '#define FOG_EXP2' : '',
17603+ ( parameters.useFog && parameters.fogExp2 ) ? '#define FOG_EXP2' : '',
1760417604
1760517605 parameters.map ? '#define USE_MAP' : '',
1760617606 parameters.envMap ? '#define USE_ENVMAP' : '',
1771517715 '#define GAMMA_FACTOR ' + gammaFactorDefine,
1771617716
1771717717 ( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '',
17718- ( parameters.useFog && parameters.fogExp ) ? '#define FOG_EXP2' : '',
17718+ ( parameters.useFog && parameters.fogExp2 ) ? '#define FOG_EXP2' : '',
1771917719
1772017720 parameters.map ? '#define USE_MAP' : '',
1772117721 parameters.matcap ? '#define USE_MATCAP' : '',
1801318013 "precision", "supportsVertexTextures", "map", "mapEncoding", "matcap", "matcapEncoding", "envMap", "envMapMode", "envMapEncoding",
1801418014 "lightMap", "aoMap", "emissiveMap", "emissiveMapEncoding", "bumpMap", "normalMap", "objectSpaceNormalMap", "clearCoatNormalMap", "displacementMap", "specularMap",
1801518015 "roughnessMap", "metalnessMap", "gradientMap",
18016- "alphaMap", "combine", "vertexColors", "vertexTangents", "fog", "useFog", "fogExp ",
18016+ "alphaMap", "combine", "vertexColors", "vertexTangents", "fog", "useFog", "fogExp2 ",
1801718017 "flatShading", "sizeAttenuation", "logarithmicDepthBuffer", "skinning",
1801818018 "maxBones", "useVertexTexture", "morphTargets", "morphNormals",
1801918019 "maxMorphTargets", "maxMorphNormals", "premultipliedAlpha",
1815218152
1815318153 fog: !! fog,
1815418154 useFog: material.fog,
18155- fogExp : ( fog && fog.isFogExp2 ),
18155+ fogExp2 : ( fog && fog.isFogExp2 ),
1815618156
1815718157 flatShading: material.flatShading,
1815818158
@@ -18501,37 +18501,37 @@
1850118501
1850218502 function WebGLRenderLists() {
1850318503
18504- var lists = {} ;
18504+ var lists = new WeakMap() ;
1850518505
1850618506 function onSceneDispose( event ) {
1850718507
1850818508 var scene = event.target;
1850918509
1851018510 scene.removeEventListener( 'dispose', onSceneDispose );
1851118511
18512- delete lists[ scene.id ] ;
18512+ lists. delete( scene ) ;
1851318513
1851418514 }
1851518515
1851618516 function get( scene, camera ) {
1851718517
18518- var cameras = lists[ scene.id ] ;
18518+ var cameras = lists.get( scene ) ;
1851918519 var list;
1852018520 if ( cameras === undefined ) {
1852118521
1852218522 list = new WebGLRenderList();
18523- lists[ scene.id ] = {} ;
18524- lists[ scene.id ][ camera.id ] = list;
18523+ lists.set( scene, new WeakMap() ) ;
18524+ lists.get( scene ).set( camera, list ) ;
1852518525
1852618526 scene.addEventListener( 'dispose', onSceneDispose );
1852718527
1852818528 } else {
1852918529
18530- list = cameras[ camera.id ] ;
18530+ list = cameras.get( camera ) ;
1853118531 if ( list === undefined ) {
1853218532
1853318533 list = new WebGLRenderList();
18534- cameras[ camera.id ] = list;
18534+ cameras.set( camera, list ) ;
1853518535
1853618536 }
1853718537
1854318543
1854418544 function dispose() {
1854518545
18546- lists = {} ;
18546+ lists = new WeakMap() ;
1854718547
1854818548 }
1854918549
@@ -19012,40 +19012,40 @@
1901219012
1901319013 function WebGLRenderStates() {
1901419014
19015- var renderStates = {} ;
19015+ var renderStates = new WeakMap() ;
1901619016
1901719017 function onSceneDispose( event ) {
1901819018
1901919019 var scene = event.target;
1902019020
1902119021 scene.removeEventListener( 'dispose', onSceneDispose );
1902219022
19023- delete renderStates[ scene.id ] ;
19023+ renderStates. delete( scene ) ;
1902419024
1902519025 }
1902619026
1902719027 function get( scene, camera ) {
1902819028
1902919029 var renderState;
1903019030
19031- if ( renderStates[ scene.id ] === undefined ) {
19031+ if ( renderStates.has( scene ) === false ) {
1903219032
1903319033 renderState = new WebGLRenderState();
19034- renderStates[ scene.id ] = {} ;
19035- renderStates[ scene.id ][ camera.id ] = renderState;
19034+ renderStates.set( scene, new WeakMap() ) ;
19035+ renderStates.get( scene ).set( camera, renderState ) ;
1903619036
1903719037 scene.addEventListener( 'dispose', onSceneDispose );
1903819038
1903919039 } else {
1904019040
19041- if ( renderStates[ scene.id ][ camera.id ] === undefined ) {
19041+ if ( renderStates.get( scene ).has( camera ) === false ) {
1904219042
1904319043 renderState = new WebGLRenderState();
19044- renderStates[ scene.id ][ camera.id ] = renderState;
19044+ renderStates.get( scene ).set( camera, renderState ) ;
1904519045
1904619046 } else {
1904719047
19048- renderState = renderStates[ scene.id ][ camera.id ] ;
19048+ renderState = renderStates.get( scene ).get( camera ) ;
1904919049
1905019050 }
1905119051
1905719057
1905819058 function dispose() {
1905919059
19060- renderStates = {} ;
19060+ renderStates = new WeakMap() ;
1906119061
1906219062 }
1906319063
2064220642
2064320643 function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info ) {
2064420644
20645- var _videoTextures = {} ;
20645+ var _videoTextures = new WeakMap() ;
2064620646 var _canvas;
2064720647
2064820648 //
2082420824
2082520825 if ( texture.isVideoTexture ) {
2082620826
20827- delete _videoTextures[ texture.id ] ;
20827+ _videoTextures. delete( texture ) ;
2082820828
2082920829 }
2083020830
2104521045 for ( var j = 0; j < mipmaps.length; ++ j ) {
2104621046
2104721047 var mipmap = mipmaps[ j ];
21048- var image = mipmap.image[ i ].image;
21048+ var mipmapImage = mipmap.image[ i ].image;
2104921049
21050- state.texImage2D( 34069 + i, j + 1, glInternalFormat, image .width, image .height, 0, glFormat, glType, image .data );
21050+ state.texImage2D( 34069 + i, j + 1, glInternalFormat, mipmapImage .width, mipmapImage .height, 0, glFormat, glType, mipmapImage .data );
2105121051
2105221052 }
2105321053
2106721067
2106821068 } else {
2106921069
21070- var mipmaps = cubeImage[ i ].mipmaps;
21070+ mipmaps = cubeImage[ i ].mipmaps;
2107121071
2107221072 for ( var j = 0, jl = mipmaps.length; j < jl; j ++ ) {
2107321073
@@ -21733,14 +21733,13 @@
2173321733
2173421734 function updateVideoTexture( texture ) {
2173521735
21736- var id = texture.id;
2173721736 var frame = info.render.frame;
2173821737
2173921738 // Check the last frame we updated the VideoTexture
2174021739
21741- if ( _videoTextures[ id ] !== frame ) {
21740+ if ( _videoTextures.get( texture ) !== frame ) {
2174221741
21743- _videoTextures[ id ] = frame;
21742+ _videoTextures.set( texture, frame ) ;
2174421743 texture.update();
2174521744
2174621745 }
4105341052 this.loop = false;
4105441053 this.startTime = 0;
4105541054 this.offset = 0;
41055+ this.duration = undefined;
4105641056 this.playbackRate = 1;
4105741057 this.isPlaying = false;
4105841058 this.hasPlaybackControl = true;
4112741127 source.loop = this.loop;
4112841128 source.onended = this.onEnded.bind( this );
4112941129 this.startTime = this.context.currentTime;
41130- source.start( this.startTime, this.offset );
41130+ source.start( this.startTime, this.offset, this.duration );
4113141131
4113241132 this.isPlaying = true;
4113341133
0 commit comments