You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
84 lines
2.7 KiB
84 lines
2.7 KiB
<!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+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>
|
|
|