|
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<title>Desk</title>
|
|
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
|
|
|
|
|
|
<link rel="shortcut icon" href="icons/favicon.svg" id="favicon">
|
|
|
|
<link rel="stylesheet" type="text/css" href="default.css">
|
|
|
|
|
|
|
|
<link rel="preload" href="icons/cursor.svg" as="image" type="image/svg+xml" />
|
|
|
|
<link rel="preload" href="icons/picker.svg" as="image" type="image/svg+xml" />
|
|
|
|
|
|
|
|
<script type="text/javascript" src="aux.js"></script>
|
|
|
|
<script type="text/javascript" src="heapify.js"></script>
|
|
|
|
<script type="text/javascript" src="bvh.js"></script>
|
|
|
|
<script type="text/javascript" src="math.js"></script>
|
|
|
|
<script type="text/javascript" src="tools.js"></script>
|
|
|
|
<script type="text/javascript" src="speed.js"></script>
|
|
|
|
<script type="text/javascript" src="webgl_geometry.js"></script>
|
|
|
|
<script type="text/javascript" src="webgl_shaders.js"></script>
|
|
|
|
<script type="text/javascript" src="webgl_listeners.js"></script>
|
|
|
|
<script type="text/javascript" src="webgl_draw.js"></script>
|
|
|
|
<script type="text/javascript" src="index.js"></script>
|
|
|
|
|
|
|
|
<script type="text/javascript" src="client_send.js"></script>
|
|
|
|
<script type="text/javascript" src="client_recv.js"></script>
|
|
|
|
<script type="text/javascript" src="websocket.js"></script>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="main">
|
|
|
|
<canvas id="c"></canvas>
|
|
|
|
<div class="html-hud"></div>
|
|
|
|
<div class="brush-dom"></div>
|
|
|
|
|
|
|
|
<div class="debug-window dhide">
|
|
|
|
<div id="debug-stats" class="flexcol"></div>
|
|
|
|
<div class="debug-timings flexcol">
|
|
|
|
<div class="cpu"></div>
|
|
|
|
<div class="gpu"></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<label><input type="checkbox" id="debug-red">Simple shader</label>
|
|
|
|
<label><input type="checkbox" id="debug-do-prepass">Depth prepass</label>
|
|
|
|
|
|
|
|
<div class="flexcol">
|
|
|
|
<label><input type="checkbox" id="debug-limit-from">Limit events from</label>
|
|
|
|
<input type="range" min="0" max="0" value="0" id="debug-render-from">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="flexcol">
|
|
|
|
<label><input type="checkbox" id="debug-limit-to">Limit events to</label>
|
|
|
|
<input type="range" min="0" max="0" value="0" id="debug-render-to">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<button id="debug-begin-benchmark" title="Do not forget to enable recording in your browser!">Benchmark</button>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="picker-preview-outer dhide">
|
|
|
|
<div class="picker-preview-inner">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="top-wrapper">
|
|
|
|
<div class="topleft"></div>
|
|
|
|
<div class="sizer">
|
|
|
|
<input type="range" class="slider" id="stroke-width" min="0.01" step="0.01" max="64">
|
|
|
|
</div>
|
|
|
|
<div class="player-list vhide"></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="pallete-wrapper">
|
|
|
|
<!-- Open Color is MIT licensed: https://github.com/yeun/open-color -->
|
|
|
|
<div class="pallete">
|
|
|
|
<div class="color-major" style="border-top-right-radius: var(--radius);">
|
|
|
|
<div class="color-minor" data-color="f1f3f5"><div class="color-pane" style="background: #f1f3f5;"></div></div>
|
|
|
|
<div class="color-minor" data-color="e9ecef"><div class="color-pane" style="background: #e9ecef;"></div></div>
|
|
|
|
<div class="color-minor" data-color="dee2e6"><div class="color-pane" style="background: #dee2e6;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ced4da"><div class="color-pane" style="background: #ced4da;"></div></div>
|
|
|
|
<div class="color-minor" data-color="adb5bd"><div class="color-pane" style="background: #adb5bd;"></div></div>
|
|
|
|
<div class="color-minor" data-color="868e96"><div class="color-pane" style="background: #868e96;"></div></div>
|
|
|
|
<div class="color-minor" data-color="495057"><div class="color-pane" style="background: #495057;"></div></div>
|
|
|
|
<div class="color-minor" data-color="343a40"><div class="color-pane" style="background: #343a40;"></div></div>
|
|
|
|
<div class="color-minor" data-color="212529"><div class="color-pane" style="background: #212529;"></div></div>
|
|
|
|
<div class="color-minor" data-color="000000"><div class="color-pane" style="background: #000000;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
<div class="color-minor" data-color="fff5f5"><div class="color-pane" style="background: #fff5f5;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffe3e3"><div class="color-pane" style="background: #ffe3e3;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffc9c9"><div class="color-pane" style="background: #ffc9c9;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffa8a8"><div class="color-pane" style="background: #ffa8a8;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ff8787"><div class="color-pane" style="background: #ff8787;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ff6b6b"><div class="color-pane" style="background: #ff6b6b;"></div></div>
|
|
|
|
<div class="color-minor" data-color="fa5252"><div class="color-pane" style="background: #fa5252;"></div></div>
|
|
|
|
<div class="color-minor" data-color="f03e3e"><div class="color-pane" style="background: #f03e3e;"></div></div>
|
|
|
|
<div class="color-minor" data-color="e03131"><div class="color-pane" style="background: #e03131;"></div></div>
|
|
|
|
<div class="color-minor" data-color="c92a2a"><div class="color-pane" style="background: #c92a2a;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
<div class="color-minor" data-color="fff0f6"><div class="color-pane" style="background: #fff0f6;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffdeeb"><div class="color-pane" style="background: #ffdeeb;"></div></div>
|
|
|
|
<div class="color-minor" data-color="fcc2d7"><div class="color-pane" style="background: #fcc2d7;"></div></div>
|
|
|
|
<div class="color-minor" data-color="faa2c1"><div class="color-pane" style="background: #faa2c1;"></div></div>
|
|
|
|
<div class="color-minor" data-color="f783ac"><div class="color-pane" style="background: #f783ac;"></div></div>
|
|
|
|
<div class="color-minor" data-color="f06595"><div class="color-pane" style="background: #f06595;"></div></div>
|
|
|
|
<div class="color-minor" data-color="e64980"><div class="color-pane" style="background: #e64980;"></div></div>
|
|
|
|
<div class="color-minor" data-color="d6336c"><div class="color-pane" style="background: #d6336c;"></div></div>
|
|
|
|
<div class="color-minor" data-color="c2255c"><div class="color-pane" style="background: #c2255c;"></div></div>
|
|
|
|
<div class="color-minor" data-color="a61e4d"><div class="color-pane" style="background: #a61e4d;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
<div class="color-minor" data-color="f8f0fc"><div class="color-pane" style="background: #f8f0fc;"></div></div>
|
|
|
|
<div class="color-minor" data-color="f3d9fa"><div class="color-pane" style="background: #f3d9fa;"></div></div>
|
|
|
|
<div class="color-minor" data-color="eebefa"><div class="color-pane" style="background: #eebefa;"></div></div>
|
|
|
|
<div class="color-minor" data-color="e599f7"><div class="color-pane" style="background: #e599f7;"></div></div>
|
|
|
|
<div class="color-minor" data-color="da77f2"><div class="color-pane" style="background: #da77f2;"></div></div>
|
|
|
|
<div class="color-minor" data-color="cc5de8"><div class="color-pane" style="background: #cc5de8;"></div></div>
|
|
|
|
<div class="color-minor" data-color="be4bdb"><div class="color-pane" style="background: #be4bdb;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ae3ec9"><div class="color-pane" style="background: #ae3ec9;"></div></div>
|
|
|
|
<div class="color-minor" data-color="9c36b5"><div class="color-pane" style="background: #9c36b5;"></div></div>
|
|
|
|
<div class="color-minor" data-color="862e9c"><div class="color-pane" style="background: #862e9c;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
<div class="color-minor" data-color="f3f0ff"><div class="color-pane" style="background: #f3f0ff;"></div></div>
|
|
|
|
<div class="color-minor" data-color="e5dbff"><div class="color-pane" style="background: #e5dbff;"></div></div>
|
|
|
|
<div class="color-minor" data-color="d0bfff"><div class="color-pane" style="background: #d0bfff;"></div></div>
|
|
|
|
<div class="color-minor" data-color="b197fc"><div class="color-pane" style="background: #b197fc;"></div></div>
|
|
|
|
<div class="color-minor" data-color="9775fa"><div class="color-pane" style="background: #9775fa;"></div></div>
|
|
|
|
<div class="color-minor" data-color="845ef7"><div class="color-pane" style="background: #845ef7;"></div></div>
|
|
|
|
<div class="color-minor" data-color="7950f2"><div class="color-pane" style="background: #7950f2;"></div></div>
|
|
|
|
<div class="color-minor" data-color="7048e8"><div class="color-pane" style="background: #7048e8;"></div></div>
|
|
|
|
<div class="color-minor" data-color="6741d9"><div class="color-pane" style="background: #6741d9;"></div></div>
|
|
|
|
<div class="color-minor" data-color="5f3dc4"><div class="color-pane" style="background: #5f3dc4;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
<div class="color-minor" data-color="edf2ff"><div class="color-pane" style="background: #edf2ff;"></div></div>
|
|
|
|
<div class="color-minor" data-color="dbe4ff"><div class="color-pane" style="background: #dbe4ff;"></div></div>
|
|
|
|
<div class="color-minor" data-color="bac8ff"><div class="color-pane" style="background: #bac8ff;"></div></div>
|
|
|
|
<div class="color-minor" data-color="91a7ff"><div class="color-pane" style="background: #91a7ff;"></div></div>
|
|
|
|
<div class="color-minor" data-color="748ffc"><div class="color-pane" style="background: #748ffc;"></div></div>
|
|
|
|
<div class="color-minor" data-color="5c7cfa"><div class="color-pane" style="background: #5c7cfa;"></div></div>
|
|
|
|
<div class="color-minor" data-color="4c6ef5"><div class="color-pane" style="background: #4c6ef5;"></div></div>
|
|
|
|
<div class="color-minor" data-color="4263eb"><div class="color-pane" style="background: #4263eb;"></div></div>
|
|
|
|
<div class="color-minor" data-color="3b5bdb"><div class="color-pane" style="background: #3b5bdb;"></div></div>
|
|
|
|
<div class="color-minor" data-color="364fc7"><div class="color-pane" style="background: #364fc7;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
<div class="color-minor" data-color="e7f5ff"><div class="color-pane" style="background: #e7f5ff;"></div></div>
|
|
|
|
<div class="color-minor" data-color="d0ebff"><div class="color-pane" style="background: #d0ebff;"></div></div>
|
|
|
|
<div class="color-minor" data-color="a5d8ff"><div class="color-pane" style="background: #a5d8ff;"></div></div>
|
|
|
|
<div class="color-minor" data-color="74c0fc"><div class="color-pane" style="background: #74c0fc;"></div></div>
|
|
|
|
<div class="color-minor" data-color="4dabf7"><div class="color-pane" style="background: #4dabf7;"></div></div>
|
|
|
|
<div class="color-minor" data-color="339af0"><div class="color-pane" style="background: #339af0;"></div></div>
|
|
|
|
<div class="color-minor" data-color="228be6"><div class="color-pane" style="background: #228be6;"></div></div>
|
|
|
|
<div class="color-minor" data-color="1c7ed6"><div class="color-pane" style="background: #1c7ed6;"></div></div>
|
|
|
|
<div class="color-minor" data-color="1971c2"><div class="color-pane" style="background: #1971c2;"></div></div>
|
|
|
|
<div class="color-minor" data-color="1864ab"><div class="color-pane" style="background: #1864ab;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
|
|
|
|
<div class="color-minor" data-color="e3fafc"><div class="color-pane" style="background: #e3fafc;"></div></div>
|
|
|
|
<div class="color-minor" data-color="c5f6fa"><div class="color-pane" style="background: #c5f6fa;"></div></div>
|
|
|
|
<div class="color-minor" data-color="99e9f2"><div class="color-pane" style="background: #99e9f2;"></div></div>
|
|
|
|
<div class="color-minor" data-color="66d9e8"><div class="color-pane" style="background: #66d9e8;"></div></div>
|
|
|
|
<div class="color-minor" data-color="3bc9db"><div class="color-pane" style="background: #3bc9db;"></div></div>
|
|
|
|
<div class="color-minor" data-color="22b8cf"><div class="color-pane" style="background: #22b8cf;"></div></div>
|
|
|
|
<div class="color-minor" data-color="15aabf"><div class="color-pane" style="background: #15aabf;"></div></div>
|
|
|
|
<div class="color-minor" data-color="1098ad"><div class="color-pane" style="background: #1098ad;"></div></div>
|
|
|
|
<div class="color-minor" data-color="0c8599"><div class="color-pane" style="background: #0c8599;"></div></div>
|
|
|
|
<div class="color-minor" data-color="0b7285"><div class="color-pane" style="background: #0b7285;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
<div class="color-minor" data-color="e6fcf5"><div class="color-pane" style="background: #e6fcf5;"></div></div>
|
|
|
|
<div class="color-minor" data-color="c3fae8"><div class="color-pane" style="background: #c3fae8;"></div></div>
|
|
|
|
<div class="color-minor" data-color="96f2d7"><div class="color-pane" style="background: #96f2d7;"></div></div>
|
|
|
|
<div class="color-minor" data-color="63e6be"><div class="color-pane" style="background: #63e6be;"></div></div>
|
|
|
|
<div class="color-minor" data-color="38d9a9"><div class="color-pane" style="background: #38d9a9;"></div></div>
|
|
|
|
<div class="color-minor" data-color="20c997"><div class="color-pane" style="background: #20c997;"></div></div>
|
|
|
|
<div class="color-minor" data-color="12b886"><div class="color-pane" style="background: #12b886;"></div></div>
|
|
|
|
<div class="color-minor" data-color="0ca678"><div class="color-pane" style="background: #0ca678;"></div></div>
|
|
|
|
<div class="color-minor" data-color="099268"><div class="color-pane" style="background: #099268;"></div></div>
|
|
|
|
<div class="color-minor" data-color="087f5b"><div class="color-pane" style="background: #087f5b;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
<div class="color-minor" data-color="ebfbee"><div class="color-pane" style="background: #ebfbee;"></div></div>
|
|
|
|
<div class="color-minor" data-color="d3f9d8"><div class="color-pane" style="background: #d3f9d8;"></div></div>
|
|
|
|
<div class="color-minor" data-color="b2f2bb"><div class="color-pane" style="background: #b2f2bb;"></div></div>
|
|
|
|
<div class="color-minor" data-color="8ce99a"><div class="color-pane" style="background: #8ce99a;"></div></div>
|
|
|
|
<div class="color-minor" data-color="69db7c"><div class="color-pane" style="background: #69db7c;"></div></div>
|
|
|
|
<div class="color-minor" data-color="51cf66"><div class="color-pane" style="background: #51cf66;"></div></div>
|
|
|
|
<div class="color-minor" data-color="40c057"><div class="color-pane" style="background: #40c057;"></div></div>
|
|
|
|
<div class="color-minor" data-color="37b24d"><div class="color-pane" style="background: #37b24d;"></div></div>
|
|
|
|
<div class="color-minor" data-color="2f9e44"><div class="color-pane" style="background: #2f9e44;"></div></div>
|
|
|
|
<div class="color-minor" data-color="2b8a3e"><div class="color-pane" style="background: #2b8a3e;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
<div class="color-minor" data-color="f4fce3"><div class="color-pane" style="background: #f4fce3;"></div></div>
|
|
|
|
<div class="color-minor" data-color="e9fac8"><div class="color-pane" style="background: #e9fac8;"></div></div>
|
|
|
|
<div class="color-minor" data-color="d8f5a2"><div class="color-pane" style="background: #d8f5a2;"></div></div>
|
|
|
|
<div class="color-minor" data-color="c0eb75"><div class="color-pane" style="background: #c0eb75;"></div></div>
|
|
|
|
<div class="color-minor" data-color="a9e34b"><div class="color-pane" style="background: #a9e34b;"></div></div>
|
|
|
|
<div class="color-minor" data-color="94d82d"><div class="color-pane" style="background: #94d82d;"></div></div>
|
|
|
|
<div class="color-minor" data-color="82c91e"><div class="color-pane" style="background: #82c91e;"></div></div>
|
|
|
|
<div class="color-minor" data-color="74b816"><div class="color-pane" style="background: #74b816;"></div></div>
|
|
|
|
<div class="color-minor" data-color="66a80f"><div class="color-pane" style="background: #66a80f;"></div></div>
|
|
|
|
<div class="color-minor" data-color="5c940d"><div class="color-pane" style="background: #5c940d;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major">
|
|
|
|
<div class="color-minor" data-color="fff9db"><div class="color-pane" style="background: #fff9db;"></div></div>
|
|
|
|
<div class="color-minor" data-color="fff3bf"><div class="color-pane" style="background: #fff3bf;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffec99"><div class="color-pane" style="background: #ffec99;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffe066"><div class="color-pane" style="background: #ffe066;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffd43b"><div class="color-pane" style="background: #ffd43b;"></div></div>
|
|
|
|
<div class="color-minor" data-color="fcc419"><div class="color-pane" style="background: #fcc419;"></div></div>
|
|
|
|
<div class="color-minor" data-color="fab005"><div class="color-pane" style="background: #fab005;"></div></div>
|
|
|
|
<div class="color-minor" data-color="f59f00"><div class="color-pane" style="background: #f59f00;"></div></div>
|
|
|
|
<div class="color-minor" data-color="f08c00"><div class="color-pane" style="background: #f08c00;"></div></div>
|
|
|
|
<div class="color-minor" data-color="e67700"><div class="color-pane" style="background: #e67700;"></div></div>
|
|
|
|
</div>
|
|
|
|
<div class="color-major" style="border-bottom-right-radius: var(--radius);">
|
|
|
|
<div class="color-minor" data-color="fff4e6"><div class="color-pane" style="background: #fff4e6;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffe8cc"><div class="color-pane" style="background: #ffe8cc;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffd8a8"><div class="color-pane" style="background: #ffd8a8;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffc078"><div class="color-pane" style="background: #ffc078;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ffa94d"><div class="color-pane" style="background: #ffa94d;"></div></div>
|
|
|
|
<div class="color-minor" data-color="ff922b"><div class="color-pane" style="background: #ff922b;"></div></div>
|
|
|
|
<div class="color-minor" data-color="fd7e14"><div class="color-pane" style="background: #fd7e14;"></div></div>
|
|
|
|
<div class="color-minor" data-color="f76707"><div class="color-pane" style="background: #f76707;"></div></div>
|
|
|
|
<div class="color-minor" data-color="e8590c"><div class="color-pane" style="background: #e8590c;"></div></div>
|
|
|
|
<div class="color-minor" data-color="d9480f"><div class="color-pane" style="background: #d9480f;"></div></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="tools-wrapper">
|
|
|
|
<div class="tools">
|
|
|
|
<div class="tool active" data-tool="pencil"><img draggable="false" src="icons/pen.svg"></div>
|
|
|
|
<div class="tool" data-tool="ruler"><img draggable="false" src="icons/ruler.svg"></div>
|
|
|
|
<div class="tool" data-tool="eraser"><img draggable="false" src="icons/erase.svg"></div>
|
|
|
|
<div class="tool" data-tool="undo"><img draggable="false" src="icons/undo.svg"></div>
|
|
|
|
<!-- <div class="tool" data-tool="redo"><img draggable="false" src="icons/redo.svg"></div> -->
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="phone-extra-controls">
|
|
|
|
<img draggable="false" src="icons/cheeseburga.svg">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="offline-toast hidden">
|
|
|
|
Whiteboard offline
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="loader">
|
|
|
|
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg">
|
|
|
|
<!-- <circle cx="64" cy="64" r="32" fill="none" stroke="black" opacity="0.5" stroke-width="3" stroke-linecap="round"/> -->
|
|
|
|
<path id="spinner-path" fill="none" stroke="#aaaaaa" stroke-width="3" stroke-linecap="round"/>
|
|
|
|
</svg>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|