summaryrefslogtreecommitdiff
path: root/web/hitomezashi_web_shell.html
blob: 8e53afe9297b722ff243217b6a8fae6d7fa269ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<!doctype html>
<html lang="en-us">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <!--This is code modified from https://github.com/emscripten-core/emscripten/blob/main/src/shell_minimal.html.-->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Hitomezashi</title>
  <style>
    canvas {
      padding-right: 0;
      margin-left: auto;
      margin-right: auto;
      display: block;
      border: 0px none;
      background-color: black;
    }

    form {
      display: table;
      margin: auto;
    }

    form>p {
      display: table-row;
    }

    form>p>label {
      display: table-cell;
    }

    form>p>label>input {
      display: table-cell;
    }

    button#downloadCanvas {
      display: block;
      margin: 0 auto;
    }

    p#info {
      text-align: center;
    }

    p#info>a {
      margin-left: 1ex;
      margin-right: 1ex;
    }
  </style>
</head>

<body>
  <form name="hitomezashi parameters" autocomplete="off">
    <p><label>x pattern: <input name="x_pattern"></label></p>
    <p><label>y pattern: <input name="y_pattern"></label></p>
    <p><label>gap: <input name="gap" type="number"></label></p>
    <p><label>line thickness: <input name="line_thickness" type="number"></label></p>
    <p><label>foreground colour: <input name="fg_colour" type="color"></label></p>
    <p><label>background colour: <input name="bg_colour" type="color"></label></p>
  </form>
  <br>
  <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()" tabindex=-1></canvas>
  <br>
  <button id="downloadCanvas">download as image</button>
  <script type='text/javascript'>
    var Module = {
      canvas: (function () {
        var canvas = document.getElementById('canvas');

        canvas.addEventListener("webglcontextlost", function (e) { alert('Error: WebGL context lost. Please reload the page.'); e.preventDefault(); }, false);

        return canvas;
      })(),
    };
    function downloadCanvas() {
      let downloadLink = document.createElement("a");
      downloadLink.setAttribute("download", "hitomezashi");
      downloadLink.setAttribute("href", canvas.toDataURL());
      downloadLink.click();
    }
    document.querySelector("#downloadCanvas").addEventListener("click", downloadCanvas);
  </script>
  {{{ SCRIPT }}}
</body>

</html>