115 lines
4.9 KiB
HTML
115 lines
4.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-us">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>Unity WebGL Player | Benchmarks</title>
|
|
<link rel="shortcut icon" href="TemplateData/favicon.ico">
|
|
<link rel="stylesheet" href="TemplateData/style.css">
|
|
<script src="TemplateData/UnityProgress.js"></script>
|
|
<!-- <script src="Build/04cfd823429f9d23bbb0a65451607432.js"></script> -->
|
|
<script src="TemplateData/UnityLoader.js"></script>
|
|
<script src="TemplateData/Timer.js"></script>
|
|
<script src="TemplateData/UI.js"></script>
|
|
<script src="TemplateData/Stats.js"></script>
|
|
<script>
|
|
var timeToScreen = new Timer("Time to Screen");
|
|
var timeToInteractive = new Timer("Time to Interactive");
|
|
Stats.Loading.timers.push(timeToScreen, timeToInteractive);
|
|
var gameInstance = UnityLoader.instantiate("gameContainer", "Build/b902fbf38adfeb66aff351adf71388a1.json", {
|
|
onProgress: UnityProgress,
|
|
compatibilityCheck: function (gameInstance, onsuccess, onerror) {
|
|
if (!UnityLoader.SystemInfo.hasWebGL) {
|
|
gameInstance.popup("Your browser does not support WebGL",
|
|
[{text: "OK", callback: onerror}]);
|
|
} else if (["Edge", "Firefox", "Chrome", "Safari"].indexOf(UnityLoader.SystemInfo.browser) == -1) {
|
|
gameInstance.popup("Please note that your browser is not currently supported for this Unity WebGL content. Press OK if you wish to continue anyway.",
|
|
[{text: "OK", callback: onsuccess}]);
|
|
} else {
|
|
UI.init(document.body, function(){
|
|
Stats.Loading.term();
|
|
});
|
|
Stats.Loading.init(gameInstance.Module);
|
|
onsuccess();
|
|
}
|
|
},
|
|
Module : {
|
|
cacheControl: {"default": "immutable"},
|
|
wasmRequest: function (wasmInstantiate, callback) {
|
|
var wasmInstantiation = null;
|
|
if (this.wasmCache) {
|
|
this.wasmCache.request = {
|
|
wasmInstantiate: function(moduleOrBinary){
|
|
return new Promise(function(success){
|
|
wasmInstantiation = new Timer("WebAssembly Instantiation");
|
|
Stats.Loading.timers.push(wasmInstantiation);
|
|
wasmInstantiate(moduleOrBinary).then(function(result){
|
|
wasmInstantiation.stop();
|
|
success(result);
|
|
});
|
|
});
|
|
},
|
|
callback: callback
|
|
};
|
|
this.wasmCache.update();
|
|
} else {
|
|
wasmInstantiation = new Timer("WebAssembly Instantiation");
|
|
Stats.Loading.timers.push(wasmInstantiation);
|
|
wasmInstantiate(this.wasmBinary).then(function (result) {
|
|
wasmInstantiation.stop();
|
|
callback(result.instance);
|
|
});
|
|
}
|
|
},
|
|
onRuntimeInitialized: function () {
|
|
Module = this;
|
|
var engineInitialization = new Timer("Engine Initialization");
|
|
Stats.Loading.timers.push(engineInitialization);
|
|
Stats.Memory.init(Module.TOTAL_MEMORY);
|
|
Module.postRun.unshift(function () {
|
|
var savedReallocBuffer = Module.reallocBuffer;
|
|
Module.reallocBuffer = function(size) {
|
|
var retValue = savedReallocBuffer(size);
|
|
// TODO: notify runtime about heap resize
|
|
return retValue;
|
|
}
|
|
engineInitialization.stop();
|
|
});
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
</head>
|
|
<body style="background-color: black">
|
|
<div class="webgl-content">
|
|
<div id="gameContainer" style="width: 1280px; height: 720px"></div>
|
|
</div>
|
|
<script>
|
|
var startLoadingTime = Date.now();
|
|
var timeToLoad = 0;
|
|
var timeToStableFPS = 0;
|
|
var lastFrame = 0;
|
|
function SampleFrame() {
|
|
var curTime = Date.now();
|
|
if (timeToLoad == 0) {
|
|
timeToLoad = curTime - startLoadingTime;
|
|
timeToScreen.stop();
|
|
console.log ("Loading took " + timeToLoad + "ms");
|
|
|
|
// LoadingTimes.element.innerText += "\nTime to first frame: " + (curTime - LoadingTimes.wasmDownloadEndTime);
|
|
}
|
|
if (timeToStableFPS == 0) {
|
|
var frameTime = curTime - lastFrame;
|
|
if (frameTime < 55) {
|
|
timeToStableFPS = curTime - startLoadingTime - timeToLoad;
|
|
timeToInteractive.stop();
|
|
Stats.Loading.term();
|
|
console.log ("Stabilizing took " + timeToStableFPS + "ms");
|
|
// LoadingTimes.element.innerText += "\nTime to interactive: " + (curTime - LoadingTimes.wasmDownloadEndTime);
|
|
}
|
|
lastFrame = curTime;
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|
|
</html> |