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 init, {create_pool_scheduler, new_thread_local_state, run} from "./dist/libs/mapr"
|
||||||
import {Spector} from "spectorjs"
|
import {Spector} from "spectorjs"
|
||||||
import {WebWorkerMessageType} from "./types"
|
import {WebWorkerMessageType} from "./types"
|
||||||
|
import {
|
||||||
|
bigInt,
|
||||||
|
bulkMemory,
|
||||||
|
exceptions,
|
||||||
|
multiValue,
|
||||||
|
mutableGlobals,
|
||||||
|
referenceTypes,
|
||||||
|
saturatedFloatToInt,
|
||||||
|
signExtensions,
|
||||||
|
simd,
|
||||||
|
tailCall,
|
||||||
|
threads
|
||||||
|
} from "wasm-feature-detect"
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
interface Window {
|
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) => {
|
const alertUser = (message: string) => {
|
||||||
console.error(message)
|
console.error(message)
|
||||||
alert(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
|
let WORKER_COUNT = 4
|
||||||
const createWorker = (id: number) => {
|
const createWorker = (id: number) => {
|
||||||
const worker = new Worker(new URL('./worker.ts', import.meta.url), {
|
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 () => {
|
const start = async () => {
|
||||||
|
await checkWasmFeatures()
|
||||||
|
|
||||||
if (!checkRequirements()) {
|
if (!checkRequirements()) {
|
||||||
return
|
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": {
|
"dependencies": {
|
||||||
"spectorjs": "^0.9.27",
|
"spectorjs": "^0.9.27",
|
||||||
|
"wasm-feature-detect": "^1.2.11",
|
||||||
"workbox-cacheable-response": "^6.4.2",
|
"workbox-cacheable-response": "^6.4.2",
|
||||||
"workbox-routing": "^6.4.2",
|
"workbox-routing": "^6.4.2",
|
||||||
"workbox-strategies": "^6.4.2"
|
"workbox-strategies": "^6.4.2"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user