mirror of
https://github.com/Ellpeck/MLEM.git
synced 2024-11-14 18:19:09 +01:00
112 lines
4.8 KiB
HTML
112 lines
4.8 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html>
|
|||
|
|
|||
|
<head>
|
|||
|
<meta charset="utf-8" />
|
|||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
|||
|
<title>MLEM Web Demos</title>
|
|||
|
<base href="./" />
|
|||
|
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
|
|||
|
<link href="css/app.css" rel="stylesheet" />
|
|||
|
<link href="Demos.Web.styles.css" rel="stylesheet" />
|
|||
|
</head>
|
|||
|
|
|||
|
<body>
|
|||
|
|
|||
|
<div id="app">
|
|||
|
<div id="loading" style="display: table-cell; margin: auto; width:100vw; height:100vh; vertical-align: middle; background: #ffcc10;">
|
|||
|
<div style="display: block; margin: auto; width: 9em; color: white;font-family: 'Segoe UI', sans-serif;">
|
|||
|
<div style="text-align: center; font-size: 0.85em;">Made with<br/><a href="https://github.com/kniEngine/kni"><img src="kni.png" border="0" alt="Kni"></a></div>
|
|||
|
<div style="text-align: center; font-size: 1.8em;">loading <marquee style="width:0.9em; vertical-align: bottom;">. . . </marquee></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div id="blazor-error-ui">
|
|||
|
An unhandled error has occurred.
|
|||
|
<a href="" class="reload">Reload</a>
|
|||
|
<a class="dismiss">?</a>
|
|||
|
</div>
|
|||
|
|
|||
|
<script src="_framework/blazor.webassembly.js" autostart="false"></script>
|
|||
|
<script type="module">
|
|||
|
import { BrotliDecode } from './js/decode.min.js';
|
|||
|
// Set this to enable Brotli (.br) decompression on static webServers
|
|||
|
// that don't support content compression and http://.
|
|||
|
var enableBrotliDecompression = false;
|
|||
|
Blazor.start({
|
|||
|
loadBootResource: function (type, name, defaultUri, integrity)
|
|||
|
{
|
|||
|
if (enableBrotliDecompression === true && type !== 'dotnetjs' && location.hostname !== 'localhost')
|
|||
|
{
|
|||
|
return (async function()
|
|||
|
{
|
|||
|
const response = await fetch(defaultUri + '.br', { cache: 'no-cache' });
|
|||
|
if (!response.ok)
|
|||
|
throw new Error(response.statusText);
|
|||
|
const originalResponseBuffer = await response.arrayBuffer();
|
|||
|
const originalResponseArray = new Int8Array(originalResponseBuffer);
|
|||
|
const contentType = (type === 'dotnetwasm')
|
|||
|
? 'application/wasm'
|
|||
|
: 'application/octet-stream';
|
|||
|
const decompressedResponseArray = BrotliDecode(originalResponseArray);
|
|||
|
return new Response(decompressedResponseArray,
|
|||
|
{ headers: { 'content-type': contentType }
|
|||
|
});
|
|||
|
})();
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
</script>
|
|||
|
|
|||
|
<script src="_content/nkast.Wasm.Dom/js/JSObject.8.0.1.js"></script>
|
|||
|
<script src="_content/nkast.Wasm.Dom/js/Window.8.0.1.js"></script>
|
|||
|
<script src="_content/nkast.Wasm.Dom/js/Document.8.0.1.js"></script>
|
|||
|
<script src="_content/nkast.Wasm.Dom/js/Navigator.8.0.1.js"></script>
|
|||
|
<script src="_content/nkast.Wasm.Dom/js/Gamepad.8.0.1.js"></script>
|
|||
|
<script src="_content/nkast.Wasm.Dom/js/Media.8.0.1.js"></script>
|
|||
|
<script src="_content/nkast.Wasm.XHR/js/XHR.8.0.1.js"></script>
|
|||
|
<script src="_content/nkast.Wasm.Canvas/js/Canvas.8.0.1.js"></script>
|
|||
|
<script src="_content/nkast.Wasm.Canvas/js/CanvasGLContext.8.0.1.js"></script>
|
|||
|
<script src="_content/nkast.Wasm.Audio/js/Audio.8.0.1.js"></script>
|
|||
|
|
|||
|
<script>
|
|||
|
function tickJS()
|
|||
|
{
|
|||
|
window.theInstance.invokeMethod('TickDotNet');
|
|||
|
window.requestAnimationFrame(tickJS);
|
|||
|
}
|
|||
|
|
|||
|
window.initRenderJS = (instance) =>
|
|||
|
{
|
|||
|
window.theInstance = instance;
|
|||
|
|
|||
|
// set initial canvas size
|
|||
|
var canvas = document.getElementById('theCanvas');
|
|||
|
var holder = document.getElementById('canvasHolder');
|
|||
|
canvas.width = holder.clientWidth;
|
|||
|
canvas.height = holder.clientHeight;
|
|||
|
// disable context menu on right click
|
|||
|
canvas.addEventListener("contextmenu", e => e.preventDefault());
|
|||
|
|
|||
|
// begin game loop
|
|||
|
window.requestAnimationFrame(tickJS);
|
|||
|
};
|
|||
|
|
|||
|
window.onkeydown = function(event)
|
|||
|
{
|
|||
|
// Prevent Arrows Keys and Spacebar scrolling the outer page
|
|||
|
// when running inside an iframe. e.g: itch.io embedding.
|
|||
|
if ([32, 37, 38, 39, 40].indexOf(event.keyCode) > -1)
|
|||
|
event.preventDefault();
|
|||
|
};
|
|||
|
window.onmousewheel = function(event)
|
|||
|
{
|
|||
|
// Prevent Mousewheel scrolling the outer page
|
|||
|
// when running inside an iframe. e.g: itch.io embedding.
|
|||
|
event.preventDefault();
|
|||
|
};
|
|||
|
</script>
|
|||
|
</body>
|
|||
|
|
|||
|
</html>
|