Fix shader
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
import noise from "~/assets/shaders/noise.frag?raw"
|
||||
// @ts-ignore Import module
|
||||
import resolveLygia from "https://lygia.xyz/resolve.esm.js"
|
||||
|
||||
|
||||
declare const resolveLygia: (source: string) => string
|
||||
import resolveLygia from "~/assets/workers/resolve-lygia.esm"
|
||||
|
||||
let interval: 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