|
174 | 174 | }); |
175 | 175 | editor.setValue(DEFAULT); |
176 | 176 | editor.setSize('100%', '100%'); |
177 | | -window.addEventListener('load', () => { setTimeout(runSketch, 500); }); |
| 177 | + |
| 178 | +// Load pre-built default sketch immediately -- no compile needed |
| 179 | +async function loadDefaultSketch() { |
| 180 | + const area = document.getElementById('preview-area'); |
| 181 | + const placeholder = document.getElementById('preview-placeholder'); |
| 182 | + if (placeholder) placeholder.style.display = 'none'; |
| 183 | + |
| 184 | + const canvas = document.createElement('canvas'); |
| 185 | + canvas.id = 'canvas'; |
| 186 | + canvas.setAttribute('tabindex', '-1'); |
| 187 | + area.appendChild(canvas); |
| 188 | + |
| 189 | + const [wasmResp, dataResp] = await Promise.all([ |
| 190 | + fetch('default_sketch.wasm'), |
| 191 | + fetch('default_sketch.data'), |
| 192 | + ]); |
| 193 | + const wasmBinary = new Uint8Array(await wasmResp.arrayBuffer()); |
| 194 | + const dataBytes = new Uint8Array(await dataResp.arrayBuffer()); |
| 195 | + |
| 196 | + window.Module = { |
| 197 | + canvas: canvas, |
| 198 | + wasmBinary: wasmBinary, |
| 199 | + onRuntimeInitialized: function() { setStatus('Running', 'ok'); }, |
| 200 | + getPreloadedPackage: function(name, size) { return dataBytes.buffer; }, |
| 201 | + print: t => console.log('[sketch]', t), |
| 202 | + printErr: t => console.warn('[sketch]', t), |
| 203 | + }; |
| 204 | + |
| 205 | + const script = document.createElement('script'); |
| 206 | + script.src = 'default_sketch.js'; |
| 207 | + document.head.appendChild(script); |
| 208 | +} |
| 209 | + |
| 210 | +window.addEventListener('load', loadDefaultSketch); |
178 | 211 |
|
179 | 212 |
|
180 | 213 |
|
|
0 commit comments