GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git
scripts/web-probe/capture.mjs (884B)
1 // capture.mjs <site-dir> <out.rgba>: open the probe page (browser.mjs), run
2 // the probe, and write the frame it read back from the GPU to <out.rgba>
3 // (premultiplied RGBA8), with a page screenshot beside it.
4 import fs from 'fs';
5 import { open } from './browser.mjs';
6
7 const [root, out] = process.argv.slice(2);
8 if (!root || !out) { console.error('usage: capture.mjs <site-dir> <out.rgba>'); process.exit(2); }
9 const { page, logs, close } = await open(root, 'index.html', 1280, 800);
10 await page.waitForFunction(() => window.probeReady === true);
11 let ok = true;
12 try {
13 const b64 = await page.evaluate(() => window.runProbe());
14 fs.writeFileSync(out, Buffer.from(b64, 'base64'));
15 await page.screenshot({ path: out + '.screenshot.png' });
16 } catch (e) { ok = false; logs.push('[probe] ' + String(e)); }
17 for (const l of logs) console.log(l);
18 await close();
19 process.exit(ok ? 0 : 1);