@cesium/engine 26.2.0 → 26.3.1-wasm.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Build/ThirdParty/Workers/zip-web-worker.js +707 -600
- package/Build/Workers/chunk-2P3WKV6V.js +290 -0
- package/Build/Workers/{chunk-M6QKXVAU.js → chunk-2U5272QU.js} +17 -17
- package/Build/Workers/{chunk-NEFDMMLY.js → chunk-4KCOC6OZ.js} +8 -10
- package/Build/Workers/{chunk-SJYSIOEM.js → chunk-5FULJNWY.js} +11 -13
- package/Build/Workers/{chunk-NCL22ZUX.js → chunk-65ZF23AQ.js} +1 -1
- package/Build/Workers/{chunk-KP5QD7WU.js → chunk-6D5534B7.js} +10 -12
- package/Build/Workers/{chunk-FX3VEAIU.js → chunk-6GFMBHBD.js} +19 -19
- package/Build/Workers/{chunk-A62YI6S6.js → chunk-6VRGQF3D.js} +4 -4
- package/Build/Workers/{chunk-DSGLDRTI.js → chunk-6XUIECFB.js} +4 -6
- package/Build/Workers/{chunk-HDL4HOXZ.js → chunk-7KWUH6RK.js} +14 -14
- package/Build/Workers/{chunk-UAZUP4I5.js → chunk-7ZBJRQQT.js} +7 -7
- package/Build/Workers/{chunk-CRCGE4J4.js → chunk-AEHANE5A.js} +991 -5612
- package/Build/Workers/chunk-AUU74SIZ.js +2420 -0
- package/Build/Workers/{chunk-ARZICEEP.js → chunk-B6V5NMIE.js} +13 -11
- package/Build/Workers/{chunk-76FDC45O.js → chunk-BRQ52ASU.js} +15 -17
- package/Build/Workers/{chunk-SA2A2AN5.js → chunk-FVLSQBPH.js} +7 -14
- package/Build/Workers/{chunk-CUTRKXUQ.js → chunk-IFKM2GZR.js} +12 -12
- package/Build/Workers/{chunk-NSKZ6SBK.js → chunk-KF6OEWVT.js} +17 -17
- package/Build/Workers/{chunk-O3DKEX7Q.js → chunk-KOAXSU77.js} +5 -7
- package/Build/Workers/{chunk-2Z4ZLVOD.js → chunk-KRVYCMGN.js} +6 -6
- package/Build/Workers/{chunk-SXSP3JHS.js → chunk-LTZRLNQP.js} +1 -1
- package/Build/Workers/{chunk-6FZDPMTO.js → chunk-M7WEAGWT.js} +8 -8
- package/Build/Workers/{chunk-NXGQBQWE.js → chunk-MJTLGN63.js} +14 -14
- package/Build/Workers/{chunk-XCBZVTIV.js → chunk-MUNZ77KV.js} +1 -1
- package/Build/Workers/{chunk-NLLCQBX3.js → chunk-NC5BUJEF.js} +2 -2
- package/Build/Workers/chunk-NYKURYFR.js +2131 -0
- package/Build/Workers/{chunk-5LSOO2KD.js → chunk-NZAQG57U.js} +7 -7
- package/Build/Workers/{chunk-DZUFEE4L.js → chunk-O5GUOP2G.js} +5 -7
- package/Build/Workers/{chunk-D6AY775A.js → chunk-OQUOLQTN.js} +8 -10
- package/Build/Workers/{chunk-CDJDJ5LK.js → chunk-OUG5JB2K.js} +16 -14
- package/Build/Workers/{chunk-ACTVJHSP.js → chunk-P4SDLSGF.js} +13 -6
- package/Build/Workers/{chunk-MAAHFYPC.js → chunk-P6PC2OIM.js} +7 -7
- package/Build/Workers/{chunk-6YR6JBMY.js → chunk-PPRK3XQU.js} +31 -35
- package/Build/Workers/{chunk-IMBVP57H.js → chunk-QGTYLWOT.js} +2 -2
- package/Build/Workers/{chunk-FCP2QY4G.js → chunk-QHTLIQUH.js} +5 -7
- package/Build/Workers/{chunk-EZGQPOIG.js → chunk-ROHWZQZ5.js} +5 -5
- package/Build/Workers/{chunk-B3QHNA4A.js → chunk-SNUWISJO.js} +6 -8
- package/Build/Workers/{chunk-XDWCTQCZ.js → chunk-T67YY3KP.js} +4 -2
- package/Build/Workers/{chunk-IJZJMIUY.js → chunk-TF5473GK.js} +13 -13
- package/Build/Workers/{chunk-OZGPS7FB.js → chunk-THHFTMAL.js} +4 -6
- package/Build/Workers/{chunk-PRWUMCXF.js → chunk-UFCZ62WM.js} +15 -13
- package/Build/Workers/{chunk-27FWRTJI.js → chunk-UV2YC2Q5.js} +11 -11
- package/Build/Workers/{chunk-N7CCOFLX.js → chunk-V4ICCWYA.js} +1 -1
- package/Build/Workers/{chunk-GHXVQVUM.js → chunk-VC6XXI2Z.js} +9 -9
- package/Build/Workers/{chunk-I74ZH5LK.js → chunk-VXJ6P4UI.js} +10 -10
- package/Build/Workers/{chunk-KGXSYGBG.js → chunk-W2BKP7G7.js} +15 -17
- package/Build/Workers/{chunk-LDRQSYBN.js → chunk-WMVGNBSH.js} +2 -2
- package/Build/Workers/{chunk-SMTGMFBL.js → chunk-XFZMQZSZ.js} +4 -4
- package/Build/Workers/{chunk-7MM3N2VE.js → chunk-XJ532R6R.js} +20 -20
- package/Build/Workers/{chunk-NJVBJG63.js → chunk-YJNU4SM4.js} +5 -5
- package/Build/Workers/{chunk-DIGUUD6G.js → chunk-YJRDTEHQ.js} +8 -8
- package/Build/Workers/chunk-YUICDZKO.js +2660 -0
- package/Build/Workers/{chunk-O3XFXGPZ.js → chunk-Z3DEVGJV.js} +7 -7
- package/Build/Workers/{chunk-3PSS3T43.js → chunk-ZECGI7UZ.js} +4 -4
- package/Build/Workers/{chunk-QFSSCLLZ.js → chunk-ZFLPVPUJ.js} +6 -8
- package/Build/Workers/{chunk-2RGJPWQX.js → chunk-ZIM5H2DB.js} +11 -11
- package/Build/Workers/{chunk-GVA7XQI2.js → chunk-ZSQMGGSB.js} +14 -16
- package/Build/Workers/{chunk-FU4BGABC.js → chunk-ZWYRGMBK.js} +16 -18
- package/Build/Workers/{chunk-JKXV6PG5.js → chunk-ZY733NZA.js} +1 -1
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +20 -19
- package/Build/Workers/createCircleGeometry.js +28 -27
- package/Build/Workers/createCircleOutlineGeometry.js +21 -20
- package/Build/Workers/createCoplanarPolygonGeometry.js +34 -34
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +33 -32
- package/Build/Workers/createCorridorGeometry.js +31 -31
- package/Build/Workers/createCorridorOutlineGeometry.js +30 -30
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +22 -21
- package/Build/Workers/createEllipseGeometry.js +26 -26
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
- package/Build/Workers/createEllipsoidGeometry.js +19 -19
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
- package/Build/Workers/createFrustumGeometry.js +18 -18
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
- package/Build/Workers/createGeometry.js +27 -26
- package/Build/Workers/createGroundPolylineGeometry.js +27 -26
- package/Build/Workers/createPlaneGeometry.js +18 -17
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
- package/Build/Workers/createPolygonGeometry.js +35 -35
- package/Build/Workers/createPolygonOutlineGeometry.js +34 -34
- package/Build/Workers/createPolylineGeometry.js +28 -29
- package/Build/Workers/createPolylineVolumeGeometry.js +34 -35
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +30 -31
- package/Build/Workers/createRectangleGeometry.js +30 -30
- package/Build/Workers/createRectangleOutlineGeometry.js +23 -24
- package/Build/Workers/createSimplePolylineGeometry.js +26 -27
- package/Build/Workers/createSphereGeometry.js +19 -19
- package/Build/Workers/createSphereOutlineGeometry.js +18 -18
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +17 -16
- package/Build/Workers/createVectorTileGeometries.js +24 -24
- package/Build/Workers/createVectorTilePoints.js +13 -13
- package/Build/Workers/createVectorTilePolygons.js +22 -22
- package/Build/Workers/createVectorTilePolylines.js +17 -16
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +36 -26
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +24 -24
- package/Build/Workers/createVerticesFromHeightmap.js +24 -25
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
- package/Build/Workers/createWallGeometry.js +27 -28
- package/Build/Workers/createWallOutlineGeometry.js +26 -27
- package/Build/Workers/decodeDraco.js +16 -12
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +336 -337
- package/Build/Workers/decodeI3S.js +17 -12
- package/Build/Workers/{chunk-GXWQZBAI.js → decodeMeshopt.js} +23 -29
- package/Build/Workers/decodeSpz.js +1960 -0
- package/Build/Workers/gaussianSplatSorter.js +13 -6
- package/Build/Workers/gaussianSplatTextureGenerator.js +13 -6
- package/Build/Workers/incrementallyBuildTerrainPicker.js +9 -10
- package/Build/Workers/transcodeKTX2.js +26 -12
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +24 -24
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Source/Core/Cesium3DTilesTerrainData.js +11 -1
- package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +33 -23
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonResource.js +5 -0
- package/Source/Core/IonSnapGeometryType.js +59 -0
- package/Source/Core/IonSnapHeat.js +33 -0
- package/Source/Core/IonSnapMode.js +45 -0
- package/Source/Core/IonSnapParentGeometryType.js +52 -0
- package/Source/Core/IonSnapService.js +369 -0
- package/Source/Core/KTX2Transcoder.js +99 -5
- package/Source/Core/Resource.js +2 -0
- package/Source/Core/SnapService.js +63 -0
- package/Source/Core/TaskProcessor.js +249 -129
- package/Source/Core/TrustedServers.js +34 -1
- package/Source/Core/VectorPipeline.js +139 -45
- package/Source/Core/VectorProvider.js +311 -71
- package/Source/Core/WebAssemblyWorkerInitializer.js +125 -0
- package/Source/Core/fetchWebAssemblyBinary.js +52 -0
- package/Source/Renderer/AutomaticUniforms.js +44 -2
- package/Source/Renderer/ShaderBuilder.js +1 -1
- package/Source/Renderer/UniformState.js +47 -1
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/BufferPointCollection.js +4 -7
- package/Source/Scene/BufferPolygonCollection.js +56 -27
- package/Source/Scene/BufferPolylineCollection.js +61 -8
- package/Source/Scene/BufferPolylineMaterial.js +6 -5
- package/Source/Scene/BufferPrimitiveCollection.js +199 -29
- package/Source/Scene/Cesium3DTile.js +12 -0
- package/Source/Scene/Cesium3DTileset.js +61 -8
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +15 -3
- package/Source/Scene/Cesium3DTilesetCache.js +15 -0
- package/Source/Scene/ClippingPolygon.js +154 -100
- package/Source/Scene/ClippingPolygonCollection.js +352 -694
- package/Source/Scene/CreditDisplay.js +62 -0
- package/Source/Scene/GaussianSplatPrimitive.js +153 -66
- package/Source/Scene/GeoJsonPrimitive.js +114 -24
- package/Source/Scene/GlobeSurfaceShaderSet.js +33 -54
- package/Source/Scene/GlobeSurfaceTile.js +14 -1
- package/Source/Scene/GlobeSurfaceTileProvider.js +232 -25
- package/Source/Scene/GltfBufferViewLoader.js +25 -13
- package/Source/Scene/GltfLoader.js +56 -6
- package/Source/Scene/GltfSpzLoader.js +5 -4
- package/Source/Scene/HeightReference.js +1 -1
- package/Source/Scene/MVTDataProvider.js +9 -0
- package/Source/Scene/Model/Model.js +242 -16
- package/Source/Scene/Model/Model3DTileContent.js +5 -0
- package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +54 -19
- package/Source/Scene/Model/ModelRenderResources.js +2 -3
- package/Source/Scene/Model/ModelSceneGraph.js +10 -1
- package/Source/Scene/Model/ModelVectorLookupPipelineStage.js +205 -0
- package/Source/Scene/Model/PickingPipelineStage.js +4 -0
- package/Source/Scene/PostProcessStage.js +22 -3
- package/Source/Scene/Scene.js +56 -1
- package/Source/Scene/Snapping.js +57 -0
- package/Source/Scene/SpzDecoder.js +106 -0
- package/Source/Scene/UrlTemplate3DTilesDataProvider.js +12 -1
- package/Source/Scene/VectorGltf3DTileContent.js +10 -2
- package/Source/Scene/WebMapServiceImageryProvider.js +5 -1
- package/Source/Scene/WebMapTileServiceImageryProvider.js +6 -1
- package/Source/Scene/renderBufferPolylineCollection.js +5 -1
- package/Source/Shaders/BufferPolylineMaterialVS.glsl +14 -2
- package/Source/Shaders/BufferPolylineMaterialVS.js +14 -2
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -4
- package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.glsl +74 -0
- package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.js +76 -0
- package/Source/Shaders/GlobeFS.glsl +10 -9
- package/Source/Shaders/GlobeFS.js +11 -9
- package/Source/Shaders/GlobeVS.glsl +0 -32
- package/Source/Shaders/GlobeVS.js +0 -32
- package/Source/Shaders/Model/ModelClippingPolygonsStageFS.glsl +15 -3
- package/Source/Shaders/Model/ModelClippingPolygonsStageFS.js +15 -3
- package/Source/Shaders/Model/ModelClippingPolygonsStageVS.glsl +20 -24
- package/Source/Shaders/Model/ModelClippingPolygonsStageVS.js +20 -24
- package/Source/Shaders/Model/ModelFS.glsl +4 -0
- package/Source/Shaders/Model/ModelFS.js +4 -0
- package/Source/Shaders/Model/ModelVS.glsl +7 -2
- package/Source/Shaders/Model/ModelVS.js +7 -2
- package/Source/Shaders/Model/ModelVectorLookupStageFS.glsl +6 -0
- package/Source/Shaders/Model/ModelVectorLookupStageFS.js +8 -0
- package/Source/Shaders/Model/ModelVectorLookupStageVS.glsl +15 -0
- package/Source/Shaders/Model/ModelVectorLookupStageVS.js +17 -0
- package/Source/Shaders/Model/VerticalExaggerationStageVS.glsl +9 -10
- package/Source/Shaders/Model/VerticalExaggerationStageVS.js +9 -11
- package/Source/Shaders/VectorCommon.glsl +177 -50
- package/Source/Shaders/VectorCommon.js +251 -19
- package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
- package/Source/ThirdParty/zip-module.wasm +0 -0
- package/Source/Workers/createTaskProcessorWorker.js +2 -0
- package/Source/Workers/createVerticesFromCesium3DTilesTerrain.js +13 -1
- package/Source/Workers/decodeDraco.js +7 -3
- package/Source/Workers/decodeI3S.js +7 -3
- package/Source/Workers/decodeMeshopt.js +21 -0
- package/Source/Workers/decodeSpz.js +20 -0
- package/Source/Workers/gaussianSplatSorter.js +7 -3
- package/Source/Workers/gaussianSplatTextureGenerator.js +7 -3
- package/Source/Workers/transcodeKTX2.js +22 -5
- package/index.d.ts +649 -55
- package/index.js +23 -13
- package/package.json +6 -6
- package/Build/Workers/chunk-2EFYUSUY.js +0 -1483
- package/Build/Workers/chunk-2H5264K7.js +0 -1284
- package/Build/Workers/chunk-2H73KDBM.js +0 -511
- package/Build/Workers/chunk-2ZKH2QZB.js +0 -387
- package/Build/Workers/chunk-36NI5E6W.js +0 -3820
- package/Build/Workers/chunk-37SW7SYS.js +0 -778
- package/Build/Workers/chunk-3GHVJ3SO.js +0 -455
- package/Build/Workers/chunk-3LB4UVPU.js +0 -387
- package/Build/Workers/chunk-3PONLKEL.js +0 -778
- package/Build/Workers/chunk-3QR662HH.js +0 -3820
- package/Build/Workers/chunk-3SX2WYSO.js +0 -973
- package/Build/Workers/chunk-3UDN6LYX.js +0 -476
- package/Build/Workers/chunk-47MCBSXI.js +0 -9237
- package/Build/Workers/chunk-4E626OCE.js +0 -1067
- package/Build/Workers/chunk-4NW2MJKH.js +0 -455
- package/Build/Workers/chunk-52YK5BSN.js +0 -198
- package/Build/Workers/chunk-5RNAQZK6.js +0 -9234
- package/Build/Workers/chunk-5YPQBFRD.js +0 -519
- package/Build/Workers/chunk-6FHT43QR.js +0 -140
- package/Build/Workers/chunk-6HK6IXK2.js +0 -138
- package/Build/Workers/chunk-6R5X2GUA.js +0 -1284
- package/Build/Workers/chunk-7A2OGDHT.js +0 -305
- package/Build/Workers/chunk-7CGEQUM2.js +0 -305
- package/Build/Workers/chunk-7D2HZKH7.js +0 -455
- package/Build/Workers/chunk-7I325HV6.js +0 -1344
- package/Build/Workers/chunk-7KVKHY7O.js +0 -147
- package/Build/Workers/chunk-7TKLTCZW.js +0 -219
- package/Build/Workers/chunk-7UUKBDH6.js +0 -1054
- package/Build/Workers/chunk-7W6DUHAB.js +0 -693
- package/Build/Workers/chunk-7XM5JK5F.js +0 -162
- package/Build/Workers/chunk-7YG3ND3P.js +0 -454
- package/Build/Workers/chunk-A3O6EDBK.js +0 -73
- package/Build/Workers/chunk-A6X24AZI.js +0 -1992
- package/Build/Workers/chunk-A7TTWVTF.js +0 -2719
- package/Build/Workers/chunk-ADX3CBKD.js +0 -9234
- package/Build/Workers/chunk-AF7DTMJ7.js +0 -398
- package/Build/Workers/chunk-AHWAZRBV.js +0 -82
- package/Build/Workers/chunk-AJSFRY4U.js +0 -1344
- package/Build/Workers/chunk-B4CQSLZJ.js +0 -305
- package/Build/Workers/chunk-BKPQFCXH.js +0 -511
- package/Build/Workers/chunk-BSPCI2LO.js +0 -959
- package/Build/Workers/chunk-BUJWSX5S.js +0 -301
- package/Build/Workers/chunk-C7JQVRLM.js +0 -497
- package/Build/Workers/chunk-C7QDUNI3.js +0 -138
- package/Build/Workers/chunk-CEEZE3YZ.js +0 -476
- package/Build/Workers/chunk-CIV5DJOQ.js +0 -778
- package/Build/Workers/chunk-CLCTQVVL.js +0 -241
- package/Build/Workers/chunk-CQNFIAZU.js +0 -56
- package/Build/Workers/chunk-DBD5WWG2.js +0 -959
- package/Build/Workers/chunk-DZBQUULR.js +0 -138
- package/Build/Workers/chunk-E2NKV5YT.js +0 -3820
- package/Build/Workers/chunk-E7NZJOK7.js +0 -3792
- package/Build/Workers/chunk-EB3Y5P3A.js +0 -368
- package/Build/Workers/chunk-EHTS2YPT.js +0 -2719
- package/Build/Workers/chunk-ELE6SC2C.js +0 -837
- package/Build/Workers/chunk-ENNFMWDW.js +0 -789
- package/Build/Workers/chunk-EOWDZN5S.js +0 -288
- package/Build/Workers/chunk-ERKUET22.js +0 -3201
- package/Build/Workers/chunk-F2IMBMZY.js +0 -241
- package/Build/Workers/chunk-F4CSNRZO.js +0 -219
- package/Build/Workers/chunk-FBP4DUQJ.js +0 -693
- package/Build/Workers/chunk-FDK4K5IA.js +0 -280
- package/Build/Workers/chunk-FGQFQHN5.js +0 -1054
- package/Build/Workers/chunk-FJWZMGOQ.js +0 -1992
- package/Build/Workers/chunk-FQ42MT7M.js +0 -58
- package/Build/Workers/chunk-GGNWQWSB.js +0 -301
- package/Build/Workers/chunk-GNKXEN4C.js +0 -682
- package/Build/Workers/chunk-GSWMAFTE.js +0 -9230
- package/Build/Workers/chunk-GXDHRC4J.js +0 -1344
- package/Build/Workers/chunk-GYSYP6PC.js +0 -1067
- package/Build/Workers/chunk-H2WCFXLP.js +0 -241
- package/Build/Workers/chunk-HHV3MCGV.js +0 -162
- package/Build/Workers/chunk-HLW2ZRVK.js +0 -368
- package/Build/Workers/chunk-HS6AD4P2.js +0 -398
- package/Build/Workers/chunk-HT6FASOT.js +0 -973
- package/Build/Workers/chunk-IDVHUDZT.js +0 -352
- package/Build/Workers/chunk-IGAZBTFZ.js +0 -3201
- package/Build/Workers/chunk-ILME5BXA.js +0 -301
- package/Build/Workers/chunk-IOO7Z2AV.js +0 -57
- package/Build/Workers/chunk-IUIFLOYO.js +0 -44
- package/Build/Workers/chunk-J73T2VOY.js +0 -171
- package/Build/Workers/chunk-JALGQYDY.js +0 -288
- package/Build/Workers/chunk-JW6OZT4R.js +0 -288
- package/Build/Workers/chunk-JXYLJCTC.js +0 -124
- package/Build/Workers/chunk-K27QOAW6.js +0 -97
- package/Build/Workers/chunk-KMV25A63.js +0 -789
- package/Build/Workers/chunk-KZWFWJML.js +0 -2719
- package/Build/Workers/chunk-LCXRRALY.js +0 -387
- package/Build/Workers/chunk-LD64RPYV.js +0 -368
- package/Build/Workers/chunk-LGNDTZVX.js +0 -97
- package/Build/Workers/chunk-LNSQVXFH.js +0 -1800
- package/Build/Workers/chunk-M4JZ6TSZ.js +0 -959
- package/Build/Workers/chunk-MCJDRDJQ.js +0 -102
- package/Build/Workers/chunk-MEENMEAH.js +0 -198
- package/Build/Workers/chunk-NAWU5RF4.js +0 -162
- package/Build/Workers/chunk-NIWITKQK.js +0 -693
- package/Build/Workers/chunk-OA6MYL2C.js +0 -837
- package/Build/Workers/chunk-OBEU25PI.js +0 -1067
- package/Build/Workers/chunk-OHP4ELS7.js +0 -198
- package/Build/Workers/chunk-PCL3Y7H5.js +0 -82
- package/Build/Workers/chunk-PD4GK4EM.js +0 -57
- package/Build/Workers/chunk-PEDU33QG.js +0 -2342
- package/Build/Workers/chunk-PVTSNNVI.js +0 -288
- package/Build/Workers/chunk-QHPZH22L.js +0 -241
- package/Build/Workers/chunk-QIZDWZK6.js +0 -301
- package/Build/Workers/chunk-QV6DG2YX.js +0 -1483
- package/Build/Workers/chunk-QVLAFFJY.js +0 -56
- package/Build/Workers/chunk-R4FPNAZ2.js +0 -352
- package/Build/Workers/chunk-R4K7EHOU.js +0 -171
- package/Build/Workers/chunk-R7JGHDD6.js +0 -789
- package/Build/Workers/chunk-RASQEYD4.js +0 -1483
- package/Build/Workers/chunk-RG4F5R57.js +0 -454
- package/Build/Workers/chunk-RW6ITX7Q.js +0 -3820
- package/Build/Workers/chunk-RYSQVJR6.js +0 -398
- package/Build/Workers/chunk-S6RJU5NM.js +0 -1054
- package/Build/Workers/chunk-SDFHDNS4.js +0 -147
- package/Build/Workers/chunk-SF6K72D7.js +0 -124
- package/Build/Workers/chunk-SGRGNDOD.js +0 -682
- package/Build/Workers/chunk-SM2CDCYF.js +0 -198
- package/Build/Workers/chunk-SS5ABQGY.js +0 -102
- package/Build/Workers/chunk-T5QBPLE3.js +0 -414
- package/Build/Workers/chunk-TN35HP5B.js +0 -1067
- package/Build/Workers/chunk-TNWKJNUZ.js +0 -454
- package/Build/Workers/chunk-TOAF47AQ.js +0 -102
- package/Build/Workers/chunk-TQ4QCOXT.js +0 -2719
- package/Build/Workers/chunk-TSDSILQB.js +0 -124
- package/Build/Workers/chunk-TVZD72WJ.js +0 -778
- package/Build/Workers/chunk-U5LV3F3Z.js +0 -1054
- package/Build/Workers/chunk-UEY73NRN.js +0 -38
- package/Build/Workers/chunk-UF46SZEZ.js +0 -789
- package/Build/Workers/chunk-UNRTMCET.js +0 -398
- package/Build/Workers/chunk-UTB7U3O6.js +0 -1992
- package/Build/Workers/chunk-UVO6COT2.js +0 -352
- package/Build/Workers/chunk-V46YGZE6.js +0 -352
- package/Build/Workers/chunk-VAL7DYNR.js +0 -278
- package/Build/Workers/chunk-VDGOCROW.js +0 -57
- package/Build/Workers/chunk-VFWSSBPT.js +0 -511
- package/Build/Workers/chunk-VVYMXI3I.js +0 -1284
- package/Build/Workers/chunk-VXWHPYQM.js +0 -837
- package/Build/Workers/chunk-VXYUBRSB.js +0 -219
- package/Build/Workers/chunk-VZLDLEWI.js +0 -387
- package/Build/Workers/chunk-W5OCKMPJ.js +0 -101
- package/Build/Workers/chunk-WBSY7HDY.js +0 -837
- package/Build/Workers/chunk-WN3F4CVG.js +0 -3201
- package/Build/Workers/chunk-WPRUWXGV.js +0 -693
- package/Build/Workers/chunk-WTO2ERBP.js +0 -414
- package/Build/Workers/chunk-WVHMDVG4.js +0 -959
- package/Build/Workers/chunk-XGA23TAX.js +0 -73
- package/Build/Workers/chunk-XLQZNQ4Z.js +0 -163
- package/Build/Workers/chunk-XLXSDIP5.js +0 -973
- package/Build/Workers/chunk-XQ3SKCMM.js +0 -140
- package/Build/Workers/chunk-XQH66YJC.js +0 -147
- package/Build/Workers/chunk-XTA7BXJG.js +0 -682
- package/Build/Workers/chunk-XTIDAFRS.js +0 -476
- package/Build/Workers/chunk-XUEDWBUD.js +0 -682
- package/Build/Workers/chunk-XYFLRH3H.js +0 -124
- package/Build/Workers/chunk-Y7JRTRTO.js +0 -305
- package/Build/Workers/chunk-Y7QSMDCJ.js +0 -352
- package/Build/Workers/chunk-YCB5TYTR.js +0 -1483
- package/Build/Workers/chunk-YEYOSTJX.js +0 -219
- package/Build/Workers/chunk-YGFVAGYF.js +0 -630
- package/Build/Workers/chunk-YIIACKQO.js +0 -368
- package/Build/Workers/chunk-YJGSP6PE.js +0 -511
- package/Build/Workers/chunk-YKU2Q3A2.js +0 -1287
- package/Build/Workers/chunk-Z4LR5EHE.js +0 -454
- package/Build/Workers/chunk-Z66EVE2A.js +0 -44
- package/Build/Workers/chunk-ZHIHHHTB.js +0 -414
- package/Build/Workers/chunk-ZMBHFYOX.js +0 -1344
- package/Build/Workers/chunk-ZNWHFSLE.js +0 -171
- package/Build/Workers/chunk-ZQLZG4IN.js +0 -2342
- package/Build/Workers/chunk-ZRTSMUZ2.js +0 -414
- package/Build/Workers/chunk-ZSGUV73H.js +0 -2342
- package/Build/Workers/chunk-ZZUVT5BM.js +0 -476
- package/Source/Shaders/Builtin/Functions/clipPolygons.glsl +0 -37
- package/Source/Shaders/Builtin/Functions/clipPolygons.js +0 -39
- package/Source/Shaders/Builtin/Functions/unpackClippingExtents.glsl +0 -14
- package/Source/Shaders/Builtin/Functions/unpackClippingExtents.js +0 -15
- package/Source/Shaders/PolygonSignedDistanceFS.glsl +0 -131
- package/Source/Shaders/PolygonSignedDistanceFS.js +0 -132
|
@@ -6,8 +6,9 @@ import DeveloperError from "./DeveloperError.js";
|
|
|
6
6
|
import Event from "./Event.js";
|
|
7
7
|
import FeatureDetection from "./FeatureDetection.js";
|
|
8
8
|
import isCrossOriginUrl from "./isCrossOriginUrl.js";
|
|
9
|
-
import Resource from "./Resource.js";
|
|
10
9
|
import RuntimeError from "./RuntimeError.js";
|
|
10
|
+
import TrustedServers from "./TrustedServers.js";
|
|
11
|
+
import WebAssemblyWorkerInitializer from "./WebAssemblyWorkerInitializer.js";
|
|
11
12
|
|
|
12
13
|
function canTransferArrayBuffer() {
|
|
13
14
|
if (!defined(TaskProcessor._canTransferArrayBuffer)) {
|
|
@@ -17,6 +18,42 @@ function canTransferArrayBuffer() {
|
|
|
17
18
|
const value = 99;
|
|
18
19
|
const array = new Int8Array([value]);
|
|
19
20
|
|
|
21
|
+
let settled = false;
|
|
22
|
+
let settle;
|
|
23
|
+
const promise = new Promise((resolve) => {
|
|
24
|
+
const cleanup = () => {
|
|
25
|
+
worker.removeEventListener("message", onMessage);
|
|
26
|
+
worker.removeEventListener("error", onFailure);
|
|
27
|
+
worker.removeEventListener("messageerror", onFailure);
|
|
28
|
+
worker.terminate();
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
settle = (result) => {
|
|
32
|
+
if (settled) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
settled = true;
|
|
36
|
+
cleanup();
|
|
37
|
+
TaskProcessor._canTransferArrayBuffer = result;
|
|
38
|
+
resolve(result);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const onMessage = (event) => {
|
|
42
|
+
const array = event.data?.array;
|
|
43
|
+
|
|
44
|
+
// Verify that typed arrays round-trip correctly when transferred.
|
|
45
|
+
settle(defined(array) && array[0] === value);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const onFailure = () => settle(false);
|
|
49
|
+
|
|
50
|
+
worker.addEventListener("message", onMessage);
|
|
51
|
+
worker.addEventListener("error", onFailure);
|
|
52
|
+
worker.addEventListener("messageerror", onFailure);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
TaskProcessor._canTransferArrayBuffer = promise;
|
|
56
|
+
|
|
20
57
|
try {
|
|
21
58
|
// postMessage might fail with a DataCloneError
|
|
22
59
|
// if transferring array buffers is not supported.
|
|
@@ -27,25 +64,9 @@ function canTransferArrayBuffer() {
|
|
|
27
64
|
[array.buffer],
|
|
28
65
|
);
|
|
29
66
|
} catch (e) {
|
|
30
|
-
|
|
67
|
+
settle(false);
|
|
31
68
|
return TaskProcessor._canTransferArrayBuffer;
|
|
32
69
|
}
|
|
33
|
-
|
|
34
|
-
TaskProcessor._canTransferArrayBuffer = new Promise((resolve) => {
|
|
35
|
-
worker.onmessage = function (event) {
|
|
36
|
-
const array = event.data.array;
|
|
37
|
-
|
|
38
|
-
// some versions of Firefox silently fail to transfer typed arrays.
|
|
39
|
-
// https://bugzilla.mozilla.org/show_bug.cgi?id=841904
|
|
40
|
-
// Check to make sure the value round-trips successfully.
|
|
41
|
-
const result = defined(array) && array[0] === value;
|
|
42
|
-
resolve(result);
|
|
43
|
-
|
|
44
|
-
worker.terminate();
|
|
45
|
-
|
|
46
|
-
TaskProcessor._canTransferArrayBuffer = result;
|
|
47
|
-
};
|
|
48
|
-
});
|
|
49
70
|
}
|
|
50
71
|
|
|
51
72
|
return TaskProcessor._canTransferArrayBuffer;
|
|
@@ -76,7 +97,7 @@ function urlFromScript(script) {
|
|
|
76
97
|
|
|
77
98
|
function createWorker(url) {
|
|
78
99
|
const uri = new Uri(url);
|
|
79
|
-
const isUri = uri.scheme().length !== 0
|
|
100
|
+
const isUri = uri.scheme().length !== 0;
|
|
80
101
|
const moduleID = url.replace(/\.js$/, "");
|
|
81
102
|
|
|
82
103
|
const options = {};
|
|
@@ -135,35 +156,6 @@ function createWorker(url) {
|
|
|
135
156
|
return new Worker(workerPath, options);
|
|
136
157
|
}
|
|
137
158
|
|
|
138
|
-
async function getWebAssemblyLoaderConfig(processor, wasmOptions) {
|
|
139
|
-
const config = {
|
|
140
|
-
modulePath: undefined,
|
|
141
|
-
wasmBinaryFile: undefined,
|
|
142
|
-
wasmBinary: undefined,
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
// Web assembly not supported, use fallback js module if provided
|
|
146
|
-
if (!FeatureDetection.supportsWebAssembly()) {
|
|
147
|
-
if (!defined(wasmOptions.fallbackModulePath)) {
|
|
148
|
-
throw new RuntimeError(
|
|
149
|
-
`This browser does not support Web Assembly, and no backup module was provided for ${processor._workerPath}`,
|
|
150
|
-
);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
config.modulePath = buildModuleUrl(wasmOptions.fallbackModulePath);
|
|
154
|
-
return config;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
config.wasmBinaryFile = buildModuleUrl(wasmOptions.wasmBinaryFile);
|
|
158
|
-
|
|
159
|
-
const arrayBuffer = await Resource.fetchArrayBuffer({
|
|
160
|
-
url: config.wasmBinaryFile,
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
config.wasmBinary = arrayBuffer;
|
|
164
|
-
return config;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
159
|
/**
|
|
168
160
|
* A wrapper around a web worker that allows scheduling tasks for a given worker,
|
|
169
161
|
* returning results asynchronously via a promise.
|
|
@@ -183,66 +175,202 @@ function TaskProcessor(workerPath, maximumActiveTasks) {
|
|
|
183
175
|
this._maximumActiveTasks = maximumActiveTasks ?? Number.POSITIVE_INFINITY;
|
|
184
176
|
this._activeTasks = 0;
|
|
185
177
|
this._nextID = 0;
|
|
186
|
-
this.
|
|
178
|
+
this._webAssemblyInitializer = undefined;
|
|
179
|
+
this._pendingTasks = new Map();
|
|
180
|
+
this._workerFailureHandlers = new Map();
|
|
187
181
|
}
|
|
188
182
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
183
|
+
function deserializeWorkerError(serializedError) {
|
|
184
|
+
let error = serializedError;
|
|
185
|
+
if (error.name === "RuntimeError") {
|
|
186
|
+
error = new RuntimeError(serializedError.message);
|
|
187
|
+
error.stack = serializedError.stack;
|
|
188
|
+
} else if (error.name === "DeveloperError") {
|
|
189
|
+
error = new DeveloperError(serializedError.message);
|
|
190
|
+
error.stack = serializedError.stack;
|
|
191
|
+
} else if (error.name === "Error") {
|
|
192
|
+
error = new Error(serializedError.message);
|
|
193
|
+
error.stack = serializedError.stack;
|
|
194
|
+
} else if (defined(error.name) && defined(error.message)) {
|
|
195
|
+
// Any other error class the worker threw, such as the EvalError a
|
|
196
|
+
// Content-Security-Policy produces. Rebuilding it as an Error keeps the
|
|
197
|
+
// name and message legible instead of surfacing an opaque object.
|
|
198
|
+
error = new Error(`${serializedError.name}: ${serializedError.message}`);
|
|
199
|
+
error.stack = serializedError.stack;
|
|
200
|
+
}
|
|
201
|
+
return error;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function workerFailureToError(event) {
|
|
205
|
+
if (defined(event.error)) {
|
|
206
|
+
if (event.error instanceof Error) {
|
|
207
|
+
return event.error;
|
|
193
208
|
}
|
|
194
209
|
|
|
195
|
-
if (defined(
|
|
196
|
-
|
|
197
|
-
if (error.name
|
|
198
|
-
error =
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
error =
|
|
202
|
-
error.stack = data.error.stack;
|
|
203
|
-
} else if (error.name === "Error") {
|
|
204
|
-
error = new Error(data.error.message);
|
|
205
|
-
error.stack = data.error.stack;
|
|
210
|
+
if (defined(event.error.message)) {
|
|
211
|
+
const error = new Error(event.error.message);
|
|
212
|
+
if (defined(event.error.name)) {
|
|
213
|
+
error.name = event.error.name;
|
|
214
|
+
}
|
|
215
|
+
if (defined(event.error.stack)) {
|
|
216
|
+
error.stack = event.error.stack;
|
|
206
217
|
}
|
|
207
|
-
|
|
208
|
-
reject(error);
|
|
209
|
-
} else {
|
|
210
|
-
taskCompletedEvent.raiseEvent();
|
|
211
|
-
resolve(data.result);
|
|
218
|
+
return error;
|
|
212
219
|
}
|
|
213
220
|
|
|
214
|
-
|
|
215
|
-
}
|
|
221
|
+
return new Error(String(event.error));
|
|
222
|
+
}
|
|
216
223
|
|
|
217
|
-
return
|
|
218
|
-
}
|
|
224
|
+
return new Error(event.message ?? "Worker failed");
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
function removeWorkerFailureHandler(processor, worker) {
|
|
228
|
+
const handlers = processor._workerFailureHandlers;
|
|
229
|
+
if (!defined(handlers)) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
const handler = handlers.get(worker);
|
|
234
|
+
if (!defined(handler)) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
worker.removeEventListener("error", handler);
|
|
239
|
+
worker.removeEventListener("messageerror", handler);
|
|
240
|
+
handlers.delete(worker);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
function settleTask(processor, id, error, result) {
|
|
244
|
+
if (!defined(processor._pendingTasks)) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
const pendingTask = processor._pendingTasks.get(id);
|
|
249
|
+
if (!defined(pendingTask)) {
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
processor._pendingTasks.delete(id);
|
|
254
|
+
pendingTask.worker.removeEventListener("message", pendingTask.listener);
|
|
255
|
+
|
|
256
|
+
if (defined(error)) {
|
|
257
|
+
taskCompletedEvent.raiseEvent(error);
|
|
258
|
+
pendingTask.reject(error);
|
|
259
|
+
} else {
|
|
260
|
+
taskCompletedEvent.raiseEvent();
|
|
261
|
+
pendingTask.resolve(result);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
function cleanupWorker(processor, worker, error) {
|
|
266
|
+
processor._webAssemblyInitializer?.reset(worker, error);
|
|
267
|
+
removeWorkerFailureHandler(processor, worker);
|
|
268
|
+
|
|
269
|
+
if (defined(error) && defined(processor._pendingTasks)) {
|
|
270
|
+
for (const [id, pendingTask] of Array.from(
|
|
271
|
+
processor._pendingTasks.entries(),
|
|
272
|
+
)) {
|
|
273
|
+
if (pendingTask.worker === worker) {
|
|
274
|
+
settleTask(processor, id, error);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
worker.terminate();
|
|
280
|
+
|
|
281
|
+
if (processor._worker === worker) {
|
|
282
|
+
processor._worker = undefined;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
function handleWorkerFailure(processor, worker, event) {
|
|
287
|
+
const error = workerFailureToError(event);
|
|
288
|
+
cleanupWorker(processor, worker, error);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
function createProcessorWorker(processor) {
|
|
292
|
+
const worker = createWorker(processor._workerPath);
|
|
293
|
+
const failureHandler = (event) =>
|
|
294
|
+
handleWorkerFailure(processor, worker, event);
|
|
295
|
+
|
|
296
|
+
worker.addEventListener("error", failureHandler);
|
|
297
|
+
worker.addEventListener("messageerror", failureHandler);
|
|
298
|
+
processor._workerFailureHandlers.set(worker, failureHandler);
|
|
299
|
+
return worker;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
async function getWorker(processor) {
|
|
303
|
+
if (!defined(processor._webAssemblyInitializer)) {
|
|
304
|
+
if (!defined(processor._worker)) {
|
|
305
|
+
processor._worker = createProcessorWorker(processor);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
return processor._worker;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
await processor.initWebAssemblyModule();
|
|
312
|
+
|
|
313
|
+
return processor._worker;
|
|
314
|
+
}
|
|
219
315
|
|
|
220
316
|
const emptyTransferableObjectArray = [];
|
|
221
317
|
async function runTask(processor, parameters, transferableObjects) {
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
318
|
+
const id = processor._nextID++;
|
|
319
|
+
const worker = defined(processor._webAssemblyInitializer)
|
|
320
|
+
? await getWorker(processor)
|
|
321
|
+
: processor._worker;
|
|
322
|
+
|
|
323
|
+
if (processor.isDestroyed()) {
|
|
324
|
+
throw new RuntimeError("TaskProcessor was destroyed.");
|
|
227
325
|
}
|
|
228
326
|
|
|
229
|
-
const id = processor._nextID++;
|
|
230
327
|
const promise = new Promise((resolve, reject) => {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
328
|
+
const listener = ({ data }) => {
|
|
329
|
+
if (!defined(data) || data.id !== id) {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
if (defined(data.error)) {
|
|
334
|
+
settleTask(processor, id, deserializeWorkerError(data.error));
|
|
335
|
+
} else {
|
|
336
|
+
settleTask(processor, id, undefined, data.result);
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
processor._pendingTasks.set(id, {
|
|
341
|
+
worker: worker,
|
|
342
|
+
listener: listener,
|
|
343
|
+
resolve: resolve,
|
|
344
|
+
reject: reject,
|
|
345
|
+
});
|
|
346
|
+
worker.addEventListener("message", listener);
|
|
235
347
|
});
|
|
236
348
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
349
|
+
try {
|
|
350
|
+
const canTransfer = await Promise.resolve(canTransferArrayBuffer());
|
|
351
|
+
if (!processor._pendingTasks.has(id)) {
|
|
352
|
+
return promise;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
if (!defined(transferableObjects)) {
|
|
356
|
+
transferableObjects = emptyTransferableObjectArray;
|
|
357
|
+
} else if (!canTransfer) {
|
|
358
|
+
transferableObjects.length = 0;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
worker.postMessage(
|
|
362
|
+
{
|
|
363
|
+
id: id,
|
|
364
|
+
baseUrl: buildModuleUrl.getCesiumBaseUrl().url,
|
|
365
|
+
trustedServers: TrustedServers.pack(),
|
|
366
|
+
parameters: parameters,
|
|
367
|
+
canTransferArrayBuffer: canTransfer,
|
|
368
|
+
},
|
|
369
|
+
transferableObjects,
|
|
370
|
+
);
|
|
371
|
+
} catch (error) {
|
|
372
|
+
settleTask(processor, id, error);
|
|
373
|
+
}
|
|
246
374
|
|
|
247
375
|
return promise;
|
|
248
376
|
}
|
|
@@ -291,7 +419,9 @@ TaskProcessor.prototype.scheduleTask = function (
|
|
|
291
419
|
transferableObjects,
|
|
292
420
|
) {
|
|
293
421
|
if (!defined(this._worker)) {
|
|
294
|
-
|
|
422
|
+
if (!defined(this._webAssemblyInitializer)) {
|
|
423
|
+
this._worker = createProcessorWorker(this);
|
|
424
|
+
}
|
|
295
425
|
}
|
|
296
426
|
|
|
297
427
|
if (this._activeTasks >= this._maximumActiveTasks) {
|
|
@@ -306,6 +436,9 @@ TaskProcessor.prototype.scheduleTask = function (
|
|
|
306
436
|
* and compiling a web assembly module asynchronously, as well as an optional
|
|
307
437
|
* fallback JavaScript module to use if Web Assembly is not supported.
|
|
308
438
|
*
|
|
439
|
+
* Only the resolved url of the binary is posted. The worker requests and compiles
|
|
440
|
+
* the bytes itself, so WebAssembly is never fetched or compiled by the document.
|
|
441
|
+
*
|
|
309
442
|
* @param {object} [webAssemblyOptions] An object with the following properties:
|
|
310
443
|
* @param {string} [webAssemblyOptions.modulePath] The path of the web assembly JavaScript wrapper module.
|
|
311
444
|
* @param {string} [webAssemblyOptions.wasmBinaryFile] The path of the web assembly binary file.
|
|
@@ -317,46 +450,32 @@ TaskProcessor.prototype.scheduleTask = function (
|
|
|
317
450
|
TaskProcessor.prototype.initWebAssemblyModule = async function (
|
|
318
451
|
webAssemblyOptions,
|
|
319
452
|
) {
|
|
320
|
-
|
|
321
|
-
|
|
453
|
+
let initializer = this._webAssemblyInitializer;
|
|
454
|
+
if (defined(initializer?.promise)) {
|
|
455
|
+
return initializer.promise;
|
|
322
456
|
}
|
|
323
457
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
this,
|
|
458
|
+
if (defined(webAssemblyOptions) || !defined(initializer)) {
|
|
459
|
+
initializer = new WebAssemblyWorkerInitializer(
|
|
460
|
+
this._workerPath,
|
|
328
461
|
webAssemblyOptions,
|
|
329
462
|
);
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
const binary = wasmConfig.wasmBinary;
|
|
333
|
-
if (defined(binary) && canTransfer) {
|
|
334
|
-
transferableObjects = [binary];
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
const promise = new Promise((resolve, reject) => {
|
|
338
|
-
worker.onmessage = function ({ data }) {
|
|
339
|
-
if (defined(data)) {
|
|
340
|
-
resolve(data.result);
|
|
341
|
-
} else {
|
|
342
|
-
reject(new RuntimeError("Could not configure wasm module"));
|
|
343
|
-
}
|
|
344
|
-
};
|
|
345
|
-
});
|
|
463
|
+
this._webAssemblyInitializer = initializer;
|
|
464
|
+
}
|
|
346
465
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
466
|
+
const worker = (this._worker = createProcessorWorker(this));
|
|
467
|
+
try {
|
|
468
|
+
return await initializer.initialize(
|
|
469
|
+
worker,
|
|
470
|
+
canTransferArrayBuffer,
|
|
471
|
+
deserializeWorkerError,
|
|
353
472
|
);
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
473
|
+
} catch (error) {
|
|
474
|
+
if (this._workerFailureHandlers.has(worker)) {
|
|
475
|
+
cleanupWorker(this, worker, error);
|
|
476
|
+
}
|
|
477
|
+
throw error;
|
|
478
|
+
}
|
|
360
479
|
};
|
|
361
480
|
|
|
362
481
|
/**
|
|
@@ -380,8 +499,9 @@ TaskProcessor.prototype.isDestroyed = function () {
|
|
|
380
499
|
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
|
|
381
500
|
*/
|
|
382
501
|
TaskProcessor.prototype.destroy = function () {
|
|
383
|
-
|
|
384
|
-
|
|
502
|
+
const error = new RuntimeError("TaskProcessor was destroyed.");
|
|
503
|
+
for (const worker of this._workerFailureHandlers.keys()) {
|
|
504
|
+
cleanupWorker(this, worker, error);
|
|
385
505
|
}
|
|
386
506
|
return destroyObject(this);
|
|
387
507
|
};
|
|
@@ -85,7 +85,8 @@ function getAuthority(url) {
|
|
|
85
85
|
if (authority.indexOf(":") === -1) {
|
|
86
86
|
let scheme = uri.scheme();
|
|
87
87
|
if (scheme.length === 0) {
|
|
88
|
-
|
|
88
|
+
// `self` resolves in both a document and a Web Worker, unlike `window`.
|
|
89
|
+
scheme = self.location.protocol;
|
|
89
90
|
scheme = scheme.substring(0, scheme.length - 1);
|
|
90
91
|
}
|
|
91
92
|
if (scheme === "http") {
|
|
@@ -133,6 +134,38 @@ TrustedServers.contains = function (url) {
|
|
|
133
134
|
return false;
|
|
134
135
|
};
|
|
135
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Packs the registry into an array of trusted `host:port` authorities, so it
|
|
139
|
+
* can be sent across a realm boundary (e.g. to a Web Worker) and restored
|
|
140
|
+
* with {@link TrustedServers.unpack}. `TrustedServers` is module state, so a
|
|
141
|
+
* worker's copy of this module starts with an empty registry even though the
|
|
142
|
+
* document already called {@link TrustedServers.add}.
|
|
143
|
+
*
|
|
144
|
+
* @returns {string[]} The packed array of trusted `host:port` authorities.
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* // Send the registry to a worker, then restore it there
|
|
148
|
+
* worker.postMessage({ trustedServers: TrustedServers.pack() });
|
|
149
|
+
* // In the worker:
|
|
150
|
+
* TrustedServers.unpack(data.trustedServers);
|
|
151
|
+
*/
|
|
152
|
+
TrustedServers.pack = function () {
|
|
153
|
+
return Object.keys(_servers);
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Replaces the registry with the authorities from an array packed by
|
|
158
|
+
* {@link TrustedServers.pack}.
|
|
159
|
+
*
|
|
160
|
+
* @param {string[]} packedAuthorities The packed array of trusted `host:port` authorities.
|
|
161
|
+
*/
|
|
162
|
+
TrustedServers.unpack = function (packedAuthorities) {
|
|
163
|
+
_servers = {};
|
|
164
|
+
for (const authority of packedAuthorities) {
|
|
165
|
+
_servers[authority] = true;
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
|
|
136
169
|
/**
|
|
137
170
|
* Clears the registry
|
|
138
171
|
*
|