(function(){
console.log('Responsive WebGL Template by SIMMER.io v2019.02.08');
console.log('Available at: https://assetstore.unity.com/packages/tools/gui/responsive-webgl-template-117308 for free!');
console.log('Host your WebGL Game at SIMMER.io for free!');
const q = (selector) => document.querySelector(selector);
const gameContainer = q('#gameContainer');
const initialDimensions = {width: parseInt(gameContainer.style.width, 10), height: parseInt(gameContainer.style.height, 10)};
gameContainer.style.width = '100%';
gameContainer.style.height = '100%';
let gCanvasElement = null;
const getCanvasFromMutationsList = (mutationsList) => {
for (let mutationItem of mutationsList){
for (let addedNode of mutationItem.addedNodes){
if (addedNode.id === '#canvas'){
return addedNode;
}
}
}
return null;
}
const setDimensions = () => {
gameContainer.style.position = 'absolute';
gCanvasElement.style.display = 'none';
var winW = parseInt(window.getComputedStyle(gameContainer).width, 10);
var winH = parseInt(window.getComputedStyle(gameContainer).height, 10);
var scale = Math.min(winW / initialDimensions.width, winH / initialDimensions.height);
gCanvasElement.style.display = '';
gCanvasElement.style.width = 'auto';
gCanvasElement.style.height = 'auto';
var fitW = Math.round(initialDimensions.width * scale * 100) / 100;
var fitH = Math.round(initialDimensions.height * scale * 100) / 100;
gCanvasElement.setAttribute('width', fitW);
gCanvasElement.setAttribute('height', fitH);
}
window.setDimensions = setDimensions;
const registerCanvasWatcher = () => {
let debounceTimeout = null;
const debouncedSetDimensions = () => {
if (debounceTimeout !== null) {
clearTimeout(debounceTimeout);
}
debounceTimeout = setTimeout(setDimensions, 200);
}
window.addEventListener('resize', debouncedSetDimensions, false);
setDimensions();
}
window.UnityLoader.Error.handler = function () { }
const i = 0;
new MutationObserver(function (mutationsList) {
const canvas = getCanvasFromMutationsList(mutationsList)
if (canvas){
gCanvasElement = canvas;
registerCanvasWatcher();
new MutationObserver(function (attributesMutation) {
this.disconnect();
setTimeout(setDimensions, 1)
q('.simmer').classList.add('hide');
}).observe(canvas, {attributes:true});
this.disconnect();
}
}).observe(gameContainer, {childList:true});
})();