|
2134 | 2134 | })(); |
2135 | 2135 | (() => { |
2136 | 2136 | function _() { |
2137 | | - let u = 0, a = true, i = document.createElement("div"), s = [], l = () => (performance || Date).now(); |
2138 | | - i.style.cssText = "position:absolute;top:0;right:0;cursor:pointer;opacity:0.8;z-index:10000", i.addEventListener("click", function(e) { |
2139 | | - e.preventDefault(), m(++u % i.children.length); |
| 2137 | + let i = 0, t = true, l = document.createElement("div"), s = [], u = () => (performance || Date).now(); |
| 2138 | + l.style.cssText = "position:absolute;top:0;right:0;cursor:pointer;opacity:0.8;z-index:10000", l.addEventListener("click", function(e) { |
| 2139 | + e.preventDefault(), m(++i % l.children.length); |
2140 | 2140 | }, false); |
2141 | | - function o(e, r, x, t) { |
2142 | | - let g = new T(e, r, x, i, t); |
2143 | | - return s.push(g), g; |
| 2141 | + function o(e, r, x, a) { |
| 2142 | + let w = new T(e, r, x, l, a); |
| 2143 | + return s.push(w), w; |
2144 | 2144 | } |
2145 | 2145 | function m(e) { |
2146 | | - for (let r = 0; r < i.children.length; r++) i.children[r].style.display = r === e ? "block" : "none"; |
2147 | | - u = e; |
| 2146 | + for (let r = 0; r < l.children.length; r++) l.children[r].style.display = r === e ? "block" : "none"; |
| 2147 | + i = e; |
2148 | 2148 | } |
2149 | | - function f() { |
2150 | | - u++, u >= i.children.length && (u = 0), m(u); |
| 2149 | + function p() { |
| 2150 | + i++, i >= l.children.length && (i = 0), m(i); |
2151 | 2151 | } |
2152 | 2152 | function n(e = "all") { |
2153 | 2153 | if (e === "all") for (let r = 0; r < s.length; r++) s[r].reset(); |
2154 | 2154 | else s[e] && s[e].reset(); |
2155 | | - h = l(), y = 0; |
| 2155 | + v = u(), h = 0; |
2156 | 2156 | } |
2157 | | - function w(e = true) { |
2158 | | - a = !!e, i.style.display = a ? "" : "none"; |
| 2157 | + function y(e = true) { |
| 2158 | + t = !!e, l.style.display = t ? "" : "none"; |
2159 | 2159 | } |
2160 | | - let b = l(), h = b, y = 0, d = o("FPS", "#0ff", "#002"), c = o("MS", "#0f0", "#020"), p; |
2161 | | - return self.performance && self.performance.memory && (p = o("MB", "#f08", "#201")), m(0), { dom: i, addPanel: o, showPanel: m, nextPanel: f, resetPanel: n, display: w, get hidden() { |
2162 | | - return !a; |
| 2160 | + let b = u(), v = b, h = 0, d = o("FPS", "#0ff", "#002"), f = o("MS", "#0f0", "#020"), c; |
| 2161 | + return self.performance && self.performance.memory && (c = o("MB", "#f08", "#201")), m(0), { dom: l, addPanel: o, showPanel: m, nextPanel: p, resetPanel: n, display: y, get hidden() { |
| 2162 | + return !t; |
2163 | 2163 | }, begin: function() { |
2164 | | - b = l(); |
| 2164 | + b = u(); |
2165 | 2165 | }, end: function() { |
2166 | | - y++; |
2167 | | - let e = l(); |
2168 | | - if (c.update(e - b, 200), e >= h + 1e3 && (d.update(y * 1e3 / (e - h), 100), h = e, y = 0, p)) { |
| 2166 | + h++; |
| 2167 | + let e = u(); |
| 2168 | + if (f.update(e - b, 200), e >= v + 1e3 && (d.update(h * 1e3 / (e - v), 100), v = e, h = 0, c)) { |
2169 | 2169 | let r = performance.memory; |
2170 | | - p.update(r.usedJSHeapSize / 1048576, r.jsHeapSizeLimit / 1048576); |
| 2170 | + c.update(r.usedJSHeapSize / 1048576, r.jsHeapSizeLimit / 1048576); |
2171 | 2171 | } |
2172 | 2172 | return e; |
2173 | 2173 | }, update: function() { |
2174 | 2174 | b = this.end(); |
2175 | 2175 | } }; |
2176 | 2176 | } |
2177 | | - function T(u, a, i, s, l = {}) { |
2178 | | - let o = Math.round, m = 1 / 0, f = 0, n = o(window.devicePixelRatio || 1), w = l.width || 80, b = 48, h = 3 * n, y = 2 * n, d = 3 * n, c = 15 * n, p = (w - 6) * n, e = 30 * n, r = document.createElement("canvas"); |
2179 | | - r.width = w * n, r.height = b * n, r.style.cssText = `width:${l.width};height:48px`; |
| 2177 | + function T(i, t, l, s, u = {}) { |
| 2178 | + let o = Math.round, m = 1 / 0, p = 0, n = o(window.devicePixelRatio || 1), y = u.width || 80, b = 48, v = 3 * n, h = 2 * n, d = 3 * n, f = 15 * n, c = (y - 6) * n, e = 30 * n, r = document.createElement("canvas"); |
| 2179 | + r.width = y * n, r.height = b * n, r.style.cssText = `width:${u.width};height:48px`; |
2180 | 2180 | let x = s.children.length; |
2181 | 2181 | s.appendChild(r); |
2182 | | - let t = r.getContext("2d"); |
2183 | | - t.font = `bold ${9 * n}px Helvetica,Arial,sans-serif`, t.textBaseline = "top"; |
2184 | | - function g() { |
2185 | | - t.fillStyle = i, t.fillRect(0, 0, w * n, b * n), t.fillStyle = a, t.fillText(u, h, y), t.fillRect(d, c, p, e), t.fillStyle = i, t.globalAlpha = 0.9, t.fillRect(d, c, p, e); |
2186 | | - } |
2187 | | - return g(), { id: x, dom: r, reset: g, update: function(v, S) { |
2188 | | - m = Math.min(m, v), f = Math.max(f, v), t.fillStyle = i, t.globalAlpha = 1, t.fillRect(0, 0, w * n, c), t.fillStyle = a; |
2189 | | - let E = [o(v), u]; |
2190 | | - l.labelBefore && E.reverse(), t.fillText(E.join(" ") + " (" + o(m) + "-" + o(f) + ")", h, y), t.drawImage(r, d + n, c, p - n, e, d, c, p - n, e), t.fillRect(d + p - n, c, n, e), t.fillStyle = i, t.globalAlpha = 0.9, t.fillRect(d + p - n, c, n, o((1 - v / S) * e)); |
| 2182 | + let a = r.getContext("2d"); |
| 2183 | + a.font = `bold ${9 * n}px Helvetica,Arial,sans-serif`, a.textBaseline = "top"; |
| 2184 | + function w() { |
| 2185 | + a.fillStyle = l, a.fillRect(0, 0, y * n, b * n), a.fillStyle = t, a.fillText(i, v, h), a.fillRect(d, f, c, e), a.fillStyle = l, a.globalAlpha = 0.9, a.fillRect(d, f, c, e); |
| 2186 | + } |
| 2187 | + return w(), { id: x, dom: r, reset: w, update: function(g, S) { |
| 2188 | + m = Math.min(m, g), p = Math.max(p, g), a.fillStyle = l, a.globalAlpha = 1, a.fillRect(0, 0, y * n, f), a.fillStyle = t; |
| 2189 | + let E = [o(g), i]; |
| 2190 | + u.labelBefore && E.reverse(), a.fillText(E.join(" ") + " (" + o(m) + "-" + o(p) + ")", v, h), a.drawImage(r, d + n, f, c - n, e, d, f, c - n, e), a.fillRect(d + c - n, f, n, e), a.fillStyle = l, a.globalAlpha = 0.9, a.fillRect(d + c - n, f, n, o((1 - g / S) * e)); |
2191 | 2191 | } }; |
2192 | 2192 | } |
2193 | | - var P = { hotkeyShow: "F1", hotkeyNext: "F2", css: {}, hidden: false, id: "" }; |
2194 | | - function A(u, a = {}) { |
2195 | | - a = Object.assign({}, P, a); |
2196 | | - let i = u.stat(0), s = new _(), l = s.display, o = (m = true) => { |
2197 | | - a.hidden = !m, l(m), s.resetPanel(); |
| 2193 | + var k = { hotkeyShow: "F1", hotkeyNext: "F2", css: {}, hidden: false, id: "" }; |
| 2194 | + function A(i, t = {}) { |
| 2195 | + t = Object.assign({}, k, t); |
| 2196 | + let l = i.stat(0), s = new _(), u = s.display, o = (m = true) => { |
| 2197 | + t.hidden = !m, u(m), s.resetPanel(); |
2198 | 2198 | }; |
2199 | | - a.id && (s.dom.id = a.id); |
2200 | | - for (let [m, f] of Object.entries(a.css || {})) s.dom.style[m] = f; |
2201 | | - return u.canvas().parentElement.appendChild(s.dom), o(!a.hidden), i.keyboardEvents && listen("update", () => { |
2202 | | - a.hotkeyShow && u.iskeypressed(a.hotkeyShow) && o(a.hidden), a.hotkeyNext && u.iskeypressed(a.hotkeyNext) && s.nextPanel(); |
2203 | | - }), listen("before:update", (m, f = 1) => { |
2204 | | - a.hidden || f === 1 && s.begin(); |
2205 | | - }), listen("after:draw", () => { |
2206 | | - a.hidden || s.end(); |
2207 | | - }), listen("quit", () => { |
| 2199 | + t.id && (s.dom.id = t.id); |
| 2200 | + for (let [m, p] of Object.entries(t.css || {})) s.dom.style[m] = p; |
| 2201 | + return i.canvas().parentElement.appendChild(s.dom), o(!t.hidden), l.keyboardEvents && i.listen("update", () => { |
| 2202 | + t.hotkeyShow && i.iskeypressed(t.hotkeyShow) && o(t.hidden), t.hotkeyNext && i.iskeypressed(t.hotkeyNext) && s.nextPanel(); |
| 2203 | + }), i.listen("before:update", (m, p = 1) => { |
| 2204 | + t.hidden || p === 1 && s.begin(); |
| 2205 | + }), i.listen("after:draw", () => { |
| 2206 | + t.hidden || s.end(); |
| 2207 | + }), i.listen("quit", () => { |
2208 | 2208 | s.dom.remove(); |
2209 | 2209 | }), s.display = o, { FPS_METER: s }; |
2210 | 2210 | } |
|
0 commit comments