-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstats.js
23 lines (23 loc) · 4.96 KB
/
stats.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// stats.js r6 - http://github.com/mrdoob/stats.js
var Stats = function () {
function s(a, g, d) { var f, c, e; for (c = 0; c < 30; c++)for (f = 0; f < 73; f++)e = (f + c * 74) * 4, a[e] = a[e + 4], a[e + 1] = a[e + 5], a[e + 2] = a[e + 6]; for (c = 0; c < 30; c++)e = (73 + c * 74) * 4, c < g ? (a[e] = b[d].bg.r, a[e + 1] = b[d].bg.g, a[e + 2] = b[d].bg.b) : (a[e] = b[d].fg.r, a[e + 1] = b[d].fg.g, a[e + 2] = b[d].fg.b) } var r = 0, t = 2, g, u = 0, j = (new Date).getTime(), F = j, v = j, l = 0, w = 1E3, x = 0, k, d, a, m, y, n = 0, z = 1E3, A = 0, f, c, o, B, p = 0, C = 1E3, D = 0, h, i, q, E, b = {
fps: { bg: { r: 16, g: 16, b: 48 }, fg: { r: 0, g: 255, b: 255 } }, ms: { bg: { r: 16, g: 48, b: 16 }, fg: { r: 0, g: 255, b: 0 } }, mb: {
bg: {
r: 48, g: 16,
b: 26
}, fg: { r: 255, g: 0, b: 128 }
}
}; g = document.createElement("div"); g.style.cursor = "pointer"; g.style.width = "80px"; g.style.opacity = "0.9"; g.style.zIndex = "10001"; g.addEventListener("click", function () { r++; r == t && (r = 0); k.style.display = "none"; f.style.display = "none"; h.style.display = "none"; switch (r) { case 0: k.style.display = "block"; break; case 1: f.style.display = "block"; break; case 2: h.style.display = "block" } }, !1); k = document.createElement("div"); k.style.backgroundColor = "rgb(" + Math.floor(b.fps.bg.r / 2) + "," + Math.floor(b.fps.bg.g /
2) + "," + Math.floor(b.fps.bg.b / 2) + ")"; k.style.padding = "2px 0px 3px 0px"; g.appendChild(k); d = document.createElement("div"); d.style.fontFamily = "Helvetica, Arial, sans-serif"; d.style.textAlign = "left"; d.style.fontSize = "9px"; d.style.color = "rgb(" + b.fps.fg.r + "," + b.fps.fg.g + "," + b.fps.fg.b + ")"; d.style.margin = "0px 0px 1px 3px"; d.innerHTML = '<span style="font-weight:bold">FPS</span>'; k.appendChild(d); a = document.createElement("canvas"); a.width = 74; a.height = 30; a.style.display = "block"; a.style.marginLeft = "3px"; k.appendChild(a);
m = a.getContext("2d"); m.fillStyle = "rgb(" + b.fps.bg.r + "," + b.fps.bg.g + "," + b.fps.bg.b + ")"; m.fillRect(0, 0, a.width, a.height); y = m.getImageData(0, 0, a.width, a.height); f = document.createElement("div"); f.style.backgroundColor = "rgb(" + Math.floor(b.ms.bg.r / 2) + "," + Math.floor(b.ms.bg.g / 2) + "," + Math.floor(b.ms.bg.b / 2) + ")"; f.style.padding = "2px 0px 3px 0px"; f.style.display = "none"; g.appendChild(f); c = document.createElement("div"); c.style.fontFamily = "Helvetica, Arial, sans-serif"; c.style.textAlign = "left"; c.style.fontSize =
"9px"; c.style.color = "rgb(" + b.ms.fg.r + "," + b.ms.fg.g + "," + b.ms.fg.b + ")"; c.style.margin = "0px 0px 1px 3px"; c.innerHTML = '<span style="font-weight:bold">MS</span>'; f.appendChild(c); a = document.createElement("canvas"); a.width = 74; a.height = 30; a.style.display = "block"; a.style.marginLeft = "3px"; f.appendChild(a); o = a.getContext("2d"); o.fillStyle = "rgb(" + b.ms.bg.r + "," + b.ms.bg.g + "," + b.ms.bg.b + ")"; o.fillRect(0, 0, a.width, a.height); B = o.getImageData(0, 0, a.width, a.height); try {
performance && performance.memory && performance.memory.totalJSHeapSize &&
(t = 3)
} catch (G) { } h = document.createElement("div"); h.style.backgroundColor = "rgb(" + Math.floor(b.mb.bg.r / 2) + "," + Math.floor(b.mb.bg.g / 2) + "," + Math.floor(b.mb.bg.b / 2) + ")"; h.style.padding = "2px 0px 3px 0px"; h.style.display = "none"; g.appendChild(h); i = document.createElement("div"); i.style.fontFamily = "Helvetica, Arial, sans-serif"; i.style.textAlign = "left"; i.style.fontSize = "9px"; i.style.color = "rgb(" + b.mb.fg.r + "," + b.mb.fg.g + "," + b.mb.fg.b + ")"; i.style.margin = "0px 0px 1px 3px"; i.innerHTML = '<span style="font-weight:bold">MB</span>';
h.appendChild(i); a = document.createElement("canvas"); a.width = 74; a.height = 30; a.style.display = "block"; a.style.marginLeft = "3px"; h.appendChild(a); q = a.getContext("2d"); q.fillStyle = "#301010"; q.fillRect(0, 0, a.width, a.height); E = q.getImageData(0, 0, a.width, a.height); return {
domElement: g, update: function () {
u++; j = (new Date).getTime(); n = j - F; z = Math.min(z, n); A = Math.max(A, n); s(B.data, Math.min(30, 30 - n / 200 * 30), "ms"); c.innerHTML = '<span style="font-weight:bold">' + n + " MS</span> (" + z + "-" + A + ")"; o.putImageData(B, 0, 0); F = j; if (j >
v + 1E3) { l = Math.round(u * 1E3 / (j - v)); w = Math.min(w, l); x = Math.max(x, l); s(y.data, Math.min(30, 30 - l / 100 * 30), "fps"); d.innerHTML = '<span style="font-weight:bold">' + l + " FPS</span> (" + w + "-" + x + ")"; m.putImageData(y, 0, 0); if (t == 3) p = performance.memory.usedJSHeapSize * 9.54E-7, C = Math.min(C, p), D = Math.max(D, p), s(E.data, Math.min(30, 30 - p / 2), "mb"), i.innerHTML = '<span style="font-weight:bold">' + Math.round(p) + " MB</span> (" + Math.round(C) + "-" + Math.round(D) + ")", q.putImageData(E, 0, 0); v = j; u = 0 }
}
}
};