The main module can now pick a renderer based on the "renderer" URL parameter.

This commit is contained in:
Rezmason
2021-11-06 05:03:38 -07:00
parent 89b9f4e363
commit 335ff5ddb7
2 changed files with 10 additions and 9 deletions

View File

@@ -186,18 +186,18 @@ paramMapping.dropLength = paramMapping.raindropLength;
paramMapping.angle = paramMapping.slant; paramMapping.angle = paramMapping.slant;
paramMapping.colors = paramMapping.stripeColors; paramMapping.colors = paramMapping.stripeColors;
export default (searchString) => { export default (urlParams) => {
const urlParams = Object.fromEntries( const validParams = Object.fromEntries(
Array.from(new URLSearchParams(searchString).entries()) Array.from(Object.entries(urlParams))
.filter(([key]) => key in paramMapping) .filter(([key]) => key in paramMapping)
.map(([key, value]) => [paramMapping[key].key, paramMapping[key].parser(value)]) .map(([key, value]) => [paramMapping[key].key, paramMapping[key].parser(value)])
.filter(([_, value]) => value != null) .filter(([_, value]) => value != null)
); );
const version = urlParams.version in versions ? versions[urlParams.version] : versions.classic; const version = validParams.version in versions ? versions[validParams.version] : versions.classic;
return { return {
...version, ...version,
...urlParams, ...validParams,
}; };
}; };

View File

@@ -9,10 +9,11 @@ document.addEventListener("touchmove", (e) => e.preventDefault(), {
}); });
document.body.onload = () => { document.body.onload = () => {
const config = makeConfig(window.location.search); const urlParams = Object.fromEntries(new URLSearchParams(window.location.search).entries());
if (navigator.gpu != null) { const config = makeConfig(urlParams);
initWebGPU(canvas, config); if (navigator.gpu == null || ["webgl", "regl"].includes(urlParams.renderer?.toLowerCase())) {
} else {
initREGL(canvas, config); initREGL(canvas, config);
} else {
initWebGPU(canvas, config);
} }
}; };