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.colors = paramMapping.stripeColors;
export default (searchString) => {
const urlParams = Object.fromEntries(
Array.from(new URLSearchParams(searchString).entries())
export default (urlParams) => {
const validParams = Object.fromEntries(
Array.from(Object.entries(urlParams))
.filter(([key]) => key in paramMapping)
.map(([key, value]) => [paramMapping[key].key, paramMapping[key].parser(value)])
.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 {
...version,
...urlParams,
...validParams,
};
};

View File

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