UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 1.34 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{Lyr3DWasmWorkerOutputStatus as s}from"../../../layers/ILyr3DWasmPerSceneView.js";import{loadLyr3DWorkerWASM as t}from"../../../libs/lyr3d/Lyr3DModule.js";let e,n;async function r(t){if(await o(),t.inputs.length<1)return{result:{status:s.Failed,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[]},transferList:[]};const e={ptrs:[],sizes:[]};for(const s of t.inputs){const t=n._malloc(s.byteLength);new Uint8Array(n.HEAPU8.buffer,t,s.byteLength).set(new Uint8Array(s)),e.ptrs.push(t),e.sizes.push(s.byteLength)}const r=n.process(t.jobDescJson,e,t.isMissingResourceCase),i=r.status===s.Succeeded&&r.data,a=r.status===s.MissingInputs&&r.missingInputUrls.length>0;if(i){const s=r.data.slice();r.data=s}else a&&(r.jobDescJson=r.jobDescJson.slice(),r.originalInputs=t.inputs.slice());for(let s=0;s<e.ptrs.length;++s)n._free(e.ptrs[s]);const l=[];if(i)l.push(r.data.buffer);else if(a)for(const s of t.inputs)l.push(s);return{result:r,transferList:l}}function i(){n&&(n.uninitialize_lyr3d_worker_wasm(),n=null)}function o(){return n?Promise.resolve():(e||(e=t().then((s=>{n=s,n.initialize_lyr3d_worker_wasm(),e=null}))),e)}export{i as destroyWasm,o as initialize,r as process};