81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!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
 | |
|       {
 | |
|           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>
 |