Fix shader
This commit is contained in:
@@ -1,9 +1,6 @@
|
|||||||
import noise from "~/assets/shaders/noise.frag?raw"
|
import noise from "~/assets/shaders/noise.frag?raw"
|
||||||
// @ts-ignore Import module
|
|
||||||
import resolveLygia from "https://lygia.xyz/resolve.esm.js"
|
|
||||||
|
|
||||||
|
import resolveLygia from "~/assets/workers/resolve-lygia.esm"
|
||||||
declare const resolveLygia: (source: string) => string
|
|
||||||
|
|
||||||
let interval: number
|
let interval: number
|
||||||
let timeout: number
|
let timeout: number
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
function getFile(url) {
|
||||||
|
let httpRequest = new XMLHttpRequest();
|
||||||
|
httpRequest.open("GET", url, false);
|
||||||
|
httpRequest.send();
|
||||||
|
if (httpRequest.status == 200)
|
||||||
|
return httpRequest.responseText;
|
||||||
|
else
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveLygia(lines) {
|
||||||
|
if ( !Array.isArray(lines) ) {
|
||||||
|
lines = lines.split(/\r?\n/);
|
||||||
|
}
|
||||||
|
|
||||||
|
let src = "";
|
||||||
|
lines.forEach( (line, i) => {
|
||||||
|
const line_trim = line.trim();
|
||||||
|
if (line_trim.startsWith('#include \"lygia') ) {
|
||||||
|
let include_url = line_trim.substring(15);
|
||||||
|
include_url = "https://lygia.xyz" + include_url.replace(/\"|\;|\s/g,'');
|
||||||
|
src += getFile(include_url) + '\n';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
src += line + '\n';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return src;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function resolveLygiaAsync(lines) {
|
||||||
|
if (!Array.isArray(lines))
|
||||||
|
lines = lines.split(/\r?\n/);
|
||||||
|
|
||||||
|
let src = "";
|
||||||
|
const response = await Promise.all(
|
||||||
|
lines.map(async (line, i) => {
|
||||||
|
const line_trim = line.trim();
|
||||||
|
if (line_trim.startsWith('#include "lygia')) {
|
||||||
|
let include_url = line_trim.substring(15);
|
||||||
|
include_url = "https://lygia.xyz" + include_url.replace(/\"|\;|\s/g, "");
|
||||||
|
return fetch(include_url).then((res) => res.text());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return line;
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
return response.join("\n");
|
||||||
|
}
|
||||||
|
export { resolveLygia as default };
|
||||||
Reference in New Issue
Block a user