<!doctype html> <html lang="en-us"> <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name=viewport content="width=device-width, initial-scale=1"> <title>FTE QuakeWorld</title> <style> html,body { background-color:#000000; color:#808080; height:100%;width:100%;margin:0;padding:0;} .emscripten { padding-right: 0; margin-left: auto; margin-right: auto; display: block; } div.emscripten { text-align: center; padding:0; margin: 0;} div.emscripten_border { padding:0; margin: 0; width:100%; height: 100%;} /* the canvas *must not* have any border or padding, or mouse coords will be wrong */ canvas.emscripten { border: 0px none; width:100%; height:100%; padding:0; margin: 0;} </style> </head> <body> <div class="emscripten" id="status">Is javascript enabled?</div> <div class="emscripten"> <progress value="0" max="100" id="progress" hidden=1></progress> </div> <div class="emscripten_border"> <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas> </div> <script type='text/javascript'> // connect to canvas var Module = { // preRun: [], postRun: [function() { if (Module["sched"] === undefined) //if this happens then our main function failed to set up the main loop. ie: main didn't get called. alert("Unable to initialise. You may need to restart your browser. If you get this often and inconsistently, consider using a 64bit browser instead."); }], print: function(msg) { console.log(msg); }, printErr: function(text) { //this is infuriating as hell. //emscripten is a piece of shit for actual released work. if (text.substr(0, 28) == "Cannot enlarge memory arrays") alert("Memory full/fragmented. Please reload the page."); else console.log(text); }, canvas: document.getElementById('canvas'), setStatus: function(text) { if (Module.setStatus.interval) clearInterval(Module.setStatus.interval); var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/); var statusElement = document.getElementById('status'); var progressElement = document.getElementById('progress'); if (m) { text = m[1]; progressElement.value = parseInt(m[2])*100; progressElement.max = parseInt(m[4])*100; progressElement.hidden = false; } else { progressElement.value = null; progressElement.max = null; progressElement.hidden = true; } statusElement.innerHTML = text; }, totalDependencies: 0, monitorRunDependencies: function(left) { this.totalDependencies = Math.max(this.totalDependencies, left); Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.'); } }; Module.setStatus('Downloading...'); // make a script var s = document.createElement('script'); // set it up s.setAttribute('src',"ftewebgl.js"); s.setAttribute('type',"text/javascript"); s.setAttribute('charset',"utf-8"); s.addEventListener('error', function() {alert("Oh noes! we got an error!");}, false); // add to DOM document.head.appendChild(s); </script> </body> </html>