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+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>
 | 
						|
 |