mirror of
https://github.com/maplibre/maplibre-rs.git
synced 2025-12-08 19:05:57 +00:00
Add wasm-feature-detect
This commit is contained in:
parent
13709b7cb7
commit
9c1fe63c9a
41
web/index.ts
41
web/index.ts
@ -1,6 +1,19 @@
|
||||
import init, {create_pool_scheduler, new_thread_local_state, run} from "./dist/libs/mapr"
|
||||
import {Spector} from "spectorjs"
|
||||
import {WebWorkerMessageType} from "./types"
|
||||
import {
|
||||
bigInt,
|
||||
bulkMemory,
|
||||
exceptions,
|
||||
multiValue,
|
||||
mutableGlobals,
|
||||
referenceTypes,
|
||||
saturatedFloatToInt,
|
||||
signExtensions,
|
||||
simd,
|
||||
tailCall,
|
||||
threads
|
||||
} from "wasm-feature-detect"
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
@ -19,6 +32,30 @@ const isWebGLSupported = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const checkWasmFeatures = async () => {
|
||||
const checkFeature = async function (feature: () => Promise<boolean>) {
|
||||
let result = await feature();
|
||||
let msg = `The feature ${feature.name} returned: ${result}`;
|
||||
if (result) {
|
||||
console.log(msg);
|
||||
} else {
|
||||
console.warn(msg);
|
||||
}
|
||||
}
|
||||
|
||||
await checkFeature(bulkMemory);
|
||||
await checkFeature(exceptions);
|
||||
await checkFeature(multiValue);
|
||||
await checkFeature(mutableGlobals);
|
||||
await checkFeature(referenceTypes);
|
||||
await checkFeature(saturatedFloatToInt);
|
||||
await checkFeature(signExtensions);
|
||||
await checkFeature(simd);
|
||||
await checkFeature(tailCall);
|
||||
await checkFeature(threads);
|
||||
await checkFeature(bigInt);
|
||||
}
|
||||
|
||||
const alertUser = (message: string) => {
|
||||
console.error(message)
|
||||
alert(message)
|
||||
@ -72,7 +109,7 @@ const registerServiceWorker = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const setupLegacyWebWorker = (schedulerPtr: number, memory: WebAssembly.Memory) => {
|
||||
const setupLegacyWebWorker = (schedulerPtr: number, memory: WebAssembly.Memory) => {
|
||||
let WORKER_COUNT = 4
|
||||
const createWorker = (id: number) => {
|
||||
const worker = new Worker(new URL('./worker.ts', import.meta.url), {
|
||||
@ -101,6 +138,8 @@ const setupLegacyWebWorker = (schedulerPtr: number, memory: WebAssembly.Memory)
|
||||
}
|
||||
|
||||
const start = async () => {
|
||||
await checkWasmFeatures()
|
||||
|
||||
if (!checkRequirements()) {
|
||||
return
|
||||
}
|
||||
|
||||
1302
web/package-lock.json
generated
1302
web/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -18,6 +18,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"spectorjs": "^0.9.27",
|
||||
"wasm-feature-detect": "^1.2.11",
|
||||
"workbox-cacheable-response": "^6.4.2",
|
||||
"workbox-routing": "^6.4.2",
|
||||
"workbox-strategies": "^6.4.2"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user