outsource async fetching

This commit is contained in:
do butterflies cry? 2026-02-02 05:02:18 +10:00
parent 618a3aec23
commit 1683d2bbe9
3 changed files with 42 additions and 30 deletions

View file

@ -2,18 +2,31 @@ import { Smc } from "./smc/smc.js"
main();
async function fetchShader(uri, delegate) {
const res = await fetch(uri);
if (res.ok)
return await res.text();
this.raiseError(
SmcErr.FETCH_SHADER,
`Failed to load shader source ${url}: ${res.status} ${res.json()}`);
return ""
}
function main() {
const canvas = document.querySelector("#gl-canvas");
canvas.setAttribute('width', window.innerWidth);
canvas.setAttribute('height', window.innerHeight);
new Smc(canvas)
.setMaxFps(30)
.setProgram(builder =>
builder
// .fetchVertexShader("../shaders/segfault.glsl")
// .fetchFragmentShader("../shaders/segfault.glsl"))
)
.run();
fetchShader("../shaders/segfault.glsl")
.then(frag =>
new Smc(canvas)
.setMaxFps(30)
.setProgram(builder =>
builder
.addFragmentShader(frag))
.run()
);
}