UNPKG

@arcgis/core

Version:

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

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