<!doctype html> <html lang="en-us"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/> <title>Dear ImGui Emscripten+GLFW+WebGPU example</title> <style> body { margin: 0; background-color: black } .emscripten { position: absolute; top: 0px; left: 0px; margin: 0px; border: 0; width: 100%; height: 100%; overflow: hidden; display: block; image-rendering: optimizeSpeed; image-rendering: -moz-crisp-edges; image-rendering: -o-crisp-edges; image-rendering: -webkit-optimize-contrast; image-rendering: optimize-contrast; image-rendering: crisp-edges; image-rendering: pixelated; -ms-interpolation-mode: nearest-neighbor; } </style> </head> <body> <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas> <script type='text/javascript'> var Module; (async () => { Module = { preRun: [], postRun: [], print: (function() { return function(text) { text = Array.prototype.slice.call(arguments).join(' '); console.log(text); }; })(), printErr: function(text) { text = Array.prototype.slice.call(arguments).join(' '); console.error(text); }, canvas: (function() { var canvas = document.getElementById('canvas'); //canvas.addEventListener("webglcontextlost", function(e) { alert('FIXME: WebGL context lost, please reload the page'); e.preventDefault(); }, false); return canvas; })(), setStatus: function(text) { console.log("status: " + text); }, monitorRunDependencies: function(left) { // no run dependencies to log } }; window.onerror = function() { console.log("onerror: " + event); }; // Initialize the graphics adapter { if (!navigator.gpu) { throw Error("WebGPU not supported."); } const adapter = await navigator.gpu.requestAdapter(); const device = await adapter.requestDevice(); Module.preinitializedWebGPUDevice = device; } { const js = document.createElement('script'); js.async = true; js.src = "index.js"; document.body.appendChild(js); } })(); </script> </body> </html>