Move Odin renderer into gui/ with per-project Makefiles
CI / Detect changed paths (pull_request) Failing after 1s
CI / Infra unit tests and vet (pull_request) Failing after 1s
CI / Odin unit tests and build (pull_request) Has been skipped
CI / API unit tests and lint (pull_request) Has been skipped

Each sub-project (gui, api, infra) now owns its own Makefile, and the
root Makefile is a lean delegator for the base commands (run, build,
test, clean, fmt). Odin source, deps, and web assets live under gui/
(gui/src, gui/lib, gui/www), with scripts kept under gui/scripts for
build tooling only.
This commit is contained in:
2026-08-31 13:45:58 -06:00
parent 175bb4acad
commit bd8a7da379
16 changed files with 223 additions and 122 deletions
+50
View File
@@ -0,0 +1,50 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>DESI Explorer</title>
<meta name="viewport" content="width=device-width">
<style>
body {
margin: 0;
overflow: hidden;
background: #05050f;
}
canvas {
display: block;
}
</style>
</head>
<body>
<canvas id="canvas" tabindex="-1" oncontextmenu="event.preventDefault()"></canvas>
<!-- Odin's JS runtime glue; required by the generated wasm module. -->
<script src="odin.js"></script>
<script>
var odinMemoryInterface = new odin.WasmMemoryInterface();
odinMemoryInterface.setIntSize(4);
var odinImports = odin.setupDefaultImports(odinMemoryInterface);
var Module = {
instantiateWasm: function(imports, successCallback) {
var newImports = Object.assign({}, odinImports, imports);
return WebAssembly.instantiateStreaming(fetch("index.wasm"), newImports).then(
function(output) {
var e = output.instance.exports;
odinMemoryInterface.setExports(e);
odinMemoryInterface.setMemory(e.memory);
return successCallback(output.instance);
}
);
},
onRuntimeInitialized: function() {
var e = wasmExports;
if (e._start) { e._start(); }
},
canvas: document.getElementById("canvas")
};
</script>
{{{ SCRIPT }}}
</body>
</html>