1cb93a386Sopenharmony_ci<!DOCTYPE html>
2cb93a386Sopenharmony_ci<title>Testing GMs on WebGL 2 compiled with Bazel</title>
3cb93a386Sopenharmony_ci<meta charset="utf-8" />
4cb93a386Sopenharmony_ci<meta http-equiv="X-UA-Compatible" content="IE=edge">
5cb93a386Sopenharmony_ci<meta name="viewport" content="width=device-width, initial-scale=1.0">
6cb93a386Sopenharmony_ci
7cb93a386Sopenharmony_ci<script type="text/javascript" src="/build/gm-bindings.js"></script>
8cb93a386Sopenharmony_ci
9cb93a386Sopenharmony_ci<p id="log"></p>
10cb93a386Sopenharmony_ci<!-- Makes png visible to user -->
11cb93a386Sopenharmony_ci<canvas id=png_canvas height=1000 width=1000></canvas>
12cb93a386Sopenharmony_ci<!-- Used for drawing/testing, but nothing is visible -->
13cb93a386Sopenharmony_ci<canvas id=gm_canvas></canvas>
14cb93a386Sopenharmony_ci
15cb93a386Sopenharmony_ci
16cb93a386Sopenharmony_ci<script type="text/javascript" charset="utf-8">
17cb93a386Sopenharmony_ci  function log(s) {
18cb93a386Sopenharmony_ci    document.getElementById("log").innerText = s;
19cb93a386Sopenharmony_ci  }
20cb93a386Sopenharmony_ci  RunGMs();
21cb93a386Sopenharmony_ci  async function RunGMs() {
22cb93a386Sopenharmony_ci    const GM = await InitWasmGMTests({locateFile: (file) => '/build/'+file});
23cb93a386Sopenharmony_ci    GM.Init();
24cb93a386Sopenharmony_ci    const names = GM.ListGMs();
25cb93a386Sopenharmony_ci    names.sort();
26cb93a386Sopenharmony_ci
27cb93a386Sopenharmony_ci    const canvas = document.getElementById('gm_canvas');
28cb93a386Sopenharmony_ci    const ctx = GM.GetWebGLContext(canvas, 2);
29cb93a386Sopenharmony_ci    const grcontext = GM.MakeGrContext(ctx);
30cb93a386Sopenharmony_ci
31cb93a386Sopenharmony_ci    log("Running gm "+ names[0]);
32cb93a386Sopenharmony_ci    const pngAndMetadata = GM.RunGM(grcontext, names[0]);
33cb93a386Sopenharmony_ci
34cb93a386Sopenharmony_ci    const b = new Blob([pngAndMetadata.png.buffer], {type:"image/png"});
35cb93a386Sopenharmony_ci    const bmp = await createImageBitmap(b);
36cb93a386Sopenharmony_ci    const canvasCtx = document.getElementById("png_canvas").getContext("2d");
37cb93a386Sopenharmony_ci    canvasCtx.drawImage(bmp, 0, 0);
38cb93a386Sopenharmony_ci  }
39cb93a386Sopenharmony_ci</script>