diff options
Diffstat (limited to 'debug/html/index.html')
| -rw-r--r-- | debug/html/index.html | 372 |
1 files changed, 372 insertions, 0 deletions
diff --git a/debug/html/index.html b/debug/html/index.html new file mode 100644 index 0000000..9a777e2 --- /dev/null +++ b/debug/html/index.html @@ -0,0 +1,372 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> +<head> + <meta charset="utf-8" /> + <title></title> + <style type="text/css"> + body { + margin: 0; + border: 0 none; + padding: 0; + text-align: center; + background-color: #222226; + font-family: 'Droid Sans', Arial, sans-serif; + } + + + /* Godot Engine default theme style + * ================================ */ + + .godot { + color: #e0e0e0; + background-color: #3b3943; + background-image: linear-gradient(to bottom, #403e48, #35333c); + border: 1px solid #45434e; + box-shadow: 0 0 1px 1px #2f2d35; + } + + button.godot { + font-family: 'Droid Sans', Arial, sans-serif; /* override user agent style */ + padding: 1px 5px; + background-color: #37353f; + background-image: linear-gradient(to bottom, #413e49, #3a3842); + border: 1px solid #514f5d; + border-radius: 1px; + box-shadow: 0 0 1px 1px #2a2930; + } + + button.godot:hover { + color: #f0f0f0; + background-color: #44414e; + background-image: linear-gradient(to bottom, #494652, #423f4c); + border: 1px solid #5a5667; + box-shadow: 0 0 1px 1px #26252b; + } + + button.godot:active { + color: #fff; + background-color: #3e3b46; + background-image: linear-gradient(to bottom, #36343d, #413e49); + border: 1px solid #4f4c59; + box-shadow: 0 0 1px 1px #26252b; + } + + button.godot:disabled { + color: rgba(230, 230, 230, 0.2); + background-color: #3d3d3d; + background-image: linear-gradient(to bottom, #434343, #393939); + border: 1px solid #474747; + box-shadow: 0 0 1px 1px #2d2b33; + } + + + /* Canvas / wrapper + * ================ */ + + #container { + display: inline-block; /* scale with canvas */ + vertical-align: top; /* prevent extra height */ + position: relative; /* root for absolutely positioned overlay */ + margin: 0; + border: 0 none; + padding: 0; + background-color: #0c0c0c; + } + + #canvas { + display: block; + margin: 0 auto; + /* canvas must have border and padding set to zero to + * calculate cursor coordinates correctly */ + border: 0 none; + padding: 0; + color: white; + } + + + /* Status display + * ============== */ + + #status-container { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; + /* don't consume click events - make children visible explicitly */ + visibility: hidden; + } + + #status { + line-height: 1.3; + cursor: pointer; + visibility: visible; + padding: 4px 6px; + } + + + /* Debug output + * ============ */ + + #output-panel { + display: none; + max-width: 700px; + font-size: small; + margin: 6px auto 0; + padding: 0 4px 4px; + text-align: left; + line-height: 2.2; + } + + #output-header { + display: flex; + justify-content: space-between; + align-items: center; + } + + #output-container { + padding: 6px; + background-color: #2c2a32; + box-shadow: inset 0 0 1px 1px #232127; + color: #bbb; + } + + #output-scroll { + line-height: 1; + height: 12em; + overflow-y: scroll; + white-space: pre-wrap; + font-size: small; + font-family: "Lucida Console", Monaco, monospace; + } + </style> + +</head> +<body> + <div id="container"> + <canvas id="canvas" width="640" height="480" onclick="canvas.ownerDocument.defaultView.focus();" oncontextmenu="event.preventDefault();"> + HTML5 canvas appears to be unsupported in the current browser.<br /> + Please try updating or use a different browser. + </canvas> + <div id="status-container"> + <span id="status" class="godot" onclick="this.style.visibility='hidden';">Downloading page...</span> + </div> + </div> + <div id="output-panel" class="godot"> + <div id="output-header"> + Output: + <button class="godot" type="button" autocomplete="off" onclick="Presentation.clearOutput();">Clear</button> + </div> + <div id="output-container"><div id="output-scroll"></div></div> + </div> + + <!-- Scripts --> + <script type="text/javascript">//<![CDATA[ + var Presentation = (function() { + var statusElement = document.getElementById("status"); + var canvasElement = document.getElementById("canvas"); + + var presentation = { + postRun: [], + setStatusVisible: function setStatusVisible(visible) { + statusElement.style.visibility = (visible ? "visible" : "hidden"); + }, + setStatus: function setStatus(text) { + if (text.length === 0) { + // emscripten sets empty string as status after "Running..." + // per timeout, but another status may have been set by then + if (Presentation.setStatus.lastText === "Running...") + Presentation.setStatusVisible(false); + return; + } + Presentation.setStatus.lastText = text; + while (statusElement.lastChild) { + statusElement.removeChild(statusElement.lastChild); + } + var lines = text.split("\n"); + lines.forEach(function(line, index) { + statusElement.appendChild(document.createTextNode(line)); + statusElement.appendChild(document.createElement("br")); + }); + var closeNote = document.createElement("span"); + closeNote.style.fontSize = "small"; + closeNote.textContent = "click to close"; + statusElement.appendChild(closeNote); + Presentation.setStatusVisible(true); + }, + isWebGL2Available: function isWebGL2Available() { + var context; + try { + context = canvasElement.getContext("webgl2") || canvasElement.getContext("experimental-webgl2"); + } catch (e) {} + return !!context; + }, + }; + + window.onerror = function(event) { presentation.setStatus("Failure during start-up\nSee JavaScript console") }; + + if (true) { // debugging enabled + var outputRoot = document.getElementById("output-panel"); + var outputElement = document.getElementById("output-scroll"); + const maxOutputMessages = 400; + + presentation.setOutputVisible = function setOutputVisible(visible) { + outputRoot.style.display = (visible ? "block" : "none"); + }; + presentation.clearOutput = function clearOutput() { + while (outputElement.firstChild) { + outputElement.firstChild.remove(); + } + }; + + presentation.setOutputVisible(true); + + presentation.print = function print(text) { + if (arguments.length > 1) { + text = Array.prototype.slice.call(arguments).join(" "); + } + if (text.length <= 0) return; + while (outputElement.childElementCount >= maxOutputMessages) { + outputElement.firstChild.remove(); + } + var msg = document.createElement("div"); + if (String.prototype.trim.call(text).startsWith("**ERROR**") + || String.prototype.trim.call(text).startsWith("**EXCEPTION**")) { + msg.style.color = "#d44"; + } else if (String.prototype.trim.call(text).startsWith("**WARNING**")) { + msg.style.color = "#ccc000"; + } else if (String.prototype.trim.call(text).startsWith("**SCRIPT ERROR**")) { + msg.style.color = "#c6d"; + } + msg.textContent = text; + var scrollToBottom = outputElement.scrollHeight - (outputElement.clientHeight + outputElement.scrollTop) < 10; + outputElement.appendChild(msg); + if (scrollToBottom) { + outputElement.scrollTop = outputElement.scrollHeight; + } + }; + + presentation.postRun.push(function() { + window.onerror = function(event) { presentation.print("**EXCEPTION**:", event) }; + }); + + } else { + presentation.postRun.push(function() { window.onerror = null; }); + } + + return presentation; + })(); + + // Emscripten interface + var Module = (function() { + const BASE_NAME = 'index'; + var module = { + thisProgram: BASE_NAME, + wasmBinaryFile: BASE_NAME + '.wasm', + TOTAL_MEMORY: 536870912, + print: function print(text) { + if (arguments.length > 1) { + text = Array.prototype.slice.call(arguments).join(" "); + } + console.log(text); + if (typeof Presentation !== "undefined" && typeof Presentation.print === "function") { + Presentation.print(text); + } + }, + printErr: function printErr(text) { + if (arguments.length > 1) { + text = Array.prototype.slice.call(arguments).join(" "); + } + console.error(text); + if (typeof Presentation !== "undefined" && typeof Presentation.print === "function") { + Presentation.print("**ERROR**:", text) + } + }, + canvas: document.getElementById("canvas"), + setStatus: function setStatus(text) { + var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/); + var now = Date.now(); + if (m) { + if (now - Date.now() < 30) // if this is a progress update, skip it if too soon + return; + text = m[1]; + } + if (typeof Presentation !== "undefined" && typeof Presentation.setStatus == "function") { + Presentation.setStatus(text); + } + } + }; + + // As a default initial behavior, pop up an alert when WebGL context is lost. To make your + // application robust, you may want to override this behavior before shipping! + // See http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.2 + module.canvas.addEventListener("webglcontextlost", function(e) { alert("WebGL context lost. Plase reload the page."); e.preventDefault(); }, false); + + if (typeof Presentation !== "undefined" && Presentation.postRun instanceof Array) { + module.postRun = Presentation.postRun; + } + + return module; + })(); + + if (!Presentation.isWebGL2Available()) { + Presentation.setStatus("WebGL 2 appears to be unsupported.\nPlease update browser and drivers."); + Presentation.preventLoading = true; + } else { + Presentation.setStatus("Downloading..."); + } + + if (Presentation.preventLoading) { + // prevent *fs.js and Emscripten's SCRIPT placeholder from loading any files + Presentation._XHR_send = XMLHttpRequest.prototype.send; + XMLHttpRequest.prototype.send = function() {}; + Presentation._Node_appendChild = Node.prototype.appendChild; + Node.prototype.appendChild = function(node) { + if (!(node instanceof HTMLScriptElement)) { + return Presentation._Node_appendChild.call(this, node); + } + } + } + //]]></script> + <script type="text/javascript" src="indexfs.js"></script> +<script> + + var script = document.createElement('script'); + script.src = "index.asm.js"; + script.onload = function() { + setTimeout(function() { + + (function() { + var memoryInitializer = 'index.mem'; + if (typeof Module['locateFile'] === 'function') { + memoryInitializer = Module['locateFile'](memoryInitializer); + } else if (Module['memoryInitializerPrefixURL']) { + memoryInitializer = Module['memoryInitializerPrefixURL'] + memoryInitializer; + } + var meminitXHR = Module['memoryInitializerRequest'] = new XMLHttpRequest(); + meminitXHR.open('GET', memoryInitializer, true); + meminitXHR.responseType = 'arraybuffer'; + meminitXHR.send(null); + })(); + + var script = document.createElement('script'); + script.src = "index.js"; + document.body.appendChild(script); + + }, 1); // delaying even 1ms is enough to allow compilation memory to be reclaimed + }; + document.body.appendChild(script); + +</script> + <script type="text/javascript"> + if (Presentation.preventLoading) { + XMLHttpRequest.prototype.send = Presentation._XHR_send; + Node.prototype.appendChild = Presentation._Node_appendChild; + } + </script> +</body> +</html> + |
