@galacean/effects-plugin-stats 2.0.3 → 2.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -2
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +9 -5
- package/dist/index.mjs.map +1 -1
- package/dist/monitor.d.ts +4 -3
- package/dist/stats-component.d.ts +3 -2
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Description: Galacean Effects runtime stats for the web
|
|
4
4
|
* Author: Ant Group CO., Ltd.
|
|
5
5
|
* Contributors: 云垣
|
|
6
|
-
* Version: v2.0.
|
|
6
|
+
* Version: v2.1.0-alpha.0
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
'use strict';
|
|
@@ -506,8 +506,8 @@ var Monitor = /*#__PURE__*/ function() {
|
|
|
506
506
|
this.core.release();
|
|
507
507
|
};
|
|
508
508
|
/**
|
|
509
|
-
*
|
|
510
|
-
*/ _proto.
|
|
509
|
+
* dispose the instance
|
|
510
|
+
*/ _proto.dispose = function dispose() {
|
|
511
511
|
this.release();
|
|
512
512
|
document.body.removeChild(this.container);
|
|
513
513
|
};
|
|
@@ -520,14 +520,18 @@ var StatsComponent = /*#__PURE__*/ function(Behaviour) {
|
|
|
520
520
|
return Behaviour.apply(this, arguments);
|
|
521
521
|
}
|
|
522
522
|
var _proto = StatsComponent.prototype;
|
|
523
|
-
_proto.
|
|
523
|
+
_proto.onStart = function onStart() {
|
|
524
524
|
var renderer = this.engine.renderer;
|
|
525
525
|
var gl = renderer.pipelineContext.gl;
|
|
526
526
|
this.monitor = new Monitor(gl);
|
|
527
527
|
};
|
|
528
|
-
_proto.
|
|
528
|
+
_proto.onUpdate = function onUpdate(dt) {
|
|
529
529
|
this.monitor.update(dt);
|
|
530
530
|
};
|
|
531
|
+
_proto.dispose = function dispose() {
|
|
532
|
+
Behaviour.prototype.dispose.call(this);
|
|
533
|
+
this.monitor.dispose();
|
|
534
|
+
};
|
|
531
535
|
return StatsComponent;
|
|
532
536
|
}(effects.Behaviour);
|
|
533
537
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_instanceof.js","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_inherits.js","../src/hooks/drawcall-hook.ts","../src/hooks/program-hook.ts","../src/hooks/shader-hook.ts","../src/hooks/texture-hook.ts","../src/core.ts","../src/monitor.ts","../src/stats-component.ts","../src/stats.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nexport function _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","export function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _set_prototype_of } from \"./_set_prototype_of.js\";\n\nexport function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","import { Stats } from '../stats';\n\n/**\n * DrawCallHook\n */\nexport default class DrawCallHook {\n drawCall = 0;\n triangles = 0;\n lines = 0;\n points = 0;\n\n private hooked = true;\n private readonly realDrawElements: (mode: number, count: number, type: number, offset: number) => void;\n private readonly realDrawArrays: (mode: number, first: number, count: number) => void;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realDrawElements = gl.drawElements;\n this.realDrawArrays = gl.drawArrays;\n\n gl.drawElements = this.hookedDrawElements.bind(this);\n gl.drawArrays = this.hookedDrawArrays.bind(this);\n\n if (Stats.options.debug) {\n console.debug('DrawCall is hooked.');\n }\n }\n\n private hookedDrawElements (mode: number, count: number, type: number, offset: number): void {\n this.realDrawElements.call(this.gl, mode, count, type, offset);\n this.update(count, mode);\n }\n\n private hookedDrawArrays (mode: number, first: number, count: number): void {\n this.realDrawArrays.call(this.gl, mode, first, count);\n this.update(count, mode);\n }\n\n private update (count: number, mode: number): void {\n const { gl } = this;\n\n this.drawCall++;\n\n switch (mode) {\n case gl.TRIANGLES:\n this.triangles += count / 3;\n\n break;\n case gl.TRIANGLE_STRIP:\n case gl.TRIANGLE_FAN:\n this.triangles += count - 2;\n\n break;\n case gl.LINES:\n this.lines += count / 2;\n\n break;\n case gl.LINE_STRIP:\n this.lines += count - 1;\n\n break;\n case gl.LINE_LOOP:\n this.lines += count;\n\n break;\n case gl.POINTS:\n this.points += count;\n\n break;\n default:\n console.error(`Unknown draw mode: ${mode}. Count: ${count}`);\n\n break;\n }\n }\n\n reset (): void {\n this.drawCall = 0;\n this.triangles = 0;\n this.lines = 0;\n this.points = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.drawElements = this.realDrawElements;\n this.gl.drawArrays = this.realDrawArrays;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ProgramHook\n * 每一帧的 shader 数量\n */\nexport default class ProgramHook {\n programs = 0;\n\n private readonly realUseProgram: (program: WebGLProgram | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realUseProgram = gl.useProgram;\n\n gl.useProgram = this.hookedUseProgram.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Program is hooked.');\n }\n }\n\n private hookedUseProgram (program: WebGLProgram): void {\n this.realUseProgram.call(this.gl, program);\n this.programs++;\n\n if (Stats.options.debug) {\n console.debug(`UseProgram: ${program}, program: ${this.programs}.`);\n }\n }\n\n reset (): void {\n this.programs = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.useProgram = this.realUseProgram;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ShaderHook\n */\nexport default class ShaderHook {\n shaders = 0;\n\n private readonly realAttachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private readonly realDetachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realAttachShader = gl.attachShader;\n this.realDetachShader = gl.detachShader;\n\n gl.attachShader = this.hookedAttachShader.bind(this);\n gl.detachShader = this.hookedDetachShader.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Shader is hooked.');\n }\n }\n\n private hookedAttachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realAttachShader.call(this.gl, program, shader);\n this.shaders++;\n\n if (Stats.options.debug) {\n console.debug(`AttachShader: ${shader}. shaders: ${this.shaders}`);\n }\n }\n\n private hookedDetachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realDetachShader.call(this.gl, program, shader);\n this.shaders--;\n\n if (Stats.options.debug) {\n console.debug(`DetachShader. shaders: ${this.shaders}`);\n }\n }\n\n reset (): void {\n this.shaders = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.attachShader = this.realAttachShader;\n this.gl.detachShader = this.realDetachShader;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * TextureHook\n */\nexport default class TextureHook {\n textures = 0;\n\n private readonly realCreateTexture: () => WebGLTexture | null;\n private readonly realDeleteTexture: (texture: WebGLTexture | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realCreateTexture = gl.createTexture;\n this.realDeleteTexture = gl.deleteTexture;\n\n gl.createTexture = this.hookedCreateTexture.bind(this);\n gl.deleteTexture = this.hookedDeleteTexture.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Texture is hooked.');\n }\n }\n\n private hookedCreateTexture (): WebGLTexture | null {\n const texture = this.realCreateTexture.call(this.gl);\n\n this.textures++;\n\n if (Stats.options.debug) {\n console.debug(`CreateTexture: ${texture}, textures: ${this.textures}.`);\n }\n\n return texture;\n }\n\n private hookedDeleteTexture (texture: WebGLTexture | null): void {\n this.realDeleteTexture.call(this.gl, texture);\n this.textures--;\n\n if (Stats.options.debug) {\n console.debug(`DeleteTexture, textures: ${this.textures}.`);\n }\n }\n\n reset (): void {\n this.textures = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.createTexture = this.realCreateTexture;\n this.gl.deleteTexture = this.realDeleteTexture;\n this.hooked = false;\n }\n }\n}\n","import DrawCallHook from './hooks/drawcall-hook';\nimport ProgramHook from './hooks/program-hook';\nimport ShaderHook from './hooks/shader-hook';\nimport TextureHook from './hooks/texture-hook';\n\ndeclare global {\n interface Performance {\n memory: any,\n }\n}\n\n/**\n * Hook gl to calculate stats\n */\nexport class Core {\n private drawCallHook: DrawCallHook;\n private textureHook: TextureHook;\n private shaderHook: ShaderHook;\n private samplingFrames = 60;\n private samplingIndex = 0;\n private updateCounter = 0;\n private updateTime = 0;\n private programHook: ProgramHook;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n if (!gl) {\n throw new Error('Unsupported WebGL context.');\n }\n this.hook(gl);\n }\n\n private hook (gl: WebGLRenderingContext | WebGL2RenderingContext): void {\n this.drawCallHook = new DrawCallHook(gl);\n this.textureHook = new TextureHook(gl);\n this.shaderHook = new ShaderHook(gl);\n this.programHook = new ProgramHook(gl);\n }\n\n /**\n * reset draw call hook\n */\n reset (): void {\n this.drawCallHook?.reset();\n this.programHook?.reset();\n }\n\n /**\n * release hook\n */\n release (): void {\n this.drawCallHook?.release();\n this.textureHook?.release();\n this.shaderHook?.release();\n this.programHook?.release();\n }\n\n /**\n * update performance data\n */\n update (dt: number): PerformanceData | undefined {\n const now = performance.now();\n\n this.updateCounter++;\n\n if (now - this.updateTime < 1000) {\n return undefined;\n }\n\n if (this.samplingIndex !== this.samplingFrames) {\n this.reset();\n this.samplingIndex++;\n\n return undefined;\n }\n\n this.samplingIndex = 0;\n\n const data: PerformanceData = {\n fps: Math.round((this.updateCounter * 1000) / (now - this.updateTime)),\n // eslint-disable-next-line compat/compat -- performance.memory is not standard\n memory: performance.memory && (performance.memory.usedJSHeapSize / 1048576) >> 0,\n drawCall: (this.drawCallHook.drawCall === 0) ? 0 : this.drawCallHook.drawCall - 1,\n triangles: (this.drawCallHook.triangles === 0) ? 0 : this.drawCallHook.triangles - 2,\n lines: this.drawCallHook.lines,\n points: this.drawCallHook.points,\n textures: this.textureHook.textures,\n shaders: (this.shaderHook.shaders === 0) ? 0 : this.shaderHook.shaders + 1,\n programs: this.programHook.programs,\n webglContext: this.gl instanceof WebGL2RenderingContext ? '2.0' : '1.0',\n };\n\n this.reset();\n\n this.updateCounter = 0;\n this.updateTime = now;\n\n return data;\n }\n}\n\nexport interface PerformanceData {\n fps: number,\n memory: number,\n drawCall: number,\n triangles: number,\n lines: number,\n points: number,\n textures: number,\n shaders: number,\n webglContext: string,\n programs: number,\n}\n","import type { PerformanceData } from './core';\nimport { Core } from './core';\n\nconst tpl = `\n <dl>\n <dt>FPS</dt>\n <dd>0</dd>\n <dt>Memory <span class=\"unit\">(MB)</span></dt>\n <dd>0</dd>\n <dt>DrawCall</dt>\n <dd>0</dd>\n <dt>Triangles</dt>\n <dd>0</dd>\n <dt>Textures</dt>\n <dd>0</dd>\n <dt>Shaders</dt>\n <dd>0</dd>\n <dt>Program</dt>\n <dd>0</dd>\n <dt>WebGL</dt>\n <dd></dd>\n </dl>\n`;\nconst css = `\n .gl-perf {\n pointer-events: none;\n user-select: none;\n position: fixed;\n top: 0;\n left: 0;\n padding: ${10 / 7.5}vh ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n background: rgba(0, 0, 0, 0.3);\n color: #fff;\n font: ${10 / 7.5}vh arial;\n }\n\n .gl-perf dl,\n .gl-perf dt,\n .gl-perf dd {\n padding: 0;\n margin: 0;\n }\n\n .gl-perf dt {\n color: #fff;\n text-shadow: #000 0 0 1px;\n }\n\n .gl-perf dt .unit{\n font-size: ${10 / 7.5}vh;\n }\n\n .gl-perf dd {\n font-size: ${20 / 7.5}vh;\n padding: ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n }\n`;\n\nexport class Monitor {\n private core: Core;\n private doms: HTMLElement[];\n private container: HTMLElement;\n private readonly items = ['fps', 'memory', 'drawCall', 'triangles', 'textures', 'shaders', 'programs', 'webglContext'];\n\n private data: PerformanceData = {\n fps: 60,\n memory: 0,\n drawCall: 0,\n triangles: 0,\n lines: 0,\n points: 0,\n textures: 0,\n shaders: 0,\n programs: 0,\n webglContext: '2.0',\n };\n\n constructor (gl: WebGLRenderingContext | WebGL2RenderingContext) {\n this.core = new Core(gl);\n\n this.createContainer();\n this.update = this.update.bind(this);\n }\n\n private createContainer (): void {\n const container = document.createElement('div');\n\n container.classList.add('gl-perf');\n container.innerHTML = tpl;\n container.appendChild(this.createStyle());\n document.body.appendChild(container);\n\n this.doms = Array.prototype.slice.apply(container.querySelectorAll('dd'));\n this.container = container;\n }\n\n private createStyle (): HTMLStyleElement {\n const style: HTMLStyleElement = document.createElement('style');\n\n style.appendChild(document.createTextNode(css));\n\n return style;\n }\n\n /**\n * Update per frame\n */\n public update (dt: number): void {\n const data = this.core.update(dt);\n\n if (!data || data.drawCall === 0 || data.triangles === 0) {\n return;\n }\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * reset all hooks\n */\n public reset (): void {\n this.core.reset();\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = this.data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * release all hooks\n */\n public release (): void {\n this.core.release();\n }\n\n /**\n * destroy the instance\n */\n public destroy (): void {\n this.release();\n document.body.removeChild(this.container);\n }\n}\n","import { Behaviour, type GLRenderer } from '@galacean/effects';\nimport { Monitor } from './monitor';\n\nexport class StatsComponent extends Behaviour {\n /**\n * 监控对象\n */\n monitor: Monitor;\n\n override start (): void {\n const renderer = this.engine.renderer as GLRenderer;\n const gl = renderer.pipelineContext.gl;\n\n this.monitor = new Monitor(gl);\n }\n\n override update (dt: number): void {\n this.monitor.update(dt);\n }\n}\n","import type { Player } from '@galacean/effects';\nimport { StatsComponent } from './stats-component';\n\nexport interface StatsOptions {\n debug?: boolean,\n}\n\nconst json = {\n 'images': [],\n 'fonts': [],\n 'version': '3.0',\n 'shapes': [],\n 'plugins': [],\n 'type': 'ge',\n 'compositions': [{\n 'id': '2',\n 'name': 'stats',\n 'duration': 5,\n 'startTime': 0,\n 'endBehavior': 2,\n 'previewSize': [750, 1624],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n }],\n 'camera': {\n 'fov': 60,\n 'far': 40,\n 'near': 0.1,\n 'clipMode': 1,\n 'position': [0, 0, 8],\n 'rotation': [0, 0, 0],\n },\n 'sceneBindings': [],\n }],\n 'components': [],\n 'geometries': [],\n 'materials': [],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n 'name': 'component',\n 'duration': 99999,\n 'type': '1',\n 'visible': true,\n 'endBehavior': 0,\n 'delay': 0,\n 'renderLevel': 'B+',\n 'components': [],\n 'transform': {\n 'position': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'eulerHint': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'anchor': {\n 'x': 0,\n 'y': 0,\n },\n 'size': {\n 'x': 1.2,\n 'y': 1.2,\n },\n 'scale': {\n 'x': 1,\n 'y': 1,\n 'z': 1,\n },\n },\n 'dataType': 'VFXItemData',\n }],\n 'shaders': [],\n 'bins': [],\n 'textures': [],\n 'animations': [],\n 'compositionId': '2',\n};\n\nexport class Stats {\n static options: StatsOptions;\n\n constructor (\n public readonly player: Player,\n options: StatsOptions = { debug: false },\n ) {\n Stats.options = options;\n\n void this.init();\n }\n\n async init () {\n try {\n const composition = await this.player.loadScene(json);\n const component = composition.getItemByName('component');\n\n component?.addComponent(StatsComponent);\n } catch (e: any) {\n throw new Error(`Failed to load stats scene: ${e.message}.`);\n }\n }\n}\n"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_async_to_generator","fn","self","args","arguments","apply","err","undefined","_instanceof","left","right","Symbol","hasInstance","__generator","thisArg","body","_","label","sent","t","trys","ops","f","y","g","next","verb","iterator","n","v","step","op","TypeError","call","pop","length","push","e","SuppressedError","suppressed","message","Error","name","_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","prototype","create","constructor","writable","configurable","DrawCallHook","gl","drawCall","triangles","lines","points","hooked","realDrawElements","drawElements","realDrawArrays","drawArrays","hookedDrawElements","bind","hookedDrawArrays","Stats","options","debug","console","mode","count","type","offset","update","first","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","LINES","LINE_STRIP","LINE_LOOP","POINTS","reset","release","ProgramHook","programs","realUseProgram","useProgram","hookedUseProgram","program","ShaderHook","shaders","realAttachShader","attachShader","realDetachShader","detachShader","hookedAttachShader","hookedDetachShader","shader","TextureHook","textures","realCreateTexture","createTexture","realDeleteTexture","deleteTexture","hookedCreateTexture","hookedDeleteTexture","texture","Core","samplingFrames","samplingIndex","updateCounter","updateTime","hook","drawCallHook","textureHook","shaderHook","programHook","dt","now","performance","data","fps","Math","round","memory","usedJSHeapSize","webglContext","WebGL2RenderingContext","tpl","css","Monitor","items","core","createContainer","container","document","createElement","classList","add","innerHTML","appendChild","createStyle","doms","Array","slice","querySelectorAll","style","createTextNode","dom","i","item","requestAnimationFrame","innerText","String","l","destroy","removeChild","StatsComponent","start","renderer","engine","pipelineContext","monitor","Behaviour","json","player","init","composition","component","loadScene","getItemByName","addComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_instanceof.js","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_inherits.js","../src/hooks/drawcall-hook.ts","../src/hooks/program-hook.ts","../src/hooks/shader-hook.ts","../src/hooks/texture-hook.ts","../src/core.ts","../src/monitor.ts","../src/stats-component.ts","../src/stats.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nexport function _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","export function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _set_prototype_of } from \"./_set_prototype_of.js\";\n\nexport function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","import { Stats } from '../stats';\n\n/**\n * DrawCallHook\n */\nexport default class DrawCallHook {\n drawCall = 0;\n triangles = 0;\n lines = 0;\n points = 0;\n\n private hooked = true;\n private readonly realDrawElements: (mode: number, count: number, type: number, offset: number) => void;\n private readonly realDrawArrays: (mode: number, first: number, count: number) => void;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realDrawElements = gl.drawElements;\n this.realDrawArrays = gl.drawArrays;\n\n gl.drawElements = this.hookedDrawElements.bind(this);\n gl.drawArrays = this.hookedDrawArrays.bind(this);\n\n if (Stats.options.debug) {\n console.debug('DrawCall is hooked.');\n }\n }\n\n private hookedDrawElements (mode: number, count: number, type: number, offset: number): void {\n this.realDrawElements.call(this.gl, mode, count, type, offset);\n this.update(count, mode);\n }\n\n private hookedDrawArrays (mode: number, first: number, count: number): void {\n this.realDrawArrays.call(this.gl, mode, first, count);\n this.update(count, mode);\n }\n\n private update (count: number, mode: number): void {\n const { gl } = this;\n\n this.drawCall++;\n\n switch (mode) {\n case gl.TRIANGLES:\n this.triangles += count / 3;\n\n break;\n case gl.TRIANGLE_STRIP:\n case gl.TRIANGLE_FAN:\n this.triangles += count - 2;\n\n break;\n case gl.LINES:\n this.lines += count / 2;\n\n break;\n case gl.LINE_STRIP:\n this.lines += count - 1;\n\n break;\n case gl.LINE_LOOP:\n this.lines += count;\n\n break;\n case gl.POINTS:\n this.points += count;\n\n break;\n default:\n console.error(`Unknown draw mode: ${mode}. Count: ${count}`);\n\n break;\n }\n }\n\n reset (): void {\n this.drawCall = 0;\n this.triangles = 0;\n this.lines = 0;\n this.points = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.drawElements = this.realDrawElements;\n this.gl.drawArrays = this.realDrawArrays;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ProgramHook\n * 每一帧的 shader 数量\n */\nexport default class ProgramHook {\n programs = 0;\n\n private readonly realUseProgram: (program: WebGLProgram | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realUseProgram = gl.useProgram;\n\n gl.useProgram = this.hookedUseProgram.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Program is hooked.');\n }\n }\n\n private hookedUseProgram (program: WebGLProgram): void {\n this.realUseProgram.call(this.gl, program);\n this.programs++;\n\n if (Stats.options.debug) {\n console.debug(`UseProgram: ${program}, program: ${this.programs}.`);\n }\n }\n\n reset (): void {\n this.programs = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.useProgram = this.realUseProgram;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ShaderHook\n */\nexport default class ShaderHook {\n shaders = 0;\n\n private readonly realAttachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private readonly realDetachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realAttachShader = gl.attachShader;\n this.realDetachShader = gl.detachShader;\n\n gl.attachShader = this.hookedAttachShader.bind(this);\n gl.detachShader = this.hookedDetachShader.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Shader is hooked.');\n }\n }\n\n private hookedAttachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realAttachShader.call(this.gl, program, shader);\n this.shaders++;\n\n if (Stats.options.debug) {\n console.debug(`AttachShader: ${shader}. shaders: ${this.shaders}`);\n }\n }\n\n private hookedDetachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realDetachShader.call(this.gl, program, shader);\n this.shaders--;\n\n if (Stats.options.debug) {\n console.debug(`DetachShader. shaders: ${this.shaders}`);\n }\n }\n\n reset (): void {\n this.shaders = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.attachShader = this.realAttachShader;\n this.gl.detachShader = this.realDetachShader;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * TextureHook\n */\nexport default class TextureHook {\n textures = 0;\n\n private readonly realCreateTexture: () => WebGLTexture | null;\n private readonly realDeleteTexture: (texture: WebGLTexture | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realCreateTexture = gl.createTexture;\n this.realDeleteTexture = gl.deleteTexture;\n\n gl.createTexture = this.hookedCreateTexture.bind(this);\n gl.deleteTexture = this.hookedDeleteTexture.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Texture is hooked.');\n }\n }\n\n private hookedCreateTexture (): WebGLTexture | null {\n const texture = this.realCreateTexture.call(this.gl);\n\n this.textures++;\n\n if (Stats.options.debug) {\n console.debug(`CreateTexture: ${texture}, textures: ${this.textures}.`);\n }\n\n return texture;\n }\n\n private hookedDeleteTexture (texture: WebGLTexture | null): void {\n this.realDeleteTexture.call(this.gl, texture);\n this.textures--;\n\n if (Stats.options.debug) {\n console.debug(`DeleteTexture, textures: ${this.textures}.`);\n }\n }\n\n reset (): void {\n this.textures = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.createTexture = this.realCreateTexture;\n this.gl.deleteTexture = this.realDeleteTexture;\n this.hooked = false;\n }\n }\n}\n","import DrawCallHook from './hooks/drawcall-hook';\nimport ProgramHook from './hooks/program-hook';\nimport ShaderHook from './hooks/shader-hook';\nimport TextureHook from './hooks/texture-hook';\n\ndeclare global {\n interface Performance {\n memory: any,\n }\n}\n\n/**\n * Hook gl to calculate stats\n */\nexport class Core {\n private drawCallHook: DrawCallHook;\n private textureHook: TextureHook;\n private shaderHook: ShaderHook;\n private samplingFrames = 60;\n private samplingIndex = 0;\n private updateCounter = 0;\n private updateTime = 0;\n private programHook: ProgramHook;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n if (!gl) {\n throw new Error('Unsupported WebGL context.');\n }\n this.hook(gl);\n }\n\n private hook (gl: WebGLRenderingContext | WebGL2RenderingContext): void {\n this.drawCallHook = new DrawCallHook(gl);\n this.textureHook = new TextureHook(gl);\n this.shaderHook = new ShaderHook(gl);\n this.programHook = new ProgramHook(gl);\n }\n\n /**\n * reset draw call hook\n */\n reset (): void {\n this.drawCallHook?.reset();\n this.programHook?.reset();\n }\n\n /**\n * release hook\n */\n release (): void {\n this.drawCallHook?.release();\n this.textureHook?.release();\n this.shaderHook?.release();\n this.programHook?.release();\n }\n\n /**\n * update performance data\n */\n update (dt: number): PerformanceData | undefined {\n const now = performance.now();\n\n this.updateCounter++;\n\n if (now - this.updateTime < 1000) {\n return undefined;\n }\n\n if (this.samplingIndex !== this.samplingFrames) {\n this.reset();\n this.samplingIndex++;\n\n return undefined;\n }\n\n this.samplingIndex = 0;\n\n const data: PerformanceData = {\n fps: Math.round((this.updateCounter * 1000) / (now - this.updateTime)),\n // eslint-disable-next-line compat/compat -- performance.memory is not standard\n memory: performance.memory && (performance.memory.usedJSHeapSize / 1048576) >> 0,\n drawCall: (this.drawCallHook.drawCall === 0) ? 0 : this.drawCallHook.drawCall - 1,\n triangles: (this.drawCallHook.triangles === 0) ? 0 : this.drawCallHook.triangles - 2,\n lines: this.drawCallHook.lines,\n points: this.drawCallHook.points,\n textures: this.textureHook.textures,\n shaders: (this.shaderHook.shaders === 0) ? 0 : this.shaderHook.shaders + 1,\n programs: this.programHook.programs,\n webglContext: this.gl instanceof WebGL2RenderingContext ? '2.0' : '1.0',\n };\n\n this.reset();\n\n this.updateCounter = 0;\n this.updateTime = now;\n\n return data;\n }\n}\n\nexport interface PerformanceData {\n fps: number,\n memory: number,\n drawCall: number,\n triangles: number,\n lines: number,\n points: number,\n textures: number,\n shaders: number,\n webglContext: string,\n programs: number,\n}\n","import type { Disposable } from '@galacean/effects';\nimport type { PerformanceData } from './core';\nimport { Core } from './core';\n\nconst tpl = `\n <dl>\n <dt>FPS</dt>\n <dd>0</dd>\n <dt>Memory <span class=\"unit\">(MB)</span></dt>\n <dd>0</dd>\n <dt>DrawCall</dt>\n <dd>0</dd>\n <dt>Triangles</dt>\n <dd>0</dd>\n <dt>Textures</dt>\n <dd>0</dd>\n <dt>Shaders</dt>\n <dd>0</dd>\n <dt>Program</dt>\n <dd>0</dd>\n <dt>WebGL</dt>\n <dd></dd>\n </dl>\n`;\nconst css = `\n .gl-perf {\n pointer-events: none;\n user-select: none;\n position: fixed;\n top: 0;\n left: 0;\n padding: ${10 / 7.5}vh ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n background: rgba(0, 0, 0, 0.3);\n color: #fff;\n font: ${10 / 7.5}vh arial;\n }\n\n .gl-perf dl,\n .gl-perf dt,\n .gl-perf dd {\n padding: 0;\n margin: 0;\n }\n\n .gl-perf dt {\n color: #fff;\n text-shadow: #000 0 0 1px;\n }\n\n .gl-perf dt .unit{\n font-size: ${10 / 7.5}vh;\n }\n\n .gl-perf dd {\n font-size: ${20 / 7.5}vh;\n padding: ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n }\n`;\n\nexport class Monitor implements Disposable {\n private core: Core;\n private doms: HTMLElement[];\n private container: HTMLElement;\n private readonly items = ['fps', 'memory', 'drawCall', 'triangles', 'textures', 'shaders', 'programs', 'webglContext'];\n\n private data: PerformanceData = {\n fps: 60,\n memory: 0,\n drawCall: 0,\n triangles: 0,\n lines: 0,\n points: 0,\n textures: 0,\n shaders: 0,\n programs: 0,\n webglContext: '2.0',\n };\n\n constructor (gl: WebGLRenderingContext | WebGL2RenderingContext) {\n this.core = new Core(gl);\n\n this.createContainer();\n this.update = this.update.bind(this);\n }\n\n private createContainer (): void {\n const container = document.createElement('div');\n\n container.classList.add('gl-perf');\n container.innerHTML = tpl;\n container.appendChild(this.createStyle());\n document.body.appendChild(container);\n\n this.doms = Array.prototype.slice.apply(container.querySelectorAll('dd'));\n this.container = container;\n }\n\n private createStyle (): HTMLStyleElement {\n const style: HTMLStyleElement = document.createElement('style');\n\n style.appendChild(document.createTextNode(css));\n\n return style;\n }\n\n /**\n * Update per frame\n */\n update (dt: number): void {\n const data = this.core.update(dt);\n\n if (!data || data.drawCall === 0 || data.triangles === 0) {\n return;\n }\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * reset all hooks\n */\n reset (): void {\n this.core.reset();\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = this.data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * release all hooks\n */\n release (): void {\n this.core.release();\n }\n\n /**\n * dispose the instance\n */\n dispose (): void {\n this.release();\n document.body.removeChild(this.container);\n }\n}\n","import { Behaviour, type GLRenderer } from '@galacean/effects';\nimport { Monitor } from './monitor';\n\nexport class StatsComponent extends Behaviour {\n /**\n * 监控对象\n */\n monitor: Monitor;\n\n override onStart (): void {\n const renderer = this.engine.renderer as GLRenderer;\n const gl = renderer.pipelineContext.gl;\n\n this.monitor = new Monitor(gl);\n }\n\n override onUpdate (dt: number): void {\n this.monitor.update(dt);\n }\n\n override dispose (): void {\n super.dispose();\n this.monitor.dispose();\n }\n}\n","import type { Player } from '@galacean/effects';\nimport { StatsComponent } from './stats-component';\n\nexport interface StatsOptions {\n debug?: boolean,\n}\n\nconst json = {\n 'images': [],\n 'fonts': [],\n 'version': '3.0',\n 'shapes': [],\n 'plugins': [],\n 'type': 'ge',\n 'compositions': [{\n 'id': '2',\n 'name': 'stats',\n 'duration': 5,\n 'startTime': 0,\n 'endBehavior': 2,\n 'previewSize': [750, 1624],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n }],\n 'camera': {\n 'fov': 60,\n 'far': 40,\n 'near': 0.1,\n 'clipMode': 1,\n 'position': [0, 0, 8],\n 'rotation': [0, 0, 0],\n },\n 'sceneBindings': [],\n }],\n 'components': [],\n 'geometries': [],\n 'materials': [],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n 'name': 'component',\n 'duration': 99999,\n 'type': '1',\n 'visible': true,\n 'endBehavior': 0,\n 'delay': 0,\n 'renderLevel': 'B+',\n 'components': [],\n 'transform': {\n 'position': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'eulerHint': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'anchor': {\n 'x': 0,\n 'y': 0,\n },\n 'size': {\n 'x': 1.2,\n 'y': 1.2,\n },\n 'scale': {\n 'x': 1,\n 'y': 1,\n 'z': 1,\n },\n },\n 'dataType': 'VFXItemData',\n }],\n 'shaders': [],\n 'bins': [],\n 'textures': [],\n 'animations': [],\n 'compositionId': '2',\n};\n\nexport class Stats {\n static options: StatsOptions;\n\n constructor (\n public readonly player: Player,\n options: StatsOptions = { debug: false },\n ) {\n Stats.options = options;\n\n void this.init();\n }\n\n async init () {\n try {\n const composition = await this.player.loadScene(json);\n const component = composition.getItemByName('component');\n\n component?.addComponent(StatsComponent);\n } catch (e: any) {\n throw new Error(`Failed to load stats scene: ${e.message}.`);\n }\n }\n}\n"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_async_to_generator","fn","self","args","arguments","apply","err","undefined","_instanceof","left","right","Symbol","hasInstance","__generator","thisArg","body","_","label","sent","t","trys","ops","f","y","g","next","verb","iterator","n","v","step","op","TypeError","call","pop","length","push","e","SuppressedError","suppressed","message","Error","name","_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","prototype","create","constructor","writable","configurable","DrawCallHook","gl","drawCall","triangles","lines","points","hooked","realDrawElements","drawElements","realDrawArrays","drawArrays","hookedDrawElements","bind","hookedDrawArrays","Stats","options","debug","console","mode","count","type","offset","update","first","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","LINES","LINE_STRIP","LINE_LOOP","POINTS","reset","release","ProgramHook","programs","realUseProgram","useProgram","hookedUseProgram","program","ShaderHook","shaders","realAttachShader","attachShader","realDetachShader","detachShader","hookedAttachShader","hookedDetachShader","shader","TextureHook","textures","realCreateTexture","createTexture","realDeleteTexture","deleteTexture","hookedCreateTexture","hookedDeleteTexture","texture","Core","samplingFrames","samplingIndex","updateCounter","updateTime","hook","drawCallHook","textureHook","shaderHook","programHook","dt","now","performance","data","fps","Math","round","memory","usedJSHeapSize","webglContext","WebGL2RenderingContext","tpl","css","Monitor","items","core","createContainer","container","document","createElement","classList","add","innerHTML","appendChild","createStyle","doms","Array","slice","querySelectorAll","style","createTextNode","dom","i","item","requestAnimationFrame","innerText","String","l","dispose","removeChild","StatsComponent","onStart","renderer","engine","pipelineContext","monitor","onUpdate","Behaviour","json","player","init","composition","component","loadScene","getItemByName","addComponent"],"mappings":"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"}
|
package/dist/index.min.js
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* Description: Galacean Effects runtime stats for the web
|
|
4
4
|
* Author: Ant Group CO., Ltd.
|
|
5
5
|
* Contributors: 云垣
|
|
6
|
-
* Version: v2.0.
|
|
7
|
-
*/function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@galacean/effects")):"function"==typeof define&&define.amd?define(["exports","@galacean/effects"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).ge=e.ge||{},e.ge.statsPlugin={}),e.ge)}(this,function(e,t){"use strict";function r(e,t,r,n,s,o,i){try{var a=e[o](i),h=a.value}catch(e){r(e);return}a.done?t(h):Promise.resolve(h).then(n,s)}function n(e,t){return(n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}"function"==typeof SuppressedError&&SuppressedError;var s=function(){function e(e){this.gl=e,this.drawCall=0,this.triangles=0,this.lines=0,this.points=0,this.hooked=!0,this.realDrawElements=e.drawElements,this.realDrawArrays=e.drawArrays,e.drawElements=this.hookedDrawElements.bind(this),e.drawArrays=this.hookedDrawArrays.bind(this),p.options.debug&&console.debug("DrawCall is hooked.")}var t=e.prototype;return t.hookedDrawElements=function(e,t,r,n){this.realDrawElements.call(this.gl,e,t,r,n),this.update(t,e)},t.hookedDrawArrays=function(e,t,r){this.realDrawArrays.call(this.gl,e,t,r),this.update(r,e)},t.update=function(e,t){var r=this.gl;switch(this.drawCall++,t){case r.TRIANGLES:this.triangles+=e/3;break;case r.TRIANGLE_STRIP:case r.TRIANGLE_FAN:this.triangles+=e-2;break;case r.LINES:this.lines+=e/2;break;case r.LINE_STRIP:this.lines+=e-1;break;case r.LINE_LOOP:this.lines+=e;break;case r.POINTS:this.points+=e;break;default:console.error("Unknown draw mode: "+t+". Count: "+e)}},t.reset=function(){this.drawCall=0,this.triangles=0,this.lines=0,this.points=0},t.release=function(){this.hooked&&(this.gl.drawElements=this.realDrawElements,this.gl.drawArrays=this.realDrawArrays,this.hooked=!1)},e}(),o=function(){function e(e){this.gl=e,this.programs=0,this.hooked=!0,this.realUseProgram=e.useProgram,e.useProgram=this.hookedUseProgram.bind(this),p.options.debug&&console.debug("Program is hooked.")}var t=e.prototype;return t.hookedUseProgram=function(e){this.realUseProgram.call(this.gl,e),this.programs++,p.options.debug&&console.debug("UseProgram: "+e+", program: "+this.programs+".")},t.reset=function(){this.programs=0},t.release=function(){this.hooked&&(this.gl.useProgram=this.realUseProgram,this.hooked=!1)},e}(),i=function(){function e(e){this.gl=e,this.shaders=0,this.hooked=!0,this.realAttachShader=e.attachShader,this.realDetachShader=e.detachShader,e.attachShader=this.hookedAttachShader.bind(this),e.detachShader=this.hookedDetachShader.bind(this),p.options.debug&&console.debug("Shader is hooked.")}var t=e.prototype;return t.hookedAttachShader=function(e,t){this.realAttachShader.call(this.gl,e,t),this.shaders++,p.options.debug&&console.debug("AttachShader: "+t+". shaders: "+this.shaders)},t.hookedDetachShader=function(e,t){this.realDetachShader.call(this.gl,e,t),this.shaders--,p.options.debug&&console.debug("DetachShader. shaders: "+this.shaders)},t.reset=function(){this.shaders=0},t.release=function(){this.hooked&&(this.gl.attachShader=this.realAttachShader,this.gl.detachShader=this.realDetachShader,this.hooked=!1)},e}(),a=function(){function e(e){this.gl=e,this.textures=0,this.hooked=!0,this.realCreateTexture=e.createTexture,this.realDeleteTexture=e.deleteTexture,e.createTexture=this.hookedCreateTexture.bind(this),e.deleteTexture=this.hookedDeleteTexture.bind(this),p.options.debug&&console.debug("Texture is hooked.")}var t=e.prototype;return t.hookedCreateTexture=function(){var e=this.realCreateTexture.call(this.gl);return this.textures++,p.options.debug&&console.debug("CreateTexture: "+e+", textures: "+this.textures+"."),e},t.hookedDeleteTexture=function(e){this.realDeleteTexture.call(this.gl,e),this.textures--,p.options.debug&&console.debug("DeleteTexture, textures: "+this.textures+".")},t.reset=function(){this.textures=0},t.release=function(){this.hooked&&(this.gl.createTexture=this.realCreateTexture,this.gl.deleteTexture=this.realDeleteTexture,this.hooked=!1)},e}(),h=function(){function e(e){if(this.gl=e,this.samplingFrames=60,this.samplingIndex=0,this.updateCounter=0,this.updateTime=0,!e)throw Error("Unsupported WebGL context.");this.hook(e)}var t=e.prototype;return t.hook=function(e){this.drawCallHook=new s(e),this.textureHook=new a(e),this.shaderHook=new i(e),this.programHook=new o(e)},t.reset=function(){var e,t;null==(e=this.drawCallHook)||e.reset(),null==(t=this.programHook)||t.reset()},t.release=function(){var e,t,r,n;null==(e=this.drawCallHook)||e.release(),null==(t=this.textureHook)||t.release(),null==(r=this.shaderHook)||r.release(),null==(n=this.programHook)||n.release()},t.update=function(e){var t=performance.now();if(this.updateCounter++,!(t-this.updateTime<1e3)){if(this.samplingIndex!==this.samplingFrames){this.reset(),this.samplingIndex++;return}this.samplingIndex=0;var r={fps:Math.round(1e3*this.updateCounter/(t-this.updateTime)),memory:performance.memory&&performance.memory.usedJSHeapSize/1048576>>0,drawCall:0===this.drawCallHook.drawCall?0:this.drawCallHook.drawCall-1,triangles:0===this.drawCallHook.triangles?0:this.drawCallHook.triangles-2,lines:this.drawCallHook.lines,points:this.drawCallHook.points,textures:this.textureHook.textures,shaders:0===this.shaderHook.shaders?0:this.shaderHook.shaders+1,programs:this.programHook.programs,webglContext:!function e(t,r){return null!=r&&"undefined"!=typeof Symbol&&r[Symbol.hasInstance]?!!r[Symbol.hasInstance](t):e(t,r)}(this.gl,WebGL2RenderingContext)?"1.0":"2.0"};return this.reset(),this.updateCounter=0,this.updateTime=t,r}},e}(),d="\n .gl-perf {\n pointer-events: none;\n user-select: none;\n position: fixed;\n top: 0;\n left: 0;\n padding: "+10/7.5+"vh "+10/7.5+"vh 0 "+10/7.5+"vh;\n background: rgba(0, 0, 0, 0.3);\n color: #fff;\n font: "+10/7.5+"vh arial;\n }\n\n .gl-perf dl,\n .gl-perf dt,\n .gl-perf dd {\n padding: 0;\n margin: 0;\n }\n\n .gl-perf dt {\n color: #fff;\n text-shadow: #000 0 0 1px;\n }\n\n .gl-perf dt .unit{\n font-size: "+10/7.5+"vh;\n }\n\n .gl-perf dd {\n font-size: "+20/7.5+"vh;\n padding: "+10/7.5+"vh 0 "+10/7.5+"vh;\n }\n",l=function(){function e(e){this.items=["fps","memory","drawCall","triangles","textures","shaders","programs","webglContext"],this.data={fps:60,memory:0,drawCall:0,triangles:0,lines:0,points:0,textures:0,shaders:0,programs:0,webglContext:"2.0"},this.core=new h(e),this.createContainer(),this.update=this.update.bind(this)}var t=e.prototype;return t.createContainer=function(){var e=document.createElement("div");e.classList.add("gl-perf"),e.innerHTML='\n <dl>\n <dt>FPS</dt>\n <dd>0</dd>\n <dt>Memory <span class="unit">(MB)</span></dt>\n <dd>0</dd>\n <dt>DrawCall</dt>\n <dd>0</dd>\n <dt>Triangles</dt>\n <dd>0</dd>\n <dt>Textures</dt>\n <dd>0</dd>\n <dt>Shaders</dt>\n <dd>0</dd>\n <dt>Program</dt>\n <dd>0</dd>\n <dt>WebGL</dt>\n <dd></dd>\n </dl>\n',e.appendChild(this.createStyle()),document.body.appendChild(e),this.doms=Array.prototype.slice.apply(e.querySelectorAll("dd")),this.container=e},t.createStyle=function(){var e=document.createElement("style");return e.appendChild(document.createTextNode(d)),e},t.update=function(e){var t,r=this.core.update(e);if(r&&0!==r.drawCall&&0!==r.triangles)for(var n=0,s=this.items.length;n<s;n++)t=this,function(e,n){var s=t.doms[e],o=r[t.items[e]]||0;requestAnimationFrame(function(){s.innerText=String(o)})}(n)},t.reset=function(){var e;this.core.reset();for(var t=0,r=this.items.length;t<r;t++)e=this,function(t,r){var n=e.doms[t],s=e.items[t],o=e.data[s]||0;requestAnimationFrame(function(){n.innerText=String(o)})}(t)},t.release=function(){this.core.release()},t.destroy=function(){this.release(),document.body.removeChild(this.container)},e}(),u=function(e){function t(){return e.apply(this,arguments)}!function(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}(t,e);var r=t.prototype;return r.start=function(){var e=this.engine.renderer.pipelineContext.gl;this.monitor=new l(e)},r.update=function(e){this.monitor.update(e)},t}(t.Behaviour),c={images:[],fonts:[],version:"3.0",shapes:[],plugins:[],type:"ge",compositions:[{id:"2",name:"stats",duration:5,startTime:0,endBehavior:2,previewSize:[750,1624],items:[{id:"05e1c616baf34cc084968a05703719cd"}],camera:{fov:60,far:40,near:.1,clipMode:1,position:[0,0,8],rotation:[0,0,0]},sceneBindings:[]}],components:[],geometries:[],materials:[],items:[{id:"05e1c616baf34cc084968a05703719cd",name:"component",duration:99999,type:"1",visible:!0,endBehavior:0,delay:0,renderLevel:"B+",components:[],transform:{position:{x:0,y:0,z:0},eulerHint:{x:0,y:0,z:0},anchor:{x:0,y:0},size:{x:1.2,y:1.2},scale:{x:1,y:1,z:1}},dataType:"VFXItemData"}],shaders:[],bins:[],textures:[],animations:[],compositionId:"2"},p=function(){function e(t,r){void 0===r&&(r={debug:!1}),this.player=t,e.options=r,this.init()}return e.prototype.init=function(){var e,t=this;return(e=function(){var e;return function(e,t){var r,n,s,o,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(h){return function(a){if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(i=0)),i;)try{if(r=1,n&&(s=2&a[0]?n.return:a[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,a[1])).done)return s;switch(n=0,s&&(a=[2&a[0],s.value]),a[0]){case 0:case 1:s=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(s=(s=i.trys).length>0&&s[s.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!s||a[1]>s[0]&&a[1]<s[3])){i.label=a[1];break}if(6===a[0]&&i.label<s[1]){i.label=s[1],s=a;break}if(s&&i.label<s[2]){i.label=s[2],i.ops.push(a);break}s[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],n=0}finally{r=s=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,h])}}}(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,t.player.loadScene(c)];case 1:return null==(e=r.sent().getItemByName("component"))||e.addComponent(u),[3,3];case 2:throw Error("Failed to load stats scene: "+r.sent().message+".");case 3:return[2]}})},function(){var t=this,n=arguments;return new Promise(function(s,o){var i=e.apply(t,n);function a(e){r(i,s,o,a,h,"next",e)}function h(e){r(i,s,o,a,h,"throw",e)}a(void 0)})})()},e}();e.Stats=p,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
6
|
+
* Version: v2.1.0-alpha.0
|
|
7
|
+
*/function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@galacean/effects")):"function"==typeof define&&define.amd?define(["exports","@galacean/effects"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).ge=e.ge||{},e.ge.statsPlugin={}),e.ge)}(this,function(e,t){"use strict";function r(e,t,r,n,s,o,i){try{var a=e[o](i),h=a.value}catch(e){r(e);return}a.done?t(h):Promise.resolve(h).then(n,s)}function n(e,t){return(n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}"function"==typeof SuppressedError&&SuppressedError;var s=function(){function e(e){this.gl=e,this.drawCall=0,this.triangles=0,this.lines=0,this.points=0,this.hooked=!0,this.realDrawElements=e.drawElements,this.realDrawArrays=e.drawArrays,e.drawElements=this.hookedDrawElements.bind(this),e.drawArrays=this.hookedDrawArrays.bind(this),p.options.debug&&console.debug("DrawCall is hooked.")}var t=e.prototype;return t.hookedDrawElements=function(e,t,r,n){this.realDrawElements.call(this.gl,e,t,r,n),this.update(t,e)},t.hookedDrawArrays=function(e,t,r){this.realDrawArrays.call(this.gl,e,t,r),this.update(r,e)},t.update=function(e,t){var r=this.gl;switch(this.drawCall++,t){case r.TRIANGLES:this.triangles+=e/3;break;case r.TRIANGLE_STRIP:case r.TRIANGLE_FAN:this.triangles+=e-2;break;case r.LINES:this.lines+=e/2;break;case r.LINE_STRIP:this.lines+=e-1;break;case r.LINE_LOOP:this.lines+=e;break;case r.POINTS:this.points+=e;break;default:console.error("Unknown draw mode: "+t+". Count: "+e)}},t.reset=function(){this.drawCall=0,this.triangles=0,this.lines=0,this.points=0},t.release=function(){this.hooked&&(this.gl.drawElements=this.realDrawElements,this.gl.drawArrays=this.realDrawArrays,this.hooked=!1)},e}(),o=function(){function e(e){this.gl=e,this.programs=0,this.hooked=!0,this.realUseProgram=e.useProgram,e.useProgram=this.hookedUseProgram.bind(this),p.options.debug&&console.debug("Program is hooked.")}var t=e.prototype;return t.hookedUseProgram=function(e){this.realUseProgram.call(this.gl,e),this.programs++,p.options.debug&&console.debug("UseProgram: "+e+", program: "+this.programs+".")},t.reset=function(){this.programs=0},t.release=function(){this.hooked&&(this.gl.useProgram=this.realUseProgram,this.hooked=!1)},e}(),i=function(){function e(e){this.gl=e,this.shaders=0,this.hooked=!0,this.realAttachShader=e.attachShader,this.realDetachShader=e.detachShader,e.attachShader=this.hookedAttachShader.bind(this),e.detachShader=this.hookedDetachShader.bind(this),p.options.debug&&console.debug("Shader is hooked.")}var t=e.prototype;return t.hookedAttachShader=function(e,t){this.realAttachShader.call(this.gl,e,t),this.shaders++,p.options.debug&&console.debug("AttachShader: "+t+". shaders: "+this.shaders)},t.hookedDetachShader=function(e,t){this.realDetachShader.call(this.gl,e,t),this.shaders--,p.options.debug&&console.debug("DetachShader. shaders: "+this.shaders)},t.reset=function(){this.shaders=0},t.release=function(){this.hooked&&(this.gl.attachShader=this.realAttachShader,this.gl.detachShader=this.realDetachShader,this.hooked=!1)},e}(),a=function(){function e(e){this.gl=e,this.textures=0,this.hooked=!0,this.realCreateTexture=e.createTexture,this.realDeleteTexture=e.deleteTexture,e.createTexture=this.hookedCreateTexture.bind(this),e.deleteTexture=this.hookedDeleteTexture.bind(this),p.options.debug&&console.debug("Texture is hooked.")}var t=e.prototype;return t.hookedCreateTexture=function(){var e=this.realCreateTexture.call(this.gl);return this.textures++,p.options.debug&&console.debug("CreateTexture: "+e+", textures: "+this.textures+"."),e},t.hookedDeleteTexture=function(e){this.realDeleteTexture.call(this.gl,e),this.textures--,p.options.debug&&console.debug("DeleteTexture, textures: "+this.textures+".")},t.reset=function(){this.textures=0},t.release=function(){this.hooked&&(this.gl.createTexture=this.realCreateTexture,this.gl.deleteTexture=this.realDeleteTexture,this.hooked=!1)},e}(),h=function(){function e(e){if(this.gl=e,this.samplingFrames=60,this.samplingIndex=0,this.updateCounter=0,this.updateTime=0,!e)throw Error("Unsupported WebGL context.");this.hook(e)}var t=e.prototype;return t.hook=function(e){this.drawCallHook=new s(e),this.textureHook=new a(e),this.shaderHook=new i(e),this.programHook=new o(e)},t.reset=function(){var e,t;null==(e=this.drawCallHook)||e.reset(),null==(t=this.programHook)||t.reset()},t.release=function(){var e,t,r,n;null==(e=this.drawCallHook)||e.release(),null==(t=this.textureHook)||t.release(),null==(r=this.shaderHook)||r.release(),null==(n=this.programHook)||n.release()},t.update=function(e){var t=performance.now();if(this.updateCounter++,!(t-this.updateTime<1e3)){if(this.samplingIndex!==this.samplingFrames){this.reset(),this.samplingIndex++;return}this.samplingIndex=0;var r={fps:Math.round(1e3*this.updateCounter/(t-this.updateTime)),memory:performance.memory&&performance.memory.usedJSHeapSize/1048576>>0,drawCall:0===this.drawCallHook.drawCall?0:this.drawCallHook.drawCall-1,triangles:0===this.drawCallHook.triangles?0:this.drawCallHook.triangles-2,lines:this.drawCallHook.lines,points:this.drawCallHook.points,textures:this.textureHook.textures,shaders:0===this.shaderHook.shaders?0:this.shaderHook.shaders+1,programs:this.programHook.programs,webglContext:!function e(t,r){return null!=r&&"undefined"!=typeof Symbol&&r[Symbol.hasInstance]?!!r[Symbol.hasInstance](t):e(t,r)}(this.gl,WebGL2RenderingContext)?"1.0":"2.0"};return this.reset(),this.updateCounter=0,this.updateTime=t,r}},e}(),d="\n .gl-perf {\n pointer-events: none;\n user-select: none;\n position: fixed;\n top: 0;\n left: 0;\n padding: "+10/7.5+"vh "+10/7.5+"vh 0 "+10/7.5+"vh;\n background: rgba(0, 0, 0, 0.3);\n color: #fff;\n font: "+10/7.5+"vh arial;\n }\n\n .gl-perf dl,\n .gl-perf dt,\n .gl-perf dd {\n padding: 0;\n margin: 0;\n }\n\n .gl-perf dt {\n color: #fff;\n text-shadow: #000 0 0 1px;\n }\n\n .gl-perf dt .unit{\n font-size: "+10/7.5+"vh;\n }\n\n .gl-perf dd {\n font-size: "+20/7.5+"vh;\n padding: "+10/7.5+"vh 0 "+10/7.5+"vh;\n }\n",l=function(){function e(e){this.items=["fps","memory","drawCall","triangles","textures","shaders","programs","webglContext"],this.data={fps:60,memory:0,drawCall:0,triangles:0,lines:0,points:0,textures:0,shaders:0,programs:0,webglContext:"2.0"},this.core=new h(e),this.createContainer(),this.update=this.update.bind(this)}var t=e.prototype;return t.createContainer=function(){var e=document.createElement("div");e.classList.add("gl-perf"),e.innerHTML='\n <dl>\n <dt>FPS</dt>\n <dd>0</dd>\n <dt>Memory <span class="unit">(MB)</span></dt>\n <dd>0</dd>\n <dt>DrawCall</dt>\n <dd>0</dd>\n <dt>Triangles</dt>\n <dd>0</dd>\n <dt>Textures</dt>\n <dd>0</dd>\n <dt>Shaders</dt>\n <dd>0</dd>\n <dt>Program</dt>\n <dd>0</dd>\n <dt>WebGL</dt>\n <dd></dd>\n </dl>\n',e.appendChild(this.createStyle()),document.body.appendChild(e),this.doms=Array.prototype.slice.apply(e.querySelectorAll("dd")),this.container=e},t.createStyle=function(){var e=document.createElement("style");return e.appendChild(document.createTextNode(d)),e},t.update=function(e){var t,r=this.core.update(e);if(r&&0!==r.drawCall&&0!==r.triangles)for(var n=0,s=this.items.length;n<s;n++)t=this,function(e,n){var s=t.doms[e],o=r[t.items[e]]||0;requestAnimationFrame(function(){s.innerText=String(o)})}(n)},t.reset=function(){var e;this.core.reset();for(var t=0,r=this.items.length;t<r;t++)e=this,function(t,r){var n=e.doms[t],s=e.items[t],o=e.data[s]||0;requestAnimationFrame(function(){n.innerText=String(o)})}(t)},t.release=function(){this.core.release()},t.dispose=function(){this.release(),document.body.removeChild(this.container)},e}(),u=function(e){function t(){return e.apply(this,arguments)}!function(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}(t,e);var r=t.prototype;return r.onStart=function(){var e=this.engine.renderer.pipelineContext.gl;this.monitor=new l(e)},r.onUpdate=function(e){this.monitor.update(e)},r.dispose=function(){e.prototype.dispose.call(this),this.monitor.dispose()},t}(t.Behaviour),c={images:[],fonts:[],version:"3.0",shapes:[],plugins:[],type:"ge",compositions:[{id:"2",name:"stats",duration:5,startTime:0,endBehavior:2,previewSize:[750,1624],items:[{id:"05e1c616baf34cc084968a05703719cd"}],camera:{fov:60,far:40,near:.1,clipMode:1,position:[0,0,8],rotation:[0,0,0]},sceneBindings:[]}],components:[],geometries:[],materials:[],items:[{id:"05e1c616baf34cc084968a05703719cd",name:"component",duration:99999,type:"1",visible:!0,endBehavior:0,delay:0,renderLevel:"B+",components:[],transform:{position:{x:0,y:0,z:0},eulerHint:{x:0,y:0,z:0},anchor:{x:0,y:0},size:{x:1.2,y:1.2},scale:{x:1,y:1,z:1}},dataType:"VFXItemData"}],shaders:[],bins:[],textures:[],animations:[],compositionId:"2"},p=function(){function e(t,r){void 0===r&&(r={debug:!1}),this.player=t,e.options=r,this.init()}return e.prototype.init=function(){var e,t=this;return(e=function(){var e;return function(e,t){var r,n,s,o,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(h){return function(a){if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(i=0)),i;)try{if(r=1,n&&(s=2&a[0]?n.return:a[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,a[1])).done)return s;switch(n=0,s&&(a=[2&a[0],s.value]),a[0]){case 0:case 1:s=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(s=(s=i.trys).length>0&&s[s.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!s||a[1]>s[0]&&a[1]<s[3])){i.label=a[1];break}if(6===a[0]&&i.label<s[1]){i.label=s[1],s=a;break}if(s&&i.label<s[2]){i.label=s[2],i.ops.push(a);break}s[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],n=0}finally{r=s=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,h])}}}(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,t.player.loadScene(c)];case 1:return null==(e=r.sent().getItemByName("component"))||e.addComponent(u),[3,3];case 2:throw Error("Failed to load stats scene: "+r.sent().message+".");case 3:return[2]}})},function(){var t=this,n=arguments;return new Promise(function(s,o){var i=e.apply(t,n);function a(e){r(i,s,o,a,h,"next",e)}function h(e){r(i,s,o,a,h,"throw",e)}a(void 0)})})()},e}();e.Stats=p,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
8
8
|
//# sourceMappingURL=index.min.js.map
|
package/dist/index.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.min.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../src/hooks/drawcall-hook.ts","../src/hooks/program-hook.ts","../src/hooks/shader-hook.ts","../src/hooks/texture-hook.ts","../src/core.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_instanceof.js","../src/monitor.ts","../src/stats-component.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_inherits.js","../src/stats.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nexport function _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","export function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { Stats } from '../stats';\n\n/**\n * DrawCallHook\n */\nexport default class DrawCallHook {\n drawCall = 0;\n triangles = 0;\n lines = 0;\n points = 0;\n\n private hooked = true;\n private readonly realDrawElements: (mode: number, count: number, type: number, offset: number) => void;\n private readonly realDrawArrays: (mode: number, first: number, count: number) => void;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realDrawElements = gl.drawElements;\n this.realDrawArrays = gl.drawArrays;\n\n gl.drawElements = this.hookedDrawElements.bind(this);\n gl.drawArrays = this.hookedDrawArrays.bind(this);\n\n if (Stats.options.debug) {\n console.debug('DrawCall is hooked.');\n }\n }\n\n private hookedDrawElements (mode: number, count: number, type: number, offset: number): void {\n this.realDrawElements.call(this.gl, mode, count, type, offset);\n this.update(count, mode);\n }\n\n private hookedDrawArrays (mode: number, first: number, count: number): void {\n this.realDrawArrays.call(this.gl, mode, first, count);\n this.update(count, mode);\n }\n\n private update (count: number, mode: number): void {\n const { gl } = this;\n\n this.drawCall++;\n\n switch (mode) {\n case gl.TRIANGLES:\n this.triangles += count / 3;\n\n break;\n case gl.TRIANGLE_STRIP:\n case gl.TRIANGLE_FAN:\n this.triangles += count - 2;\n\n break;\n case gl.LINES:\n this.lines += count / 2;\n\n break;\n case gl.LINE_STRIP:\n this.lines += count - 1;\n\n break;\n case gl.LINE_LOOP:\n this.lines += count;\n\n break;\n case gl.POINTS:\n this.points += count;\n\n break;\n default:\n console.error(`Unknown draw mode: ${mode}. Count: ${count}`);\n\n break;\n }\n }\n\n reset (): void {\n this.drawCall = 0;\n this.triangles = 0;\n this.lines = 0;\n this.points = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.drawElements = this.realDrawElements;\n this.gl.drawArrays = this.realDrawArrays;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ProgramHook\n * 每一帧的 shader 数量\n */\nexport default class ProgramHook {\n programs = 0;\n\n private readonly realUseProgram: (program: WebGLProgram | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realUseProgram = gl.useProgram;\n\n gl.useProgram = this.hookedUseProgram.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Program is hooked.');\n }\n }\n\n private hookedUseProgram (program: WebGLProgram): void {\n this.realUseProgram.call(this.gl, program);\n this.programs++;\n\n if (Stats.options.debug) {\n console.debug(`UseProgram: ${program}, program: ${this.programs}.`);\n }\n }\n\n reset (): void {\n this.programs = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.useProgram = this.realUseProgram;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ShaderHook\n */\nexport default class ShaderHook {\n shaders = 0;\n\n private readonly realAttachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private readonly realDetachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realAttachShader = gl.attachShader;\n this.realDetachShader = gl.detachShader;\n\n gl.attachShader = this.hookedAttachShader.bind(this);\n gl.detachShader = this.hookedDetachShader.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Shader is hooked.');\n }\n }\n\n private hookedAttachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realAttachShader.call(this.gl, program, shader);\n this.shaders++;\n\n if (Stats.options.debug) {\n console.debug(`AttachShader: ${shader}. shaders: ${this.shaders}`);\n }\n }\n\n private hookedDetachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realDetachShader.call(this.gl, program, shader);\n this.shaders--;\n\n if (Stats.options.debug) {\n console.debug(`DetachShader. shaders: ${this.shaders}`);\n }\n }\n\n reset (): void {\n this.shaders = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.attachShader = this.realAttachShader;\n this.gl.detachShader = this.realDetachShader;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * TextureHook\n */\nexport default class TextureHook {\n textures = 0;\n\n private readonly realCreateTexture: () => WebGLTexture | null;\n private readonly realDeleteTexture: (texture: WebGLTexture | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realCreateTexture = gl.createTexture;\n this.realDeleteTexture = gl.deleteTexture;\n\n gl.createTexture = this.hookedCreateTexture.bind(this);\n gl.deleteTexture = this.hookedDeleteTexture.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Texture is hooked.');\n }\n }\n\n private hookedCreateTexture (): WebGLTexture | null {\n const texture = this.realCreateTexture.call(this.gl);\n\n this.textures++;\n\n if (Stats.options.debug) {\n console.debug(`CreateTexture: ${texture}, textures: ${this.textures}.`);\n }\n\n return texture;\n }\n\n private hookedDeleteTexture (texture: WebGLTexture | null): void {\n this.realDeleteTexture.call(this.gl, texture);\n this.textures--;\n\n if (Stats.options.debug) {\n console.debug(`DeleteTexture, textures: ${this.textures}.`);\n }\n }\n\n reset (): void {\n this.textures = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.createTexture = this.realCreateTexture;\n this.gl.deleteTexture = this.realDeleteTexture;\n this.hooked = false;\n }\n }\n}\n","import DrawCallHook from './hooks/drawcall-hook';\nimport ProgramHook from './hooks/program-hook';\nimport ShaderHook from './hooks/shader-hook';\nimport TextureHook from './hooks/texture-hook';\n\ndeclare global {\n interface Performance {\n memory: any,\n }\n}\n\n/**\n * Hook gl to calculate stats\n */\nexport class Core {\n private drawCallHook: DrawCallHook;\n private textureHook: TextureHook;\n private shaderHook: ShaderHook;\n private samplingFrames = 60;\n private samplingIndex = 0;\n private updateCounter = 0;\n private updateTime = 0;\n private programHook: ProgramHook;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n if (!gl) {\n throw new Error('Unsupported WebGL context.');\n }\n this.hook(gl);\n }\n\n private hook (gl: WebGLRenderingContext | WebGL2RenderingContext): void {\n this.drawCallHook = new DrawCallHook(gl);\n this.textureHook = new TextureHook(gl);\n this.shaderHook = new ShaderHook(gl);\n this.programHook = new ProgramHook(gl);\n }\n\n /**\n * reset draw call hook\n */\n reset (): void {\n this.drawCallHook?.reset();\n this.programHook?.reset();\n }\n\n /**\n * release hook\n */\n release (): void {\n this.drawCallHook?.release();\n this.textureHook?.release();\n this.shaderHook?.release();\n this.programHook?.release();\n }\n\n /**\n * update performance data\n */\n update (dt: number): PerformanceData | undefined {\n const now = performance.now();\n\n this.updateCounter++;\n\n if (now - this.updateTime < 1000) {\n return undefined;\n }\n\n if (this.samplingIndex !== this.samplingFrames) {\n this.reset();\n this.samplingIndex++;\n\n return undefined;\n }\n\n this.samplingIndex = 0;\n\n const data: PerformanceData = {\n fps: Math.round((this.updateCounter * 1000) / (now - this.updateTime)),\n // eslint-disable-next-line compat/compat -- performance.memory is not standard\n memory: performance.memory && (performance.memory.usedJSHeapSize / 1048576) >> 0,\n drawCall: (this.drawCallHook.drawCall === 0) ? 0 : this.drawCallHook.drawCall - 1,\n triangles: (this.drawCallHook.triangles === 0) ? 0 : this.drawCallHook.triangles - 2,\n lines: this.drawCallHook.lines,\n points: this.drawCallHook.points,\n textures: this.textureHook.textures,\n shaders: (this.shaderHook.shaders === 0) ? 0 : this.shaderHook.shaders + 1,\n programs: this.programHook.programs,\n webglContext: this.gl instanceof WebGL2RenderingContext ? '2.0' : '1.0',\n };\n\n this.reset();\n\n this.updateCounter = 0;\n this.updateTime = now;\n\n return data;\n }\n}\n\nexport interface PerformanceData {\n fps: number,\n memory: number,\n drawCall: number,\n triangles: number,\n lines: number,\n points: number,\n textures: number,\n shaders: number,\n webglContext: string,\n programs: number,\n}\n","export function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","import type { PerformanceData } from './core';\nimport { Core } from './core';\n\nconst tpl = `\n <dl>\n <dt>FPS</dt>\n <dd>0</dd>\n <dt>Memory <span class=\"unit\">(MB)</span></dt>\n <dd>0</dd>\n <dt>DrawCall</dt>\n <dd>0</dd>\n <dt>Triangles</dt>\n <dd>0</dd>\n <dt>Textures</dt>\n <dd>0</dd>\n <dt>Shaders</dt>\n <dd>0</dd>\n <dt>Program</dt>\n <dd>0</dd>\n <dt>WebGL</dt>\n <dd></dd>\n </dl>\n`;\nconst css = `\n .gl-perf {\n pointer-events: none;\n user-select: none;\n position: fixed;\n top: 0;\n left: 0;\n padding: ${10 / 7.5}vh ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n background: rgba(0, 0, 0, 0.3);\n color: #fff;\n font: ${10 / 7.5}vh arial;\n }\n\n .gl-perf dl,\n .gl-perf dt,\n .gl-perf dd {\n padding: 0;\n margin: 0;\n }\n\n .gl-perf dt {\n color: #fff;\n text-shadow: #000 0 0 1px;\n }\n\n .gl-perf dt .unit{\n font-size: ${10 / 7.5}vh;\n }\n\n .gl-perf dd {\n font-size: ${20 / 7.5}vh;\n padding: ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n }\n`;\n\nexport class Monitor {\n private core: Core;\n private doms: HTMLElement[];\n private container: HTMLElement;\n private readonly items = ['fps', 'memory', 'drawCall', 'triangles', 'textures', 'shaders', 'programs', 'webglContext'];\n\n private data: PerformanceData = {\n fps: 60,\n memory: 0,\n drawCall: 0,\n triangles: 0,\n lines: 0,\n points: 0,\n textures: 0,\n shaders: 0,\n programs: 0,\n webglContext: '2.0',\n };\n\n constructor (gl: WebGLRenderingContext | WebGL2RenderingContext) {\n this.core = new Core(gl);\n\n this.createContainer();\n this.update = this.update.bind(this);\n }\n\n private createContainer (): void {\n const container = document.createElement('div');\n\n container.classList.add('gl-perf');\n container.innerHTML = tpl;\n container.appendChild(this.createStyle());\n document.body.appendChild(container);\n\n this.doms = Array.prototype.slice.apply(container.querySelectorAll('dd'));\n this.container = container;\n }\n\n private createStyle (): HTMLStyleElement {\n const style: HTMLStyleElement = document.createElement('style');\n\n style.appendChild(document.createTextNode(css));\n\n return style;\n }\n\n /**\n * Update per frame\n */\n public update (dt: number): void {\n const data = this.core.update(dt);\n\n if (!data || data.drawCall === 0 || data.triangles === 0) {\n return;\n }\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * reset all hooks\n */\n public reset (): void {\n this.core.reset();\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = this.data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * release all hooks\n */\n public release (): void {\n this.core.release();\n }\n\n /**\n * destroy the instance\n */\n public destroy (): void {\n this.release();\n document.body.removeChild(this.container);\n }\n}\n","import { Behaviour, type GLRenderer } from '@galacean/effects';\nimport { Monitor } from './monitor';\n\nexport class StatsComponent extends Behaviour {\n /**\n * 监控对象\n */\n monitor: Monitor;\n\n override start (): void {\n const renderer = this.engine.renderer as GLRenderer;\n const gl = renderer.pipelineContext.gl;\n\n this.monitor = new Monitor(gl);\n }\n\n override update (dt: number): void {\n this.monitor.update(dt);\n }\n}\n","import { _set_prototype_of } from \"./_set_prototype_of.js\";\n\nexport function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","import type { Player } from '@galacean/effects';\nimport { StatsComponent } from './stats-component';\n\nexport interface StatsOptions {\n debug?: boolean,\n}\n\nconst json = {\n 'images': [],\n 'fonts': [],\n 'version': '3.0',\n 'shapes': [],\n 'plugins': [],\n 'type': 'ge',\n 'compositions': [{\n 'id': '2',\n 'name': 'stats',\n 'duration': 5,\n 'startTime': 0,\n 'endBehavior': 2,\n 'previewSize': [750, 1624],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n }],\n 'camera': {\n 'fov': 60,\n 'far': 40,\n 'near': 0.1,\n 'clipMode': 1,\n 'position': [0, 0, 8],\n 'rotation': [0, 0, 0],\n },\n 'sceneBindings': [],\n }],\n 'components': [],\n 'geometries': [],\n 'materials': [],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n 'name': 'component',\n 'duration': 99999,\n 'type': '1',\n 'visible': true,\n 'endBehavior': 0,\n 'delay': 0,\n 'renderLevel': 'B+',\n 'components': [],\n 'transform': {\n 'position': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'eulerHint': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'anchor': {\n 'x': 0,\n 'y': 0,\n },\n 'size': {\n 'x': 1.2,\n 'y': 1.2,\n },\n 'scale': {\n 'x': 1,\n 'y': 1,\n 'z': 1,\n },\n },\n 'dataType': 'VFXItemData',\n }],\n 'shaders': [],\n 'bins': [],\n 'textures': [],\n 'animations': [],\n 'compositionId': '2',\n};\n\nexport class Stats {\n static options: StatsOptions;\n\n constructor (\n public readonly player: Player,\n options: StatsOptions = { debug: false },\n ) {\n Stats.options = options;\n\n void this.init();\n }\n\n async init () {\n try {\n const composition = await this.player.loadScene(json);\n const component = composition.getItemByName('component');\n\n component?.addComponent(StatsComponent);\n } catch (e: any) {\n throw new Error(`Failed to load stats scene: ${e.message}.`);\n }\n }\n}\n"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","SuppressedError","DrawCallHook","gl","drawCall","triangles","lines","points","hooked","realDrawElements","drawElements","realDrawArrays","drawArrays","hookedDrawElements","bind","hookedDrawArrays","Stats","options","debug","console","_proto","mode","count","type","offset","call","update","first","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","LINES","LINE_STRIP","LINE_LOOP","POINTS","reset","release","ProgramHook","programs","realUseProgram","useProgram","hookedUseProgram","program","ShaderHook","shaders","realAttachShader","attachShader","realDetachShader","detachShader","hookedAttachShader","hookedDetachShader","shader","TextureHook","textures","realCreateTexture","createTexture","realDeleteTexture","deleteTexture","hookedCreateTexture","hookedDeleteTexture","texture","Core","samplingFrames","samplingIndex","updateCounter","updateTime","Error","hook","drawCallHook","textureHook","shaderHook","programHook","_this_drawCallHook","_this_programHook","_this_textureHook","_this_shaderHook","dt","now","performance","data","fps","Math","round","memory","usedJSHeapSize","webglContext","_instanceof","left","right","Symbol","hasInstance","WebGL2RenderingContext","css","Monitor","items","core","createContainer","container","document","createElement","classList","add","innerHTML","appendChild","createStyle","body","doms","Array","prototype","slice","apply","querySelectorAll","style","createTextNode","i","l","length","dom","_this","requestAnimationFrame","innerText","String","item","destroy","removeChild","StatsComponent","Behaviour","subClass","superClass","TypeError","create","constructor","writable","configurable","start","renderer","engine","pipelineContext","monitor","json","player","init","fn","_async_to_generator","composition","component","thisArg","f","y","t","g","_","label","sent","trys","ops","next","verb","iterator","n","v","step","op","pop","push","e","loadScene","_state","getItemByName","addComponent","message","self","args","arguments","err","undefined"],"mappings":";;;;;;+TAAA,SAASA,EAAmBC,CAAG,CAAEC,CAAO,CAAEC,CAAM,CAAEC,CAAK,CAAEC,CAAM,CAAEC,CAAG,CAAEC,CAAG,EACrE,GAAI,CACA,IAAIC,EAAOP,CAAG,CAACK,EAAI,CAACC,GAChBE,EAAQD,EAAKC,KAAK,AAC1B,CAAE,MAAOC,EAAO,CACZP,EAAOO,GACP,MACJ,CACIF,EAAKG,IAAI,CAAET,EAAQO,GAClBG,QAAQV,OAAO,CAACO,GAAOI,IAAI,CAACT,EAAOC,EAC5C,CCVO,SAASS,EAAkBC,CAAC,CAAEC,CAAC,EAOlC,MAAOF,AANPA,CAAAA,EAAoBG,OAAOC,cAAc,EAAI,SAAwBH,CAAC,CAAEC,CAAC,EAGrE,OAFAD,EAAEI,SAAS,CAAGH,EAEPD,CACX,CAAA,EAEyBA,EAAGC,EAChC,CCmTuB,AAA2B,YAA3B,OAAOI,iBAAiCA,gBCtThD,IAAMC,EAAD,WAACA,SAAAA,EAWjBC,CAAmE,OAAlDA,EAAAA,CAAAA,OAVnBC,QAAW,CAAA,OACXC,SAAY,CAAA,OACZC,KAAQ,CAAA,OACRC,MAAS,CAAA,OAEDC,MAAS,CAAA,CAAA,EAOf,IAAI,CAACC,gBAAgB,CAAGN,EAAGO,YAAY,CACvC,IAAI,CAACC,cAAc,CAAGR,EAAGS,UAAU,CAEnCT,EAAGO,YAAY,CAAG,IAAI,CAACG,kBAAkB,CAACC,IAAI,CAAC,IAAI,EACnDX,EAAGS,UAAU,CAAG,IAAI,CAACG,gBAAgB,CAACD,IAAI,CAAC,IAAI,EAE3CE,EAAMC,OAAO,CAACC,KAAK,EACrBC,QAAQD,KAAK,CAAC,uBApBChB,IAAAA,EAAAA,EAAAA,SAAAA,CAAAA,OAwBnBkB,EAAQP,kBAGP,CAHD,SAA4BQ,CAAY,CAAEC,CAAa,CAAEC,CAAY,CAAEC,CAAc,EACnF,IAAI,CAACf,gBAAgB,CAACgB,IAAI,CAAC,IAAI,CAACtB,EAAE,CAAEkB,EAAMC,EAAOC,EAAMC,GACvD,IAAI,CAACE,MAAM,CAACJ,EAAOD,EACrB,EAEAD,EAAQL,gBAGP,CAHD,SAA0BM,CAAY,CAAEM,CAAa,CAAEL,CAAa,EAClE,IAAI,CAACX,cAAc,CAACc,IAAI,CAAC,IAAI,CAACtB,EAAE,CAAEkB,EAAMM,EAAOL,GAC/C,IAAI,CAACI,MAAM,CAACJ,EAAOD,EACrB,EAEAD,EAAQM,MAoCP,CApCD,SAAgBJ,CAAa,CAAED,CAAY,EACzC,IAAQlB,EAAO,IAAI,CAAXA,EAAAA,CAIR,OAFA,IAAI,CAACC,QAAQ,GAELiB,GACN,KAAKlB,EAAGyB,SAAS,CACf,IAAI,CAACvB,SAAS,EAAIiB,EAAQ,EAE1B,KACF,MAAKnB,EAAG0B,cAAc,CACtB,KAAK1B,EAAG2B,YAAY,CAClB,IAAI,CAACzB,SAAS,EAAIiB,EAAQ,EAE1B,KACF,MAAKnB,EAAG4B,KAAK,CACX,IAAI,CAACzB,KAAK,EAAIgB,EAAQ,EAEtB,KACF,MAAKnB,EAAG6B,UAAU,CAChB,IAAI,CAAC1B,KAAK,EAAIgB,EAAQ,EAEtB,KACF,MAAKnB,EAAG8B,SAAS,CACf,IAAI,CAAC3B,KAAK,EAAIgB,EAEd,KACF,MAAKnB,EAAG+B,MAAM,CACZ,IAAI,CAAC3B,MAAM,EAAIe,EAEf,KACF,SACEH,QAAQ5B,KAAK,CAAC,sBAAsB8B,EAAK,YAAWC,EAGxD,CACF,EAEAa,EAAAA,KAKC,CALDA,WACE,IAAI,CAAC/B,QAAQ,CAAG,EAChB,IAAI,CAACC,SAAS,CAAG,EACjB,IAAI,CAACC,KAAK,CAAG,EACb,IAAI,CAACC,MAAM,CAAG,CAChB,EAEA6B,EAAAA,OAMC,CANDA,WACM,IAAI,CAAC5B,MAAM,GACb,IAAI,CAACL,EAAE,CAACO,YAAY,CAAG,IAAI,CAACD,gBAAgB,CAC5C,IAAI,CAACN,EAAE,CAACS,UAAU,CAAG,IAAI,CAACD,cAAc,CACxC,IAAI,CAACH,MAAM,CAAG,CAAA,EAElB,EArFmBN,KCCAmC,EAAD,WAACA,SAAAA,EAOjBlC,CAAmE,OAAlDA,EAAAA,CAAAA,OANnBmC,QAAW,CAAA,OAGH9B,MAAS,CAAA,CAAA,EAKf,IAAI,CAAC+B,cAAc,CAAGpC,EAAGqC,UAAU,CAEnCrC,EAAGqC,UAAU,CAAG,IAAI,CAACC,gBAAgB,CAAC3B,IAAI,CAAC,IAAI,EAE3CE,EAAMC,OAAO,CAACC,KAAK,EACrBC,QAAQD,KAAK,CAAC,sBAdCmB,IAAAA,EAAAA,EAAAA,SAAAA,CAAAA,OAkBnBjB,EAAQqB,gBAOP,CAPD,SAA0BC,CAAqB,EAC7C,IAAI,CAACH,cAAc,CAACd,IAAI,CAAC,IAAI,CAACtB,EAAE,CAAEuC,GAClC,IAAI,CAACJ,QAAQ,GAETtB,EAAMC,OAAO,CAACC,KAAK,EACrBC,QAAQD,KAAK,CAAC,eAAewB,EAAQ,cAAa,IAAI,CAACJ,QAAQ,CAAC,IAEpE,EAEAH,EAAAA,KAEC,CAFDA,WACE,IAAI,CAACG,QAAQ,CAAG,CAClB,EAEAF,EAAAA,OAKC,CALDA,WACM,IAAI,CAAC5B,MAAM,GACb,IAAI,CAACL,EAAE,CAACqC,UAAU,CAAG,IAAI,CAACD,cAAc,CACxC,IAAI,CAAC/B,MAAM,CAAG,CAAA,EAElB,EApCmB6B,KCDAM,EAAD,WAACA,SAAAA,EAQjBxC,CAAmE,OAAlDA,EAAAA,CAAAA,OAPnByC,OAAU,CAAA,OAIFpC,MAAS,CAAA,CAAA,EAKf,IAAI,CAACqC,gBAAgB,CAAG1C,EAAG2C,YAAY,CACvC,IAAI,CAACC,gBAAgB,CAAG5C,EAAG6C,YAAY,CAEvC7C,EAAG2C,YAAY,CAAG,IAAI,CAACG,kBAAkB,CAACnC,IAAI,CAAC,IAAI,EACnDX,EAAG6C,YAAY,CAAG,IAAI,CAACE,kBAAkB,CAACpC,IAAI,CAAC,IAAI,EAE/CE,EAAMC,OAAO,CAACC,KAAK,EACrBC,QAAQD,KAAK,CAAC,qBAjBCyB,IAAAA,EAAAA,EAAAA,SAAAA,CAAAA,OAqBnBvB,EAAQ6B,kBAOP,CAPD,SAA4BP,CAAqB,CAAES,CAAmB,EACpE,IAAI,CAACN,gBAAgB,CAACpB,IAAI,CAAC,IAAI,CAACtB,EAAE,CAAEuC,EAASS,GAC7C,IAAI,CAACP,OAAO,GAER5B,EAAMC,OAAO,CAACC,KAAK,EACrBC,QAAQD,KAAK,CAAC,iBAAiBiC,EAAO,cAAa,IAAI,CAACP,OAAO,CAEnE,EAEAxB,EAAQ8B,kBAOP,CAPD,SAA4BR,CAAqB,CAAES,CAAmB,EACpE,IAAI,CAACJ,gBAAgB,CAACtB,IAAI,CAAC,IAAI,CAACtB,EAAE,CAAEuC,EAASS,GAC7C,IAAI,CAACP,OAAO,GAER5B,EAAMC,OAAO,CAACC,KAAK,EACrBC,QAAQD,KAAK,CAAE,0BAAyB,IAAI,CAAC0B,OAAO,CAExD,EAEAT,EAAAA,KAEC,CAFDA,WACE,IAAI,CAACS,OAAO,CAAG,CACjB,EAEAR,EAAAA,OAMC,CANDA,WACM,IAAI,CAAC5B,MAAM,GACb,IAAI,CAACL,EAAE,CAAC2C,YAAY,CAAG,IAAI,CAACD,gBAAgB,CAC5C,IAAI,CAAC1C,EAAE,CAAC6C,YAAY,CAAG,IAAI,CAACD,gBAAgB,CAC5C,IAAI,CAACvC,MAAM,CAAG,CAAA,EAElB,EAjDmBmC,KCAAS,EAAD,WAACA,SAAAA,EAQjBjD,CAAmE,OAAlDA,EAAAA,CAAAA,OAPnBkD,QAAW,CAAA,OAIH7C,MAAS,CAAA,CAAA,EAKf,IAAI,CAAC8C,iBAAiB,CAAGnD,EAAGoD,aAAa,CACzC,IAAI,CAACC,iBAAiB,CAAGrD,EAAGsD,aAAa,CAEzCtD,EAAGoD,aAAa,CAAG,IAAI,CAACG,mBAAmB,CAAC5C,IAAI,CAAC,IAAI,EACrDX,EAAGsD,aAAa,CAAG,IAAI,CAACE,mBAAmB,CAAC7C,IAAI,CAAC,IAAI,EAEjDE,EAAMC,OAAO,CAACC,KAAK,EACrBC,QAAQD,KAAK,CAAC,sBAjBCkC,IAAAA,EAAAA,EAAAA,SAAAA,CAAAA,OAqBnBhC,EAAQsC,mBAUP,CAVD,WACE,IAAME,EAAU,IAAI,CAACN,iBAAiB,CAAC7B,IAAI,CAAC,IAAI,CAACtB,EAAE,EAQnD,OANA,IAAI,CAACkD,QAAQ,GAETrC,EAAMC,OAAO,CAACC,KAAK,EACrBC,QAAQD,KAAK,CAAC,kBAAkB0C,EAAQ,eAAc,IAAI,CAACP,QAAQ,CAAC,KAG/DO,CACT,EAEAxC,EAAQuC,mBAOP,CAPD,SAA6BC,CAA4B,EACvD,IAAI,CAACJ,iBAAiB,CAAC/B,IAAI,CAAC,IAAI,CAACtB,EAAE,CAAEyD,GACrC,IAAI,CAACP,QAAQ,GAETrC,EAAMC,OAAO,CAACC,KAAK,EACrBC,QAAQD,KAAK,CAAE,4BAA2B,IAAI,CAACmC,QAAQ,CAAC,IAE5D,EAEAlB,EAAAA,KAEC,CAFDA,WACE,IAAI,CAACkB,QAAQ,CAAG,CAClB,EAEAjB,EAAAA,OAMC,CANDA,WACM,IAAI,CAAC5B,MAAM,GACb,IAAI,CAACL,EAAE,CAACoD,aAAa,CAAG,IAAI,CAACD,iBAAiB,CAC9C,IAAI,CAACnD,EAAE,CAACsD,aAAa,CAAG,IAAI,CAACD,iBAAiB,CAC9C,IAAI,CAAChD,MAAM,CAAG,CAAA,EAElB,EApDmB4C,KCSdS,EAAK,WAACA,SAAAA,EAWT1D,CAAmE,EAEnE,QAFiBA,EAAAA,CAAAA,OAPX2D,cAAiB,CAAA,QACjBC,aAAgB,CAAA,OAChBC,aAAgB,CAAA,OAChBC,UAAa,CAAA,EAMf,CAAC9D,EACH,MAAM,AAAI+D,MAAM,8BAElB,IAAI,CAACC,IAAI,CAAChE,GAhBD0D,IAAAA,EAAAA,EAAAA,SAAAA,CAAAA,OAmBXzC,EAAQ+C,IAKP,CALD,SAAchE,CAAkD,EAC9D,IAAI,CAACiE,YAAY,CAAG,IAAIlE,EAAaC,GACrC,IAAI,CAACkE,WAAW,CAAG,IAAIjB,EAAYjD,GACnC,IAAI,CAACmE,UAAU,CAAG,IAAI3B,EAAWxC,GACjC,IAAI,CAACoE,WAAW,CAAG,IAAIlC,EAAYlC,EACrC,EAKAgC,EAAAA,KAGC,CAHDA,eACEqC,EACAC,CADA,AAAiB,OAAjBD,CAAAA,EAAA,IAAI,CAACJ,YAAY,GAAjBI,EAAmBrC,KAAK,GACxB,AAAgB,MAAhBsC,CAAAA,EAAA,IAAI,CAACF,WAAW,GAAhBE,EAAkBtC,KAAK,EACzB,EAKAC,EAAAA,OAKC,CALDA,WACE,IAAAoC,EACAE,EACAC,EACAF,CAHA,AAAiB,OAAjBD,CAAAA,EAAA,IAAI,CAACJ,YAAY,GAAjBI,EAAmBpC,OAAO,GAC1B,AAAgB,MAAhBsC,CAAAA,EAAA,IAAI,CAACL,WAAW,GAAhBK,EAAkBtC,OAAO,GACzB,AAAe,MAAfuC,CAAAA,EAAA,IAAI,CAACL,UAAU,GAAfK,EAAiBvC,OAAO,GACxB,AAAgB,MAAhBqC,CAAAA,EAAA,IAAI,CAACF,WAAW,GAAhBE,EAAkBrC,OAAO,EAC3B,EAKAV,EAAAA,MAsCC,CAtCDA,SAAQkD,CAAU,EAChB,IAAMC,EAAMC,YAAYD,GAAG,GAI3B,GAFA,IAAI,CAACb,aAAa,IAEda,CAAAA,EAAM,IAAI,CAACZ,UAAU,CAAG,MAI5B,GAAI,IAAI,CAACF,aAAa,GAAK,IAAI,CAACD,cAAc,CAAE,CAC9C,IAAI,CAAC3B,KAAK,GACV,IAAI,CAAC4B,aAAa,GAElB,MACF,CAEA,IAAI,CAACA,aAAa,CAAG,EAErB,IAAMgB,EAAwB,CAC5BC,IAAKC,KAAKC,KAAK,CAAE,AAAqB,IAArB,IAAI,CAAClB,aAAa,CAAYa,CAAAA,EAAM,IAAI,CAACZ,UAAU,AAAVA,GAE1DkB,OAAQL,YAAYK,MAAM,EAAKL,YAAYK,MAAM,CAACC,cAAc,CAAG,SAAY,EAC/EhF,SAAU,AAAgC,IAAhC,IAAK,CAACgE,YAAY,CAAChE,QAAQ,CAAU,EAAI,IAAI,CAACgE,YAAY,CAAChE,QAAQ,CAAG,EAChFC,UAAW,AAAiC,IAAjC,IAAK,CAAC+D,YAAY,CAAC/D,SAAS,CAAU,EAAI,IAAI,CAAC+D,YAAY,CAAC/D,SAAS,CAAG,EACnFC,MAAO,IAAI,CAAC8D,YAAY,CAAC9D,KAAK,CAC9BC,OAAQ,IAAI,CAAC6D,YAAY,CAAC7D,MAAM,CAChC8C,SAAU,IAAI,CAACgB,WAAW,CAAChB,QAAQ,CACnCT,QAAS,AAA6B,IAA7B,IAAK,CAAC0B,UAAU,CAAC1B,OAAO,CAAU,EAAI,IAAI,CAAC0B,UAAU,CAAC1B,OAAO,CAAG,EACzEN,SAAU,IAAI,CAACiC,WAAW,CAACjC,QAAQ,CACnC+C,aAAcC,CAAAA,AC1Fb,SAASA,EAAYC,CAAI,CAAEC,CAAK,SACnC,AAAIA,AAAS,MAATA,GAAiB,AAAkB,aAAlB,OAAOC,QAA0BD,CAAK,CAACC,OAAOC,WAAW,CAAC,CACpE,CAAC,CAACF,CAAK,CAACC,OAAOC,WAAW,CAAC,CAACH,GACzBA,EAAAA,EAAgBC,EAClC,EDsFoB,IAAI,CAACrF,EAAE,CAAYwF,wBAAiC,MAAR,KAC5D,EAOA,OALA,IAAI,CAACxD,KAAK,GAEV,IAAI,CAAC6B,aAAa,CAAG,EACrB,IAAI,CAACC,UAAU,CAAGY,EAEXE,EACT,EArFWlB,CAsFZ,IE7EK+B,EAAM,oIAOG,GAAK,IAAI,MAAK,GAAK,IAAI,QAAO,GAAK,IAAI,yEAG1C,GAAK,IAAI,6NAgBJ,GAAK,IAAI,+CAIT,GAAK,IAAI,qBACX,GAAK,IAAI,QAAO,GAAK,IAAI,aAIjCC,EAAK,WAACA,SAAAA,EAmBE1F,CAAkD,OAf9C2F,KAAQ,CAAA,CAAC,MAAO,SAAU,WAAY,YAAa,WAAY,UAAW,WAAY,eAAe,MAE9Gf,IAAwB,CAAA,CAC9BC,IAAK,GACLG,OAAQ,EACR/E,SAAU,EACVC,UAAW,EACXC,MAAO,EACPC,OAAQ,EACR8C,SAAU,EACVT,QAAS,EACTN,SAAU,EACV+C,aAAc,KAChB,EAGE,IAAI,CAACU,IAAI,CAAG,IAAIlC,EAAK1D,GAErB,IAAI,CAAC6F,eAAe,GACpB,IAAI,CAACtE,MAAM,CAAG,IAAI,CAACA,MAAM,CAACZ,IAAI,CAAC,IAAI,EAvB1B+E,IAAAA,EAAAA,EAAAA,SAAAA,CAAAA,OA0BXzE,EAAQ4E,eAUP,CAVD,WACE,IAAMC,EAAYC,SAASC,aAAa,CAAC,OAEzCF,EAAUG,SAAS,CAACC,GAAG,CAAC,WACxBJ,EAAUK,SAAS,CArFV,iWAsFTL,EAAUM,WAAW,CAAC,IAAI,CAACC,WAAW,IACtCN,SAASO,IAAI,CAACF,WAAW,CAACN,GAE1B,IAAI,CAACS,IAAI,CAAGC,MAAMC,SAAS,CAACC,KAAK,CAACC,KAAK,CAACb,EAAUc,gBAAgB,CAAC,OACnE,IAAI,CAACd,SAAS,CAAGA,CACnB,EAEA7E,EAAQoF,WAMP,CAND,WACE,IAAMQ,EAA0Bd,SAASC,aAAa,CAAC,SAIvD,OAFAa,EAAMT,WAAW,CAACL,SAASe,cAAc,CAACrB,IAEnCoB,CACT,EAKA5F,EAAOM,MAiBN,CAjBD,SAAekD,CAAU,EACvB,MAAMG,EAAO,IAAI,CAACgB,IAAI,CAACrE,MAAM,CAACkD,GAE9B,GAAI,AAACG,GAAQA,AAAkB,IAAlBA,EAAK3E,QAAQ,EAAU2E,AAAmB,IAAnBA,EAAK1E,SAAS,CAIlD,IAAK,IAAI6G,EAAI,EAAGC,EAAI,IAAI,CAACrB,KAAK,CAACsB,MAAM,CAAEF,EAAIC,EAAGD,IAAAA,EAAAA,IAAAA,CAAAA,cAC5C,IAAMG,EAAMC,EAAKZ,IAAI,CAACQ,EAAE,CAElB5H,EAAQyF,CAAI,CADLuC,EAAKxB,KAAK,CAACoB,EAAE,CACuB,EAAI,EAGrDK,sBAAsB,WACpBF,EAAIG,SAAS,CAAGC,OAAOnI,EACzB,EACF,EAT8C4H,EAUhD,EAKA9F,EAAOe,KAaN,CAbD,iBACE,IAAI,CAAC4D,IAAI,CAAC5D,KAAK,GAEf,IAAK,IAAI+E,EAAI,EAAGC,EAAI,IAAI,CAACrB,KAAK,CAACsB,MAAM,CAAEF,EAAIC,EAAGD,IAAAA,EAAAA,IAAAA,CAAAA,cAC5C,IAAMG,EAAMC,EAAKZ,IAAI,CAACQ,EAAE,CAClBQ,EAAOJ,EAAKxB,KAAK,CAACoB,EAAE,CACpB5H,EAAQgI,EAAKvC,IAAI,CAAC2C,EAA8B,EAAI,EAG1DH,sBAAsB,WACpBF,EAAIG,SAAS,CAAGC,OAAOnI,EACzB,EACF,EAT8C4H,EAUhD,EAKA9F,EAAOgB,OAEN,CAFD,WACE,IAAI,CAAC2D,IAAI,CAAC3D,OAAO,EACnB,EAKAhB,EAAOuG,OAGN,CAHD,WACE,IAAI,CAACvF,OAAO,GACZ8D,SAASO,IAAI,CAACmB,WAAW,CAAC,IAAI,CAAC3B,SAAS,CAC1C,EAnGWJ,CAoGZ,IC3JMgC,EAAK,SAALC,CAAA,EAAMD,SAAAA,oCAAAA,ACDN,SAAmBE,CAAQ,CAAEC,CAAU,EAC1C,GAAI,AAAsB,YAAtB,OAAOA,GAA6BA,AAAe,OAAfA,EACpC,MAAM,AAAIC,UAAU,qDAGxBF,CAAAA,EAASnB,SAAS,CAAG9G,OAAOoI,MAAM,CAACF,GAAcA,EAAWpB,SAAS,CAAE,CAAEuB,YAAa,CAAE7I,MAAOyI,EAAUK,SAAU,CAAA,EAAMC,aAAc,CAAA,CAAK,CAAE,GAE1IL,GAAYrI,EAAkBoI,EAAUC,EAChD,EDPaH,EAAAA,GAAAA,IAAAA,EAAAA,EAAAA,SAAAA,CAAAA,OAMXzG,EAASkH,KAKR,CALD,WAEE,IAAMnI,EAAKoI,AADM,IAAI,CAACC,MAAM,CAACD,QAAQ,CACjBE,eAAe,CAACtI,EAAE,AAEtC,CAAA,IAAI,CAACuI,OAAO,CAAG,IAAI7C,EAAQ1F,EAC7B,EAEAiB,EAASM,MAER,CAFD,SAAiBkD,CAAU,EACzB,IAAI,CAAC8D,OAAO,CAAChH,MAAM,CAACkD,EACtB,EAfWiD,GAAuBC,WAgBnC,EEZKa,EAAO,CACX,OAAU,EAAE,CACZ,MAAS,EAAE,CACX,QAAW,MACX,OAAU,EAAE,CACZ,QAAW,EAAE,CACb,KAAQ,KACR,aAAgB,CAAC,CACf,GAAM,IACN,KAAQ,QACR,SAAY,EACZ,UAAa,EACb,YAAe,EACf,YAAe,CAAC,IAAK,KAAK,CAC1B,MAAS,CAAC,CACR,GAAM,kCACR,EAAE,CACF,OAAU,CACR,IAAO,GACP,IAAO,GACP,KAAQ,GACR,SAAY,EACZ,SAAY,CAAC,EAAG,EAAG,EAAE,CACrB,SAAY,CAAC,EAAG,EAAG,EAAE,AACvB,EACA,cAAiB,EAAE,AACrB,EAAE,CACF,WAAc,EAAE,CAChB,WAAc,EAAE,CAChB,UAAa,EAAE,CACf,MAAS,CAAC,CACR,GAAM,mCACN,KAAQ,YACR,SAAY,MACZ,KAAQ,IACR,QAAW,CAAA,EACX,YAAe,EACf,MAAS,EACT,YAAe,KACf,WAAc,EAAE,CAChB,UAAa,CACX,SAAY,CACV,EAAK,EACL,EAAK,EACL,EAAK,CACP,EACA,UAAa,CACX,EAAK,EACL,EAAK,EACL,EAAK,CACP,EACA,OAAU,CACR,EAAK,EACL,EAAK,CACP,EACA,KAAQ,CACN,EAAK,IACL,EAAK,GACP,EACA,MAAS,CACP,EAAK,EACL,EAAK,EACL,EAAK,CACP,CACF,EACA,SAAY,aACd,EAAE,CACF,QAAW,EAAE,CACb,KAAQ,EAAE,CACV,SAAY,EAAE,CACd,WAAc,EAAE,CAChB,cAAiB,GACnB,EAEO3H,EAAK,oBAACA,EAIO4H,CAAc,CAC9B3H,CAAwC,WAAxCA,GAAAA,CAAAA,EAAwB,CAAEC,MAAO,CAAA,CAAM,CAAA,OADvB0H,MAAAA,CAAAA,EAJP5H,EAOHC,OAAO,CAAGA,EAEX,IAAI,CAAC4H,IAAI,GATL7H,OAYXI,AAZWJ,EAAAA,SAAAA,CAYL6H,IASL,CATD,eZlFkCC,eYkFlCC,CZlFkCD,EYkFlC,WAEUE,IACAC,SV4BL,SAAqBC,CAAO,CAAEzC,CAAI,EACvC,IAAsG0C,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAIJ,AAAO,EAAPA,CAAC,CAAC,EAAE,CAAM,MAAMA,CAAC,CAAC,EAAE,CAAE,OAAOA,CAAC,CAAC,EAAE,AAAE,EAAGK,KAAM,EAAE,CAAEC,IAAK,EAAE,AAAIR,EACtG,OAAOG,EAAI,CAAEM,KAAMC,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAM,AAAkB,YAAlB,OAAOpE,QAA0B6D,CAAAA,CAAC,CAAC7D,OAAOqE,QAAQ,CAAC,CAAG,WAAa,OAAO,IAAI,AAAE,CAAA,EAAIR,EACvJ,SAASO,EAAKE,CAAC,EAAI,OAAO,SAAUC,CAAC,EAAI,OAAOC,AAChD,SAAcC,CAAE,EACZ,GAAIf,EAAG,MAAM,AAAIlB,UAAU,mCAC3B,KAAOqB,GAAMA,CAAAA,EAAI,EAAGY,CAAE,CAAC,EAAE,EAAKX,CAAAA,EAAI,CAAA,CAAA,EAAKA,GAAG,GAAI,CAC1C,GAAIJ,EAAI,EAAGC,GAAMC,CAAAA,EAAIa,AAAQ,EAARA,CAAE,CAAC,EAAE,CAAOd,EAAE,MAAS,CAAGc,CAAE,CAAC,EAAE,CAAGd,EAAE,KAAQ,EAAMC,CAAAA,AAAAA,CAAAA,EAAID,EAAE,MAAS,GAAKC,EAAE5H,IAAI,CAAC2H,GAAI,CAAA,EAAKA,EAAEQ,IAAI,AAAA,GAAK,CAAEP,AAAAA,CAAAA,EAAIA,EAAE5H,IAAI,CAAC2H,EAAGc,CAAE,CAAC,EAAE,CAAA,EAAG1K,IAAI,CAAE,OAAO6J,EAE3J,OADID,EAAI,EAAJA,AAAOC,GAAGa,CAAAA,EAAK,CAACA,AAAQ,EAARA,CAAE,CAAC,EAAE,CAAMb,EAAE/J,KAAK,CAAC,AAAA,EAC/B4K,CAAE,CAAC,EAAE,EACT,KAAK,EAAG,KAAK,EAAGb,EAAIa,EAAI,KACxB,MAAK,EAAc,OAAXX,EAAEC,KAAK,GAAW,CAAElK,MAAO4K,CAAE,CAAC,EAAE,CAAE1K,KAAM,CAAA,CAAM,CACtD,MAAK,EAAG+J,EAAEC,KAAK,GAAIJ,EAAIc,CAAE,CAAC,EAAE,CAAEA,EAAK,CAAC,EAAE,CAAE,QACxC,MAAK,EAAGA,EAAKX,EAAEI,GAAG,CAACQ,GAAG,GAAIZ,EAAEG,IAAI,CAACS,GAAG,GAAI,QACxC,SACI,GAAMd,CAAYA,CAAAA,EAAIA,AAAhBA,CAAAA,EAAIE,EAAEG,IAAI,EAAQtC,MAAM,CAAG,GAAKiC,CAAC,CAACA,EAAEjC,MAAM,CAAG,EAAE,AAAF,GAAQ8C,CAAAA,AAAU,IAAVA,CAAE,CAAC,EAAE,EAAUA,AAAU,IAAVA,CAAE,CAAC,EAAE,AAAK,EAAI,CAAEX,EAAI,EAAG,QAAU,CAC3G,GAAIW,AAAU,IAAVA,CAAE,CAAC,EAAE,EAAW,CAAA,CAACb,GAAMa,CAAE,CAAC,EAAE,CAAGb,CAAC,CAAC,EAAE,EAAIa,CAAE,CAAC,EAAE,CAAGb,CAAC,CAAC,EAAE,AAAF,EAAM,CAAEE,EAAEC,KAAK,CAAGU,CAAE,CAAC,EAAE,CAAE,KAAO,CACrF,GAAIA,AAAU,IAAVA,CAAE,CAAC,EAAE,EAAUX,EAAEC,KAAK,CAAGH,CAAC,CAAC,EAAE,CAAE,CAAEE,EAAEC,KAAK,CAAGH,CAAC,CAAC,EAAE,CAAEA,EAAIa,EAAI,KAAO,CACpE,GAAIb,GAAKE,EAAEC,KAAK,CAAGH,CAAC,CAAC,EAAE,CAAE,CAAEE,EAAEC,KAAK,CAAGH,CAAC,CAAC,EAAE,CAAEE,EAAEI,GAAG,CAACS,IAAI,CAACF,GAAK,KAAO,CAC9Db,CAAC,CAAC,EAAE,EAAEE,EAAEI,GAAG,CAACQ,GAAG,GACnBZ,EAAEG,IAAI,CAACS,GAAG,GAAI,QACtB,CACAD,EAAKzD,EAAKhF,IAAI,CAACyH,EAASK,EAC5B,CAAE,MAAOc,EAAG,CAAEH,EAAK,CAAC,EAAGG,EAAE,CAAEjB,EAAI,SAAa,CAAED,EAAIE,EAAI,CAAG,CACzD,GAAIa,AAAQ,EAARA,CAAE,CAAC,EAAE,CAAM,MAAMA,CAAE,CAAC,EAAE,CAAE,MAAO,CAAE5K,MAAO4K,CAAE,CAAC,EAAE,CAAGA,CAAE,CAAC,EAAE,CAAG,KAAK,EAAG1K,KAAM,CAAA,CAAK,CACnF,EAtBqD,CAACuK,EAAGC,EAAE,CAAG,CAAG,CAuBnE,0CUvD0B,6BAAA,GAAM1C,EAAKsB,MAAM,CAAC0B,SAAS,CAAC3B,kBAGhDM,AAAAA,MAFMA,CAAAA,EAAYD,AADEuB,EAAAd,IAAA,GACUe,aAAa,CAAC,YAAA,GAE5CvB,EAAWwB,YAAY,CAAC5C,gBAExB,MAAM,AAAI3D,MAAO,+BAA8BmG,AADxCA,EAAAA,IAAAA,GAC0CK,OAAO,CAAC,wBAE7D,EZ1FS,WACH,IAAIC,EAAO,IAAI,CAAEC,EAAOC,UAExB,OAAO,IAAIpL,QAAQ,SAASV,CAAO,CAAEC,CAAM,EACvC,IAAIF,EAAMgK,EAAGhC,KAAK,CAAC6D,EAAMC,GAEzB,SAAS3L,EAAMK,CAAK,EAChBT,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQI,EACpE,CAEA,SAASJ,EAAO4L,CAAG,EACfjM,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAAS4L,EACrE,CAEA7L,EAAM8L,KAAAA,EACV,EACJ,MYqDS/J,CAsBZ"}
|
|
1
|
+
{"version":3,"file":"index.min.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../src/hooks/drawcall-hook.ts","../src/hooks/program-hook.ts","../src/hooks/shader-hook.ts","../src/hooks/texture-hook.ts","../src/core.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_instanceof.js","../src/monitor.ts","../src/stats-component.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_inherits.js","../src/stats.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nexport function _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","export function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { Stats } from '../stats';\n\n/**\n * DrawCallHook\n */\nexport default class DrawCallHook {\n drawCall = 0;\n triangles = 0;\n lines = 0;\n points = 0;\n\n private hooked = true;\n private readonly realDrawElements: (mode: number, count: number, type: number, offset: number) => void;\n private readonly realDrawArrays: (mode: number, first: number, count: number) => void;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realDrawElements = gl.drawElements;\n this.realDrawArrays = gl.drawArrays;\n\n gl.drawElements = this.hookedDrawElements.bind(this);\n gl.drawArrays = this.hookedDrawArrays.bind(this);\n\n if (Stats.options.debug) {\n console.debug('DrawCall is hooked.');\n }\n }\n\n private hookedDrawElements (mode: number, count: number, type: number, offset: number): void {\n this.realDrawElements.call(this.gl, mode, count, type, offset);\n this.update(count, mode);\n }\n\n private hookedDrawArrays (mode: number, first: number, count: number): void {\n this.realDrawArrays.call(this.gl, mode, first, count);\n this.update(count, mode);\n }\n\n private update (count: number, mode: number): void {\n const { gl } = this;\n\n this.drawCall++;\n\n switch (mode) {\n case gl.TRIANGLES:\n this.triangles += count / 3;\n\n break;\n case gl.TRIANGLE_STRIP:\n case gl.TRIANGLE_FAN:\n this.triangles += count - 2;\n\n break;\n case gl.LINES:\n this.lines += count / 2;\n\n break;\n case gl.LINE_STRIP:\n this.lines += count - 1;\n\n break;\n case gl.LINE_LOOP:\n this.lines += count;\n\n break;\n case gl.POINTS:\n this.points += count;\n\n break;\n default:\n console.error(`Unknown draw mode: ${mode}. Count: ${count}`);\n\n break;\n }\n }\n\n reset (): void {\n this.drawCall = 0;\n this.triangles = 0;\n this.lines = 0;\n this.points = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.drawElements = this.realDrawElements;\n this.gl.drawArrays = this.realDrawArrays;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ProgramHook\n * 每一帧的 shader 数量\n */\nexport default class ProgramHook {\n programs = 0;\n\n private readonly realUseProgram: (program: WebGLProgram | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realUseProgram = gl.useProgram;\n\n gl.useProgram = this.hookedUseProgram.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Program is hooked.');\n }\n }\n\n private hookedUseProgram (program: WebGLProgram): void {\n this.realUseProgram.call(this.gl, program);\n this.programs++;\n\n if (Stats.options.debug) {\n console.debug(`UseProgram: ${program}, program: ${this.programs}.`);\n }\n }\n\n reset (): void {\n this.programs = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.useProgram = this.realUseProgram;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ShaderHook\n */\nexport default class ShaderHook {\n shaders = 0;\n\n private readonly realAttachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private readonly realDetachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realAttachShader = gl.attachShader;\n this.realDetachShader = gl.detachShader;\n\n gl.attachShader = this.hookedAttachShader.bind(this);\n gl.detachShader = this.hookedDetachShader.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Shader is hooked.');\n }\n }\n\n private hookedAttachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realAttachShader.call(this.gl, program, shader);\n this.shaders++;\n\n if (Stats.options.debug) {\n console.debug(`AttachShader: ${shader}. shaders: ${this.shaders}`);\n }\n }\n\n private hookedDetachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realDetachShader.call(this.gl, program, shader);\n this.shaders--;\n\n if (Stats.options.debug) {\n console.debug(`DetachShader. shaders: ${this.shaders}`);\n }\n }\n\n reset (): void {\n this.shaders = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.attachShader = this.realAttachShader;\n this.gl.detachShader = this.realDetachShader;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * TextureHook\n */\nexport default class TextureHook {\n textures = 0;\n\n private readonly realCreateTexture: () => WebGLTexture | null;\n private readonly realDeleteTexture: (texture: WebGLTexture | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realCreateTexture = gl.createTexture;\n this.realDeleteTexture = gl.deleteTexture;\n\n gl.createTexture = this.hookedCreateTexture.bind(this);\n gl.deleteTexture = this.hookedDeleteTexture.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Texture is hooked.');\n }\n }\n\n private hookedCreateTexture (): WebGLTexture | null {\n const texture = this.realCreateTexture.call(this.gl);\n\n this.textures++;\n\n if (Stats.options.debug) {\n console.debug(`CreateTexture: ${texture}, textures: ${this.textures}.`);\n }\n\n return texture;\n }\n\n private hookedDeleteTexture (texture: WebGLTexture | null): void {\n this.realDeleteTexture.call(this.gl, texture);\n this.textures--;\n\n if (Stats.options.debug) {\n console.debug(`DeleteTexture, textures: ${this.textures}.`);\n }\n }\n\n reset (): void {\n this.textures = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.createTexture = this.realCreateTexture;\n this.gl.deleteTexture = this.realDeleteTexture;\n this.hooked = false;\n }\n }\n}\n","import DrawCallHook from './hooks/drawcall-hook';\nimport ProgramHook from './hooks/program-hook';\nimport ShaderHook from './hooks/shader-hook';\nimport TextureHook from './hooks/texture-hook';\n\ndeclare global {\n interface Performance {\n memory: any,\n }\n}\n\n/**\n * Hook gl to calculate stats\n */\nexport class Core {\n private drawCallHook: DrawCallHook;\n private textureHook: TextureHook;\n private shaderHook: ShaderHook;\n private samplingFrames = 60;\n private samplingIndex = 0;\n private updateCounter = 0;\n private updateTime = 0;\n private programHook: ProgramHook;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n if (!gl) {\n throw new Error('Unsupported WebGL context.');\n }\n this.hook(gl);\n }\n\n private hook (gl: WebGLRenderingContext | WebGL2RenderingContext): void {\n this.drawCallHook = new DrawCallHook(gl);\n this.textureHook = new TextureHook(gl);\n this.shaderHook = new ShaderHook(gl);\n this.programHook = new ProgramHook(gl);\n }\n\n /**\n * reset draw call hook\n */\n reset (): void {\n this.drawCallHook?.reset();\n this.programHook?.reset();\n }\n\n /**\n * release hook\n */\n release (): void {\n this.drawCallHook?.release();\n this.textureHook?.release();\n this.shaderHook?.release();\n this.programHook?.release();\n }\n\n /**\n * update performance data\n */\n update (dt: number): PerformanceData | undefined {\n const now = performance.now();\n\n this.updateCounter++;\n\n if (now - this.updateTime < 1000) {\n return undefined;\n }\n\n if (this.samplingIndex !== this.samplingFrames) {\n this.reset();\n this.samplingIndex++;\n\n return undefined;\n }\n\n this.samplingIndex = 0;\n\n const data: PerformanceData = {\n fps: Math.round((this.updateCounter * 1000) / (now - this.updateTime)),\n // eslint-disable-next-line compat/compat -- performance.memory is not standard\n memory: performance.memory && (performance.memory.usedJSHeapSize / 1048576) >> 0,\n drawCall: (this.drawCallHook.drawCall === 0) ? 0 : this.drawCallHook.drawCall - 1,\n triangles: (this.drawCallHook.triangles === 0) ? 0 : this.drawCallHook.triangles - 2,\n lines: this.drawCallHook.lines,\n points: this.drawCallHook.points,\n textures: this.textureHook.textures,\n shaders: (this.shaderHook.shaders === 0) ? 0 : this.shaderHook.shaders + 1,\n programs: this.programHook.programs,\n webglContext: this.gl instanceof WebGL2RenderingContext ? '2.0' : '1.0',\n };\n\n this.reset();\n\n this.updateCounter = 0;\n this.updateTime = now;\n\n return data;\n }\n}\n\nexport interface PerformanceData {\n fps: number,\n memory: number,\n drawCall: number,\n triangles: number,\n lines: number,\n points: number,\n textures: number,\n shaders: number,\n webglContext: string,\n programs: number,\n}\n","export function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","import type { Disposable } from '@galacean/effects';\nimport type { PerformanceData } from './core';\nimport { Core } from './core';\n\nconst tpl = `\n <dl>\n <dt>FPS</dt>\n <dd>0</dd>\n <dt>Memory <span class=\"unit\">(MB)</span></dt>\n <dd>0</dd>\n <dt>DrawCall</dt>\n <dd>0</dd>\n <dt>Triangles</dt>\n <dd>0</dd>\n <dt>Textures</dt>\n <dd>0</dd>\n <dt>Shaders</dt>\n <dd>0</dd>\n <dt>Program</dt>\n <dd>0</dd>\n <dt>WebGL</dt>\n <dd></dd>\n </dl>\n`;\nconst css = `\n .gl-perf {\n pointer-events: none;\n user-select: none;\n position: fixed;\n top: 0;\n left: 0;\n padding: ${10 / 7.5}vh ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n background: rgba(0, 0, 0, 0.3);\n color: #fff;\n font: ${10 / 7.5}vh arial;\n }\n\n .gl-perf dl,\n .gl-perf dt,\n .gl-perf dd {\n padding: 0;\n margin: 0;\n }\n\n .gl-perf dt {\n color: #fff;\n text-shadow: #000 0 0 1px;\n }\n\n .gl-perf dt .unit{\n font-size: ${10 / 7.5}vh;\n }\n\n .gl-perf dd {\n font-size: ${20 / 7.5}vh;\n padding: ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n }\n`;\n\nexport class Monitor implements Disposable {\n private core: Core;\n private doms: HTMLElement[];\n private container: HTMLElement;\n private readonly items = ['fps', 'memory', 'drawCall', 'triangles', 'textures', 'shaders', 'programs', 'webglContext'];\n\n private data: PerformanceData = {\n fps: 60,\n memory: 0,\n drawCall: 0,\n triangles: 0,\n lines: 0,\n points: 0,\n textures: 0,\n shaders: 0,\n programs: 0,\n webglContext: '2.0',\n };\n\n constructor (gl: WebGLRenderingContext | WebGL2RenderingContext) {\n this.core = new Core(gl);\n\n this.createContainer();\n this.update = this.update.bind(this);\n }\n\n private createContainer (): void {\n const container = document.createElement('div');\n\n container.classList.add('gl-perf');\n container.innerHTML = tpl;\n container.appendChild(this.createStyle());\n document.body.appendChild(container);\n\n this.doms = Array.prototype.slice.apply(container.querySelectorAll('dd'));\n this.container = container;\n }\n\n private createStyle (): HTMLStyleElement {\n const style: HTMLStyleElement = document.createElement('style');\n\n style.appendChild(document.createTextNode(css));\n\n return style;\n }\n\n /**\n * Update per frame\n */\n update (dt: number): void {\n const data = this.core.update(dt);\n\n if (!data || data.drawCall === 0 || data.triangles === 0) {\n return;\n }\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * reset all hooks\n */\n reset (): void {\n this.core.reset();\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = this.data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * release all hooks\n */\n release (): void {\n this.core.release();\n }\n\n /**\n * dispose the instance\n */\n dispose (): void {\n this.release();\n document.body.removeChild(this.container);\n }\n}\n","import { Behaviour, type GLRenderer } from '@galacean/effects';\nimport { Monitor } from './monitor';\n\nexport class StatsComponent extends Behaviour {\n /**\n * 监控对象\n */\n monitor: Monitor;\n\n override onStart (): void {\n const renderer = this.engine.renderer as GLRenderer;\n const gl = renderer.pipelineContext.gl;\n\n this.monitor = new Monitor(gl);\n }\n\n override onUpdate (dt: number): void {\n this.monitor.update(dt);\n }\n\n override dispose (): void {\n super.dispose();\n this.monitor.dispose();\n }\n}\n","import { _set_prototype_of } from \"./_set_prototype_of.js\";\n\nexport function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","import type { Player } from '@galacean/effects';\nimport { StatsComponent } from './stats-component';\n\nexport interface StatsOptions {\n debug?: boolean,\n}\n\nconst json = {\n 'images': [],\n 'fonts': [],\n 'version': '3.0',\n 'shapes': [],\n 'plugins': [],\n 'type': 'ge',\n 'compositions': [{\n 'id': '2',\n 'name': 'stats',\n 'duration': 5,\n 'startTime': 0,\n 'endBehavior': 2,\n 'previewSize': [750, 1624],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n }],\n 'camera': {\n 'fov': 60,\n 'far': 40,\n 'near': 0.1,\n 'clipMode': 1,\n 'position': [0, 0, 8],\n 'rotation': [0, 0, 0],\n },\n 'sceneBindings': [],\n }],\n 'components': [],\n 'geometries': [],\n 'materials': [],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n 'name': 'component',\n 'duration': 99999,\n 'type': '1',\n 'visible': true,\n 'endBehavior': 0,\n 'delay': 0,\n 'renderLevel': 'B+',\n 'components': [],\n 'transform': {\n 'position': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'eulerHint': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'anchor': {\n 'x': 0,\n 'y': 0,\n },\n 'size': {\n 'x': 1.2,\n 'y': 1.2,\n },\n 'scale': {\n 'x': 1,\n 'y': 1,\n 'z': 1,\n },\n },\n 'dataType': 'VFXItemData',\n }],\n 'shaders': [],\n 'bins': [],\n 'textures': [],\n 'animations': [],\n 'compositionId': '2',\n};\n\nexport class Stats {\n static options: StatsOptions;\n\n constructor (\n public readonly player: Player,\n options: StatsOptions = { debug: false },\n ) {\n Stats.options = options;\n\n void this.init();\n }\n\n async init () {\n try {\n const composition = await this.player.loadScene(json);\n const component = composition.getItemByName('component');\n\n component?.addComponent(StatsComponent);\n } catch (e: any) {\n throw new Error(`Failed to load stats scene: ${e.message}.`);\n }\n }\n}\n"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","SuppressedError","DrawCallHook","gl","drawCall","triangles","lines","points","hooked","realDrawElements","drawElements","realDrawArrays","drawArrays","hookedDrawElements","bind","hookedDrawArrays","Stats","options","debug","console","_proto","mode","count","type","offset","call","update","first","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","LINES","LINE_STRIP","LINE_LOOP","POINTS","reset","release","ProgramHook","programs","realUseProgram","useProgram","hookedUseProgram","program","ShaderHook","shaders","realAttachShader","attachShader","realDetachShader","detachShader","hookedAttachShader","hookedDetachShader","shader","TextureHook","textures","realCreateTexture","createTexture","realDeleteTexture","deleteTexture","hookedCreateTexture","hookedDeleteTexture","texture","Core","samplingFrames","samplingIndex","updateCounter","updateTime","Error","hook","drawCallHook","textureHook","shaderHook","programHook","_this_drawCallHook","_this_programHook","_this_textureHook","_this_shaderHook","dt","now","performance","data","fps","Math","round","memory","usedJSHeapSize","webglContext","_instanceof","left","right","Symbol","hasInstance","WebGL2RenderingContext","css","Monitor","items","core","createContainer","container","document","createElement","classList","add","innerHTML","appendChild","createStyle","body","doms","Array","prototype","slice","apply","querySelectorAll","style","createTextNode","i","l","length","dom","_this","requestAnimationFrame","innerText","String","item","dispose","removeChild","StatsComponent","Behaviour","subClass","superClass","TypeError","create","constructor","writable","configurable","onStart","renderer","engine","pipelineContext","monitor","onUpdate","json","player","init","fn","_async_to_generator","composition","component","thisArg","f","y","t","g","_","label","sent","trys","ops","next","verb","iterator","n","v","step","op","pop","push","e","loadScene","_state","getItemByName","addComponent","message","self","args","arguments","err","undefined"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Description: Galacean Effects runtime stats for the web
|
|
4
4
|
* Author: Ant Group CO., Ltd.
|
|
5
5
|
* Contributors: 云垣
|
|
6
|
-
* Version: v2.0.
|
|
6
|
+
* Version: v2.1.0-alpha.0
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { Behaviour } from '@galacean/effects';
|
|
@@ -502,8 +502,8 @@ var Monitor = /*#__PURE__*/ function() {
|
|
|
502
502
|
this.core.release();
|
|
503
503
|
};
|
|
504
504
|
/**
|
|
505
|
-
*
|
|
506
|
-
*/ _proto.
|
|
505
|
+
* dispose the instance
|
|
506
|
+
*/ _proto.dispose = function dispose() {
|
|
507
507
|
this.release();
|
|
508
508
|
document.body.removeChild(this.container);
|
|
509
509
|
};
|
|
@@ -516,14 +516,18 @@ var StatsComponent = /*#__PURE__*/ function(Behaviour) {
|
|
|
516
516
|
return Behaviour.apply(this, arguments);
|
|
517
517
|
}
|
|
518
518
|
var _proto = StatsComponent.prototype;
|
|
519
|
-
_proto.
|
|
519
|
+
_proto.onStart = function onStart() {
|
|
520
520
|
var renderer = this.engine.renderer;
|
|
521
521
|
var gl = renderer.pipelineContext.gl;
|
|
522
522
|
this.monitor = new Monitor(gl);
|
|
523
523
|
};
|
|
524
|
-
_proto.
|
|
524
|
+
_proto.onUpdate = function onUpdate(dt) {
|
|
525
525
|
this.monitor.update(dt);
|
|
526
526
|
};
|
|
527
|
+
_proto.dispose = function dispose() {
|
|
528
|
+
Behaviour.prototype.dispose.call(this);
|
|
529
|
+
this.monitor.dispose();
|
|
530
|
+
};
|
|
527
531
|
return StatsComponent;
|
|
528
532
|
}(Behaviour);
|
|
529
533
|
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_instanceof.js","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_inherits.js","../src/hooks/drawcall-hook.ts","../src/hooks/program-hook.ts","../src/hooks/shader-hook.ts","../src/hooks/texture-hook.ts","../src/core.ts","../src/monitor.ts","../src/stats-component.ts","../src/stats.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nexport function _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","export function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _set_prototype_of } from \"./_set_prototype_of.js\";\n\nexport function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","import { Stats } from '../stats';\n\n/**\n * DrawCallHook\n */\nexport default class DrawCallHook {\n drawCall = 0;\n triangles = 0;\n lines = 0;\n points = 0;\n\n private hooked = true;\n private readonly realDrawElements: (mode: number, count: number, type: number, offset: number) => void;\n private readonly realDrawArrays: (mode: number, first: number, count: number) => void;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realDrawElements = gl.drawElements;\n this.realDrawArrays = gl.drawArrays;\n\n gl.drawElements = this.hookedDrawElements.bind(this);\n gl.drawArrays = this.hookedDrawArrays.bind(this);\n\n if (Stats.options.debug) {\n console.debug('DrawCall is hooked.');\n }\n }\n\n private hookedDrawElements (mode: number, count: number, type: number, offset: number): void {\n this.realDrawElements.call(this.gl, mode, count, type, offset);\n this.update(count, mode);\n }\n\n private hookedDrawArrays (mode: number, first: number, count: number): void {\n this.realDrawArrays.call(this.gl, mode, first, count);\n this.update(count, mode);\n }\n\n private update (count: number, mode: number): void {\n const { gl } = this;\n\n this.drawCall++;\n\n switch (mode) {\n case gl.TRIANGLES:\n this.triangles += count / 3;\n\n break;\n case gl.TRIANGLE_STRIP:\n case gl.TRIANGLE_FAN:\n this.triangles += count - 2;\n\n break;\n case gl.LINES:\n this.lines += count / 2;\n\n break;\n case gl.LINE_STRIP:\n this.lines += count - 1;\n\n break;\n case gl.LINE_LOOP:\n this.lines += count;\n\n break;\n case gl.POINTS:\n this.points += count;\n\n break;\n default:\n console.error(`Unknown draw mode: ${mode}. Count: ${count}`);\n\n break;\n }\n }\n\n reset (): void {\n this.drawCall = 0;\n this.triangles = 0;\n this.lines = 0;\n this.points = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.drawElements = this.realDrawElements;\n this.gl.drawArrays = this.realDrawArrays;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ProgramHook\n * 每一帧的 shader 数量\n */\nexport default class ProgramHook {\n programs = 0;\n\n private readonly realUseProgram: (program: WebGLProgram | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realUseProgram = gl.useProgram;\n\n gl.useProgram = this.hookedUseProgram.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Program is hooked.');\n }\n }\n\n private hookedUseProgram (program: WebGLProgram): void {\n this.realUseProgram.call(this.gl, program);\n this.programs++;\n\n if (Stats.options.debug) {\n console.debug(`UseProgram: ${program}, program: ${this.programs}.`);\n }\n }\n\n reset (): void {\n this.programs = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.useProgram = this.realUseProgram;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ShaderHook\n */\nexport default class ShaderHook {\n shaders = 0;\n\n private readonly realAttachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private readonly realDetachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realAttachShader = gl.attachShader;\n this.realDetachShader = gl.detachShader;\n\n gl.attachShader = this.hookedAttachShader.bind(this);\n gl.detachShader = this.hookedDetachShader.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Shader is hooked.');\n }\n }\n\n private hookedAttachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realAttachShader.call(this.gl, program, shader);\n this.shaders++;\n\n if (Stats.options.debug) {\n console.debug(`AttachShader: ${shader}. shaders: ${this.shaders}`);\n }\n }\n\n private hookedDetachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realDetachShader.call(this.gl, program, shader);\n this.shaders--;\n\n if (Stats.options.debug) {\n console.debug(`DetachShader. shaders: ${this.shaders}`);\n }\n }\n\n reset (): void {\n this.shaders = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.attachShader = this.realAttachShader;\n this.gl.detachShader = this.realDetachShader;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * TextureHook\n */\nexport default class TextureHook {\n textures = 0;\n\n private readonly realCreateTexture: () => WebGLTexture | null;\n private readonly realDeleteTexture: (texture: WebGLTexture | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realCreateTexture = gl.createTexture;\n this.realDeleteTexture = gl.deleteTexture;\n\n gl.createTexture = this.hookedCreateTexture.bind(this);\n gl.deleteTexture = this.hookedDeleteTexture.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Texture is hooked.');\n }\n }\n\n private hookedCreateTexture (): WebGLTexture | null {\n const texture = this.realCreateTexture.call(this.gl);\n\n this.textures++;\n\n if (Stats.options.debug) {\n console.debug(`CreateTexture: ${texture}, textures: ${this.textures}.`);\n }\n\n return texture;\n }\n\n private hookedDeleteTexture (texture: WebGLTexture | null): void {\n this.realDeleteTexture.call(this.gl, texture);\n this.textures--;\n\n if (Stats.options.debug) {\n console.debug(`DeleteTexture, textures: ${this.textures}.`);\n }\n }\n\n reset (): void {\n this.textures = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.createTexture = this.realCreateTexture;\n this.gl.deleteTexture = this.realDeleteTexture;\n this.hooked = false;\n }\n }\n}\n","import DrawCallHook from './hooks/drawcall-hook';\nimport ProgramHook from './hooks/program-hook';\nimport ShaderHook from './hooks/shader-hook';\nimport TextureHook from './hooks/texture-hook';\n\ndeclare global {\n interface Performance {\n memory: any,\n }\n}\n\n/**\n * Hook gl to calculate stats\n */\nexport class Core {\n private drawCallHook: DrawCallHook;\n private textureHook: TextureHook;\n private shaderHook: ShaderHook;\n private samplingFrames = 60;\n private samplingIndex = 0;\n private updateCounter = 0;\n private updateTime = 0;\n private programHook: ProgramHook;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n if (!gl) {\n throw new Error('Unsupported WebGL context.');\n }\n this.hook(gl);\n }\n\n private hook (gl: WebGLRenderingContext | WebGL2RenderingContext): void {\n this.drawCallHook = new DrawCallHook(gl);\n this.textureHook = new TextureHook(gl);\n this.shaderHook = new ShaderHook(gl);\n this.programHook = new ProgramHook(gl);\n }\n\n /**\n * reset draw call hook\n */\n reset (): void {\n this.drawCallHook?.reset();\n this.programHook?.reset();\n }\n\n /**\n * release hook\n */\n release (): void {\n this.drawCallHook?.release();\n this.textureHook?.release();\n this.shaderHook?.release();\n this.programHook?.release();\n }\n\n /**\n * update performance data\n */\n update (dt: number): PerformanceData | undefined {\n const now = performance.now();\n\n this.updateCounter++;\n\n if (now - this.updateTime < 1000) {\n return undefined;\n }\n\n if (this.samplingIndex !== this.samplingFrames) {\n this.reset();\n this.samplingIndex++;\n\n return undefined;\n }\n\n this.samplingIndex = 0;\n\n const data: PerformanceData = {\n fps: Math.round((this.updateCounter * 1000) / (now - this.updateTime)),\n // eslint-disable-next-line compat/compat -- performance.memory is not standard\n memory: performance.memory && (performance.memory.usedJSHeapSize / 1048576) >> 0,\n drawCall: (this.drawCallHook.drawCall === 0) ? 0 : this.drawCallHook.drawCall - 1,\n triangles: (this.drawCallHook.triangles === 0) ? 0 : this.drawCallHook.triangles - 2,\n lines: this.drawCallHook.lines,\n points: this.drawCallHook.points,\n textures: this.textureHook.textures,\n shaders: (this.shaderHook.shaders === 0) ? 0 : this.shaderHook.shaders + 1,\n programs: this.programHook.programs,\n webglContext: this.gl instanceof WebGL2RenderingContext ? '2.0' : '1.0',\n };\n\n this.reset();\n\n this.updateCounter = 0;\n this.updateTime = now;\n\n return data;\n }\n}\n\nexport interface PerformanceData {\n fps: number,\n memory: number,\n drawCall: number,\n triangles: number,\n lines: number,\n points: number,\n textures: number,\n shaders: number,\n webglContext: string,\n programs: number,\n}\n","import type { PerformanceData } from './core';\nimport { Core } from './core';\n\nconst tpl = `\n <dl>\n <dt>FPS</dt>\n <dd>0</dd>\n <dt>Memory <span class=\"unit\">(MB)</span></dt>\n <dd>0</dd>\n <dt>DrawCall</dt>\n <dd>0</dd>\n <dt>Triangles</dt>\n <dd>0</dd>\n <dt>Textures</dt>\n <dd>0</dd>\n <dt>Shaders</dt>\n <dd>0</dd>\n <dt>Program</dt>\n <dd>0</dd>\n <dt>WebGL</dt>\n <dd></dd>\n </dl>\n`;\nconst css = `\n .gl-perf {\n pointer-events: none;\n user-select: none;\n position: fixed;\n top: 0;\n left: 0;\n padding: ${10 / 7.5}vh ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n background: rgba(0, 0, 0, 0.3);\n color: #fff;\n font: ${10 / 7.5}vh arial;\n }\n\n .gl-perf dl,\n .gl-perf dt,\n .gl-perf dd {\n padding: 0;\n margin: 0;\n }\n\n .gl-perf dt {\n color: #fff;\n text-shadow: #000 0 0 1px;\n }\n\n .gl-perf dt .unit{\n font-size: ${10 / 7.5}vh;\n }\n\n .gl-perf dd {\n font-size: ${20 / 7.5}vh;\n padding: ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n }\n`;\n\nexport class Monitor {\n private core: Core;\n private doms: HTMLElement[];\n private container: HTMLElement;\n private readonly items = ['fps', 'memory', 'drawCall', 'triangles', 'textures', 'shaders', 'programs', 'webglContext'];\n\n private data: PerformanceData = {\n fps: 60,\n memory: 0,\n drawCall: 0,\n triangles: 0,\n lines: 0,\n points: 0,\n textures: 0,\n shaders: 0,\n programs: 0,\n webglContext: '2.0',\n };\n\n constructor (gl: WebGLRenderingContext | WebGL2RenderingContext) {\n this.core = new Core(gl);\n\n this.createContainer();\n this.update = this.update.bind(this);\n }\n\n private createContainer (): void {\n const container = document.createElement('div');\n\n container.classList.add('gl-perf');\n container.innerHTML = tpl;\n container.appendChild(this.createStyle());\n document.body.appendChild(container);\n\n this.doms = Array.prototype.slice.apply(container.querySelectorAll('dd'));\n this.container = container;\n }\n\n private createStyle (): HTMLStyleElement {\n const style: HTMLStyleElement = document.createElement('style');\n\n style.appendChild(document.createTextNode(css));\n\n return style;\n }\n\n /**\n * Update per frame\n */\n public update (dt: number): void {\n const data = this.core.update(dt);\n\n if (!data || data.drawCall === 0 || data.triangles === 0) {\n return;\n }\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * reset all hooks\n */\n public reset (): void {\n this.core.reset();\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = this.data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * release all hooks\n */\n public release (): void {\n this.core.release();\n }\n\n /**\n * destroy the instance\n */\n public destroy (): void {\n this.release();\n document.body.removeChild(this.container);\n }\n}\n","import { Behaviour, type GLRenderer } from '@galacean/effects';\nimport { Monitor } from './monitor';\n\nexport class StatsComponent extends Behaviour {\n /**\n * 监控对象\n */\n monitor: Monitor;\n\n override start (): void {\n const renderer = this.engine.renderer as GLRenderer;\n const gl = renderer.pipelineContext.gl;\n\n this.monitor = new Monitor(gl);\n }\n\n override update (dt: number): void {\n this.monitor.update(dt);\n }\n}\n","import type { Player } from '@galacean/effects';\nimport { StatsComponent } from './stats-component';\n\nexport interface StatsOptions {\n debug?: boolean,\n}\n\nconst json = {\n 'images': [],\n 'fonts': [],\n 'version': '3.0',\n 'shapes': [],\n 'plugins': [],\n 'type': 'ge',\n 'compositions': [{\n 'id': '2',\n 'name': 'stats',\n 'duration': 5,\n 'startTime': 0,\n 'endBehavior': 2,\n 'previewSize': [750, 1624],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n }],\n 'camera': {\n 'fov': 60,\n 'far': 40,\n 'near': 0.1,\n 'clipMode': 1,\n 'position': [0, 0, 8],\n 'rotation': [0, 0, 0],\n },\n 'sceneBindings': [],\n }],\n 'components': [],\n 'geometries': [],\n 'materials': [],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n 'name': 'component',\n 'duration': 99999,\n 'type': '1',\n 'visible': true,\n 'endBehavior': 0,\n 'delay': 0,\n 'renderLevel': 'B+',\n 'components': [],\n 'transform': {\n 'position': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'eulerHint': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'anchor': {\n 'x': 0,\n 'y': 0,\n },\n 'size': {\n 'x': 1.2,\n 'y': 1.2,\n },\n 'scale': {\n 'x': 1,\n 'y': 1,\n 'z': 1,\n },\n },\n 'dataType': 'VFXItemData',\n }],\n 'shaders': [],\n 'bins': [],\n 'textures': [],\n 'animations': [],\n 'compositionId': '2',\n};\n\nexport class Stats {\n static options: StatsOptions;\n\n constructor (\n public readonly player: Player,\n options: StatsOptions = { debug: false },\n ) {\n Stats.options = options;\n\n void this.init();\n }\n\n async init () {\n try {\n const composition = await this.player.loadScene(json);\n const component = composition.getItemByName('component');\n\n component?.addComponent(StatsComponent);\n } catch (e: any) {\n throw new Error(`Failed to load stats scene: ${e.message}.`);\n }\n }\n}\n"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_async_to_generator","fn","self","args","arguments","apply","err","undefined","_instanceof","left","right","Symbol","hasInstance","__generator","thisArg","body","_","label","sent","t","trys","ops","f","y","g","next","verb","iterator","n","v","step","op","TypeError","call","pop","length","push","e","SuppressedError","suppressed","message","Error","name","_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","prototype","create","constructor","writable","configurable","DrawCallHook","gl","drawCall","triangles","lines","points","hooked","realDrawElements","drawElements","realDrawArrays","drawArrays","hookedDrawElements","bind","hookedDrawArrays","Stats","options","debug","console","mode","count","type","offset","update","first","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","LINES","LINE_STRIP","LINE_LOOP","POINTS","reset","release","ProgramHook","programs","realUseProgram","useProgram","hookedUseProgram","program","ShaderHook","shaders","realAttachShader","attachShader","realDetachShader","detachShader","hookedAttachShader","hookedDetachShader","shader","TextureHook","textures","realCreateTexture","createTexture","realDeleteTexture","deleteTexture","hookedCreateTexture","hookedDeleteTexture","texture","Core","samplingFrames","samplingIndex","updateCounter","updateTime","hook","drawCallHook","textureHook","shaderHook","programHook","dt","now","performance","data","fps","Math","round","memory","usedJSHeapSize","webglContext","WebGL2RenderingContext","tpl","css","Monitor","items","core","createContainer","container","document","createElement","classList","add","innerHTML","appendChild","createStyle","doms","Array","slice","querySelectorAll","style","createTextNode","dom","i","item","requestAnimationFrame","innerText","String","l","destroy","removeChild","StatsComponent","start","renderer","engine","pipelineContext","monitor","Behaviour","json","player","init","composition","component","loadScene","getItemByName","addComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_instanceof.js","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_inherits.js","../src/hooks/drawcall-hook.ts","../src/hooks/program-hook.ts","../src/hooks/shader-hook.ts","../src/hooks/texture-hook.ts","../src/core.ts","../src/monitor.ts","../src/stats-component.ts","../src/stats.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nexport function _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","export function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _set_prototype_of } from \"./_set_prototype_of.js\";\n\nexport function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","import { Stats } from '../stats';\n\n/**\n * DrawCallHook\n */\nexport default class DrawCallHook {\n drawCall = 0;\n triangles = 0;\n lines = 0;\n points = 0;\n\n private hooked = true;\n private readonly realDrawElements: (mode: number, count: number, type: number, offset: number) => void;\n private readonly realDrawArrays: (mode: number, first: number, count: number) => void;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realDrawElements = gl.drawElements;\n this.realDrawArrays = gl.drawArrays;\n\n gl.drawElements = this.hookedDrawElements.bind(this);\n gl.drawArrays = this.hookedDrawArrays.bind(this);\n\n if (Stats.options.debug) {\n console.debug('DrawCall is hooked.');\n }\n }\n\n private hookedDrawElements (mode: number, count: number, type: number, offset: number): void {\n this.realDrawElements.call(this.gl, mode, count, type, offset);\n this.update(count, mode);\n }\n\n private hookedDrawArrays (mode: number, first: number, count: number): void {\n this.realDrawArrays.call(this.gl, mode, first, count);\n this.update(count, mode);\n }\n\n private update (count: number, mode: number): void {\n const { gl } = this;\n\n this.drawCall++;\n\n switch (mode) {\n case gl.TRIANGLES:\n this.triangles += count / 3;\n\n break;\n case gl.TRIANGLE_STRIP:\n case gl.TRIANGLE_FAN:\n this.triangles += count - 2;\n\n break;\n case gl.LINES:\n this.lines += count / 2;\n\n break;\n case gl.LINE_STRIP:\n this.lines += count - 1;\n\n break;\n case gl.LINE_LOOP:\n this.lines += count;\n\n break;\n case gl.POINTS:\n this.points += count;\n\n break;\n default:\n console.error(`Unknown draw mode: ${mode}. Count: ${count}`);\n\n break;\n }\n }\n\n reset (): void {\n this.drawCall = 0;\n this.triangles = 0;\n this.lines = 0;\n this.points = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.drawElements = this.realDrawElements;\n this.gl.drawArrays = this.realDrawArrays;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ProgramHook\n * 每一帧的 shader 数量\n */\nexport default class ProgramHook {\n programs = 0;\n\n private readonly realUseProgram: (program: WebGLProgram | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realUseProgram = gl.useProgram;\n\n gl.useProgram = this.hookedUseProgram.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Program is hooked.');\n }\n }\n\n private hookedUseProgram (program: WebGLProgram): void {\n this.realUseProgram.call(this.gl, program);\n this.programs++;\n\n if (Stats.options.debug) {\n console.debug(`UseProgram: ${program}, program: ${this.programs}.`);\n }\n }\n\n reset (): void {\n this.programs = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.useProgram = this.realUseProgram;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * ShaderHook\n */\nexport default class ShaderHook {\n shaders = 0;\n\n private readonly realAttachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private readonly realDetachShader: (program: WebGLProgram, shader: WebGLShader) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realAttachShader = gl.attachShader;\n this.realDetachShader = gl.detachShader;\n\n gl.attachShader = this.hookedAttachShader.bind(this);\n gl.detachShader = this.hookedDetachShader.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Shader is hooked.');\n }\n }\n\n private hookedAttachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realAttachShader.call(this.gl, program, shader);\n this.shaders++;\n\n if (Stats.options.debug) {\n console.debug(`AttachShader: ${shader}. shaders: ${this.shaders}`);\n }\n }\n\n private hookedDetachShader (program: WebGLProgram, shader: WebGLShader): void {\n this.realDetachShader.call(this.gl, program, shader);\n this.shaders--;\n\n if (Stats.options.debug) {\n console.debug(`DetachShader. shaders: ${this.shaders}`);\n }\n }\n\n reset (): void {\n this.shaders = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.attachShader = this.realAttachShader;\n this.gl.detachShader = this.realDetachShader;\n this.hooked = false;\n }\n }\n}\n","import { Stats } from '../stats';\n\n/**\n * TextureHook\n */\nexport default class TextureHook {\n textures = 0;\n\n private readonly realCreateTexture: () => WebGLTexture | null;\n private readonly realDeleteTexture: (texture: WebGLTexture | null) => void;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n this.realCreateTexture = gl.createTexture;\n this.realDeleteTexture = gl.deleteTexture;\n\n gl.createTexture = this.hookedCreateTexture.bind(this);\n gl.deleteTexture = this.hookedDeleteTexture.bind(this);\n\n if (Stats.options.debug) {\n console.debug('Texture is hooked.');\n }\n }\n\n private hookedCreateTexture (): WebGLTexture | null {\n const texture = this.realCreateTexture.call(this.gl);\n\n this.textures++;\n\n if (Stats.options.debug) {\n console.debug(`CreateTexture: ${texture}, textures: ${this.textures}.`);\n }\n\n return texture;\n }\n\n private hookedDeleteTexture (texture: WebGLTexture | null): void {\n this.realDeleteTexture.call(this.gl, texture);\n this.textures--;\n\n if (Stats.options.debug) {\n console.debug(`DeleteTexture, textures: ${this.textures}.`);\n }\n }\n\n reset (): void {\n this.textures = 0;\n }\n\n release (): void {\n if (this.hooked) {\n this.gl.createTexture = this.realCreateTexture;\n this.gl.deleteTexture = this.realDeleteTexture;\n this.hooked = false;\n }\n }\n}\n","import DrawCallHook from './hooks/drawcall-hook';\nimport ProgramHook from './hooks/program-hook';\nimport ShaderHook from './hooks/shader-hook';\nimport TextureHook from './hooks/texture-hook';\n\ndeclare global {\n interface Performance {\n memory: any,\n }\n}\n\n/**\n * Hook gl to calculate stats\n */\nexport class Core {\n private drawCallHook: DrawCallHook;\n private textureHook: TextureHook;\n private shaderHook: ShaderHook;\n private samplingFrames = 60;\n private samplingIndex = 0;\n private updateCounter = 0;\n private updateTime = 0;\n private programHook: ProgramHook;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n ) {\n if (!gl) {\n throw new Error('Unsupported WebGL context.');\n }\n this.hook(gl);\n }\n\n private hook (gl: WebGLRenderingContext | WebGL2RenderingContext): void {\n this.drawCallHook = new DrawCallHook(gl);\n this.textureHook = new TextureHook(gl);\n this.shaderHook = new ShaderHook(gl);\n this.programHook = new ProgramHook(gl);\n }\n\n /**\n * reset draw call hook\n */\n reset (): void {\n this.drawCallHook?.reset();\n this.programHook?.reset();\n }\n\n /**\n * release hook\n */\n release (): void {\n this.drawCallHook?.release();\n this.textureHook?.release();\n this.shaderHook?.release();\n this.programHook?.release();\n }\n\n /**\n * update performance data\n */\n update (dt: number): PerformanceData | undefined {\n const now = performance.now();\n\n this.updateCounter++;\n\n if (now - this.updateTime < 1000) {\n return undefined;\n }\n\n if (this.samplingIndex !== this.samplingFrames) {\n this.reset();\n this.samplingIndex++;\n\n return undefined;\n }\n\n this.samplingIndex = 0;\n\n const data: PerformanceData = {\n fps: Math.round((this.updateCounter * 1000) / (now - this.updateTime)),\n // eslint-disable-next-line compat/compat -- performance.memory is not standard\n memory: performance.memory && (performance.memory.usedJSHeapSize / 1048576) >> 0,\n drawCall: (this.drawCallHook.drawCall === 0) ? 0 : this.drawCallHook.drawCall - 1,\n triangles: (this.drawCallHook.triangles === 0) ? 0 : this.drawCallHook.triangles - 2,\n lines: this.drawCallHook.lines,\n points: this.drawCallHook.points,\n textures: this.textureHook.textures,\n shaders: (this.shaderHook.shaders === 0) ? 0 : this.shaderHook.shaders + 1,\n programs: this.programHook.programs,\n webglContext: this.gl instanceof WebGL2RenderingContext ? '2.0' : '1.0',\n };\n\n this.reset();\n\n this.updateCounter = 0;\n this.updateTime = now;\n\n return data;\n }\n}\n\nexport interface PerformanceData {\n fps: number,\n memory: number,\n drawCall: number,\n triangles: number,\n lines: number,\n points: number,\n textures: number,\n shaders: number,\n webglContext: string,\n programs: number,\n}\n","import type { Disposable } from '@galacean/effects';\nimport type { PerformanceData } from './core';\nimport { Core } from './core';\n\nconst tpl = `\n <dl>\n <dt>FPS</dt>\n <dd>0</dd>\n <dt>Memory <span class=\"unit\">(MB)</span></dt>\n <dd>0</dd>\n <dt>DrawCall</dt>\n <dd>0</dd>\n <dt>Triangles</dt>\n <dd>0</dd>\n <dt>Textures</dt>\n <dd>0</dd>\n <dt>Shaders</dt>\n <dd>0</dd>\n <dt>Program</dt>\n <dd>0</dd>\n <dt>WebGL</dt>\n <dd></dd>\n </dl>\n`;\nconst css = `\n .gl-perf {\n pointer-events: none;\n user-select: none;\n position: fixed;\n top: 0;\n left: 0;\n padding: ${10 / 7.5}vh ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n background: rgba(0, 0, 0, 0.3);\n color: #fff;\n font: ${10 / 7.5}vh arial;\n }\n\n .gl-perf dl,\n .gl-perf dt,\n .gl-perf dd {\n padding: 0;\n margin: 0;\n }\n\n .gl-perf dt {\n color: #fff;\n text-shadow: #000 0 0 1px;\n }\n\n .gl-perf dt .unit{\n font-size: ${10 / 7.5}vh;\n }\n\n .gl-perf dd {\n font-size: ${20 / 7.5}vh;\n padding: ${10 / 7.5}vh 0 ${10 / 7.5}vh;\n }\n`;\n\nexport class Monitor implements Disposable {\n private core: Core;\n private doms: HTMLElement[];\n private container: HTMLElement;\n private readonly items = ['fps', 'memory', 'drawCall', 'triangles', 'textures', 'shaders', 'programs', 'webglContext'];\n\n private data: PerformanceData = {\n fps: 60,\n memory: 0,\n drawCall: 0,\n triangles: 0,\n lines: 0,\n points: 0,\n textures: 0,\n shaders: 0,\n programs: 0,\n webglContext: '2.0',\n };\n\n constructor (gl: WebGLRenderingContext | WebGL2RenderingContext) {\n this.core = new Core(gl);\n\n this.createContainer();\n this.update = this.update.bind(this);\n }\n\n private createContainer (): void {\n const container = document.createElement('div');\n\n container.classList.add('gl-perf');\n container.innerHTML = tpl;\n container.appendChild(this.createStyle());\n document.body.appendChild(container);\n\n this.doms = Array.prototype.slice.apply(container.querySelectorAll('dd'));\n this.container = container;\n }\n\n private createStyle (): HTMLStyleElement {\n const style: HTMLStyleElement = document.createElement('style');\n\n style.appendChild(document.createTextNode(css));\n\n return style;\n }\n\n /**\n * Update per frame\n */\n update (dt: number): void {\n const data = this.core.update(dt);\n\n if (!data || data.drawCall === 0 || data.triangles === 0) {\n return;\n }\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * reset all hooks\n */\n reset (): void {\n this.core.reset();\n\n for (let i = 0, l = this.items.length; i < l; i++) {\n const dom = this.doms[i];\n const item = this.items[i];\n const value = this.data[item as keyof PerformanceData] || 0;\n\n // see: http://wilsonpage.co.uk/preventing-layout-thrashing/\n requestAnimationFrame(() => {\n dom.innerText = String(value);\n });\n }\n }\n\n /**\n * release all hooks\n */\n release (): void {\n this.core.release();\n }\n\n /**\n * dispose the instance\n */\n dispose (): void {\n this.release();\n document.body.removeChild(this.container);\n }\n}\n","import { Behaviour, type GLRenderer } from '@galacean/effects';\nimport { Monitor } from './monitor';\n\nexport class StatsComponent extends Behaviour {\n /**\n * 监控对象\n */\n monitor: Monitor;\n\n override onStart (): void {\n const renderer = this.engine.renderer as GLRenderer;\n const gl = renderer.pipelineContext.gl;\n\n this.monitor = new Monitor(gl);\n }\n\n override onUpdate (dt: number): void {\n this.monitor.update(dt);\n }\n\n override dispose (): void {\n super.dispose();\n this.monitor.dispose();\n }\n}\n","import type { Player } from '@galacean/effects';\nimport { StatsComponent } from './stats-component';\n\nexport interface StatsOptions {\n debug?: boolean,\n}\n\nconst json = {\n 'images': [],\n 'fonts': [],\n 'version': '3.0',\n 'shapes': [],\n 'plugins': [],\n 'type': 'ge',\n 'compositions': [{\n 'id': '2',\n 'name': 'stats',\n 'duration': 5,\n 'startTime': 0,\n 'endBehavior': 2,\n 'previewSize': [750, 1624],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n }],\n 'camera': {\n 'fov': 60,\n 'far': 40,\n 'near': 0.1,\n 'clipMode': 1,\n 'position': [0, 0, 8],\n 'rotation': [0, 0, 0],\n },\n 'sceneBindings': [],\n }],\n 'components': [],\n 'geometries': [],\n 'materials': [],\n 'items': [{\n 'id': '05e1c616baf34cc084968a05703719cd',\n 'name': 'component',\n 'duration': 99999,\n 'type': '1',\n 'visible': true,\n 'endBehavior': 0,\n 'delay': 0,\n 'renderLevel': 'B+',\n 'components': [],\n 'transform': {\n 'position': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'eulerHint': {\n 'x': 0,\n 'y': 0,\n 'z': 0,\n },\n 'anchor': {\n 'x': 0,\n 'y': 0,\n },\n 'size': {\n 'x': 1.2,\n 'y': 1.2,\n },\n 'scale': {\n 'x': 1,\n 'y': 1,\n 'z': 1,\n },\n },\n 'dataType': 'VFXItemData',\n }],\n 'shaders': [],\n 'bins': [],\n 'textures': [],\n 'animations': [],\n 'compositionId': '2',\n};\n\nexport class Stats {\n static options: StatsOptions;\n\n constructor (\n public readonly player: Player,\n options: StatsOptions = { debug: false },\n ) {\n Stats.options = options;\n\n void this.init();\n }\n\n async init () {\n try {\n const composition = await this.player.loadScene(json);\n const component = composition.getItemByName('component');\n\n component?.addComponent(StatsComponent);\n } catch (e: any) {\n throw new Error(`Failed to load stats scene: ${e.message}.`);\n }\n }\n}\n"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_async_to_generator","fn","self","args","arguments","apply","err","undefined","_instanceof","left","right","Symbol","hasInstance","__generator","thisArg","body","_","label","sent","t","trys","ops","f","y","g","next","verb","iterator","n","v","step","op","TypeError","call","pop","length","push","e","SuppressedError","suppressed","message","Error","name","_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","prototype","create","constructor","writable","configurable","DrawCallHook","gl","drawCall","triangles","lines","points","hooked","realDrawElements","drawElements","realDrawArrays","drawArrays","hookedDrawElements","bind","hookedDrawArrays","Stats","options","debug","console","mode","count","type","offset","update","first","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","LINES","LINE_STRIP","LINE_LOOP","POINTS","reset","release","ProgramHook","programs","realUseProgram","useProgram","hookedUseProgram","program","ShaderHook","shaders","realAttachShader","attachShader","realDetachShader","detachShader","hookedAttachShader","hookedDetachShader","shader","TextureHook","textures","realCreateTexture","createTexture","realDeleteTexture","deleteTexture","hookedCreateTexture","hookedDeleteTexture","texture","Core","samplingFrames","samplingIndex","updateCounter","updateTime","hook","drawCallHook","textureHook","shaderHook","programHook","dt","now","performance","data","fps","Math","round","memory","usedJSHeapSize","webglContext","WebGL2RenderingContext","tpl","css","Monitor","items","core","createContainer","container","document","createElement","classList","add","innerHTML","appendChild","createStyle","doms","Array","slice","querySelectorAll","style","createTextNode","dom","i","item","requestAnimationFrame","innerText","String","l","dispose","removeChild","StatsComponent","onStart","renderer","engine","pipelineContext","monitor","onUpdate","Behaviour","json","player","init","composition","component","loadScene","getItemByName","addComponent"],"mappings":";;;;;;;;;;AAAA,SAASA,kBAAmBC,CAAAA,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAA;IACrE,IAAI;AACA,QAAA,IAAIC,IAAOP,GAAAA,GAAG,CAACK,GAAAA,CAAI,CAACC,GAAAA,CAAAA,CAAAA;QACpB,IAAIE,KAAAA,GAAQD,KAAKC,KAAK,CAAA;AAC1B,KAAA,CAAE,OAAOC,KAAO,EAAA;QACZP,MAAOO,CAAAA,KAAAA,CAAAA,CAAAA;AACP,QAAA,OAAA;AACJ,KAAA;IACA,IAAIF,IAAAA,CAAKG,IAAI,EAAET,OAAQO,CAAAA,KAAAA,CAAAA,CAAAA;AAClBG,SAAAA,OAAAA,CAAQV,OAAO,CAACO,KAAOI,CAAAA,CAAAA,IAAI,CAACT,KAAOC,EAAAA,MAAAA,CAAAA,CAAAA;AAC5C,CAAA;AACO,SAASS,oBAAoBC,EAAE,EAAA;IAClC,OAAO,WAAA;QACH,IAAIC,IAAAA,GAAO,IAAI,EAAEC,IAAOC,GAAAA,SAAAA,CAAAA;AAExB,QAAA,OAAO,IAAIN,OAAAA,CAAQ,SAASV,OAAO,EAAEC,MAAM,EAAA;AACvC,YAAA,IAAIF,GAAMc,GAAAA,EAAAA,CAAGI,KAAK,CAACH,IAAMC,EAAAA,IAAAA,CAAAA,CAAAA;AAEzB,YAAA,SAASb,MAAMK,KAAK,EAAA;AAChBT,gBAAAA,kBAAAA,CAAmBC,GAAKC,EAAAA,OAAAA,EAASC,MAAQC,EAAAA,KAAAA,EAAOC,QAAQ,MAAQI,EAAAA,KAAAA,CAAAA,CAAAA;AACpE,aAAA;AAEA,YAAA,SAASJ,OAAOe,GAAG,EAAA;AACfpB,gBAAAA,kBAAAA,CAAmBC,GAAKC,EAAAA,OAAAA,EAASC,MAAQC,EAAAA,KAAAA,EAAOC,QAAQ,OAASe,EAAAA,GAAAA,CAAAA,CAAAA;AACrE,aAAA;YAEAhB,KAAMiB,CAAAA,SAAAA,CAAAA,CAAAA;AACV,SAAA,CAAA,CAAA;AACJ,KAAA,CAAA;AACJ;;AC7BO,SAASC,YAAAA,CAAYC,IAAI,EAAEC,KAAK,EAAA;IACnC,IAAIA,KAAAA,IAAS,IAAQ,IAAA,OAAOC,MAAW,KAAA,WAAA,IAAeD,KAAK,CAACC,MAAAA,CAAOC,WAAW,CAAC,EAAE;AAC7E,QAAA,OAAO,CAAC,CAACF,KAAK,CAACC,MAAOC,CAAAA,WAAW,CAAC,CAACH,IAAAA,CAAAA,CAAAA;KAChC,MAAA,OAAOA,YAAI,CAAJA,IAAgBC,EAAAA,KAAAA,CAAAA,CAAAA;AAClC;;ACwHO,SAASG,WAAAA,CAAYC,OAAO,EAAEC,IAAI,EAAA;AACvC,IAAA,IAAIC,CAAI,GAAA;QAAEC,KAAO,EAAA,CAAA;AAAGC,QAAAA,IAAAA,EAAM,SAANA,IAAAA,GAAAA;YAAmB,IAAIC,CAAC,CAAC,CAAE,CAAA,GAAG,GAAG,MAAMA,CAAC,CAAC,CAAE,CAAA,CAAA;YAAE,OAAOA,CAAC,CAAC,CAAE,CAAA,CAAA;AAAE,SAAA;AAAGC,QAAAA,IAAAA,EAAM,EAAE;AAAEC,QAAAA,GAAAA,EAAK,EAAE;KAAIC,EAAAA,CAAAA,EAAGC,GAAGJ,CAAGK,EAAAA,CAAAA,CAAAA;AAC/G,IAAA,OAAOA,CAAI,GAAA;AAAEC,QAAAA,IAAAA,EAAMC,IAAK,CAAA,CAAA,CAAA;AAAI,QAAA,OAAA,EAASA,IAAK,CAAA,CAAA,CAAA;AAAI,QAAA,QAAA,EAAUA,IAAK,CAAA,CAAA,CAAA;KAAM,EAAA,OAAOf,WAAW,UAAea,KAAAA,CAAC,CAACb,MAAAA,CAAOgB,QAAQ,CAAC,GAAG,WAAA;AAAa,QAAA,OAAO,IAAI,CAAA;AAAE,KAAA,CAAIH,EAAAA,CAAAA,CAAAA;AACvJ,IAAA,SAASE,KAAKE,CAAC,EAAA;AAAI,QAAA,OAAO,SAAUC,CAAC,EAAA;AAAI,YAAA,OAAOC,IAAK,CAAA;AAACF,gBAAAA,CAAAA;AAAGC,gBAAAA,CAAAA;AAAE,aAAA,CAAA,CAAA;AAAG,SAAA,CAAA;AAAG,KAAA;AACjE,IAAA,SAASC,KAAKC,EAAE,EAAA;QACZ,IAAIT,CAAAA,EAAG,MAAM,IAAIU,SAAU,CAAA,iCAAA,CAAA,CAAA;AAC3B,QAAA,MAAOR,CAAMA,KAAAA,CAAI,GAAA,CAAA,EAAGO,EAAE,CAAC,CAAA,CAAE,KAAKf,CAAI,GAAA,CAAA,CAAC,CAAA,EAAIA,EAAG,IAAI;YAC1C,IAAIM,CAAAA,GAAI,CAAGC,EAAAA,CAAAA,KAAMJ,CAAAA,GAAIY,EAAE,CAAC,CAAE,CAAA,GAAG,CAAIR,GAAAA,CAAC,CAAC,QAAA,CAAS,GAAGQ,EAAE,CAAC,CAAE,CAAA,GAAGR,CAAC,CAAC,OAAQ,CAAA,KAAMJ,CAAAA,CAAAA,GAAII,CAAC,CAAC,SAAS,KAAKJ,CAAEc,CAAAA,IAAI,CAACV,CAAAA,CAAAA,EAAI,CAAA,CAAA,GAAKA,CAAEE,CAAAA,IAAI,CAAD,IAAM,CAAEN,CAAAA,CAAIA,GAAAA,CAAAA,CAAEc,IAAI,CAACV,CAAGQ,EAAAA,EAAE,CAAC,CAAA,CAAE,CAAA,EAAGlC,IAAI,EAAE,OAAOsB,CAAAA,CAAAA;YAC3J,IAAII,CAAAA,GAAI,CAAGJ,EAAAA,CAAAA,EAAGY,EAAK,GAAA;gBAACA,EAAE,CAAC,EAAE,GAAG,CAAA;AAAGZ,gBAAAA,CAAAA,CAAExB,KAAK;AAAC,aAAA,CAAA;YACvC,OAAQoC,EAAE,CAAC,CAAE,CAAA;gBACT,KAAK,CAAA,CAAA;gBAAG,KAAK,CAAA;oBAAGZ,CAAIY,GAAAA,EAAAA,CAAAA;AAAI,oBAAA,MAAA;gBACxB,KAAK,CAAA;AAAGf,oBAAAA,CAAAA,CAAEC,KAAK,EAAA,CAAA;oBAAI,OAAO;wBAAEtB,KAAOoC,EAAAA,EAAE,CAAC,CAAE,CAAA;wBAAElC,IAAM,EAAA,KAAA;AAAM,qBAAA,CAAA;gBACtD,KAAK,CAAA;AAAGmB,oBAAAA,CAAAA,CAAEC,KAAK,EAAA,CAAA;oBAAIM,CAAIQ,GAAAA,EAAE,CAAC,CAAE,CAAA,CAAA;oBAAEA,EAAK,GAAA;AAAC,wBAAA,CAAA;AAAE,qBAAA,CAAA;AAAE,oBAAA,SAAA;gBACxC,KAAK,CAAA;oBAAGA,EAAKf,GAAAA,CAAAA,CAAEK,GAAG,CAACa,GAAG,EAAA,CAAA;oBAAIlB,CAAEI,CAAAA,IAAI,CAACc,GAAG,EAAA,CAAA;AAAI,oBAAA,SAAA;AACxC,gBAAA;AACI,oBAAA,IAAI,EAAEf,CAAIH,GAAAA,CAAAA,CAAEI,IAAI,EAAED,CAAIA,GAAAA,CAAAA,CAAEgB,MAAM,GAAG,CAAKhB,IAAAA,CAAC,CAACA,CAAEgB,CAAAA,MAAM,GAAG,CAAA,CAAE,CAAD,KAAOJ,EAAE,CAAC,CAAA,CAAE,KAAK,CAAA,IAAKA,EAAE,CAAC,CAAE,CAAA,KAAK,CAAA,CAAI,EAAA;wBAAEf,CAAI,GAAA,CAAA,CAAA;AAAG,wBAAA,SAAA;AAAU,qBAAA;oBAC3G,IAAIe,EAAE,CAAC,CAAE,CAAA,KAAK,MAAM,CAACZ,CAAMY,IAAAA,EAAE,CAAC,CAAA,CAAE,GAAGZ,CAAC,CAAC,CAAE,CAAA,IAAIY,EAAE,CAAC,EAAE,GAAGZ,CAAC,CAAC,CAAA,CAAE,CAAI,EAAA;AAAEH,wBAAAA,CAAAA,CAAEC,KAAK,GAAGc,EAAE,CAAC,CAAE,CAAA,CAAA;AAAE,wBAAA,MAAA;AAAO,qBAAA;oBACrF,IAAIA,EAAE,CAAC,CAAA,CAAE,KAAK,CAAA,IAAKf,CAAEC,CAAAA,KAAK,GAAGE,CAAC,CAAC,CAAA,CAAE,EAAE;AAAEH,wBAAAA,CAAAA,CAAEC,KAAK,GAAGE,CAAC,CAAC,CAAE,CAAA,CAAA;wBAAEA,CAAIY,GAAAA,EAAAA,CAAAA;AAAI,wBAAA,MAAA;AAAO,qBAAA;AACpE,oBAAA,IAAIZ,KAAKH,CAAEC,CAAAA,KAAK,GAAGE,CAAC,CAAC,EAAE,EAAE;AAAEH,wBAAAA,CAAAA,CAAEC,KAAK,GAAGE,CAAC,CAAC,CAAE,CAAA,CAAA;wBAAEH,CAAEK,CAAAA,GAAG,CAACe,IAAI,CAACL,EAAAA,CAAAA,CAAAA;AAAK,wBAAA,MAAA;AAAO,qBAAA;AAClE,oBAAA,IAAIZ,CAAC,CAAC,CAAA,CAAE,EAAEH,CAAEK,CAAAA,GAAG,CAACa,GAAG,EAAA,CAAA;oBACnBlB,CAAEI,CAAAA,IAAI,CAACc,GAAG,EAAA,CAAA;AAAI,oBAAA,SAAA;AACtB,aAAA;YACAH,EAAKhB,GAAAA,IAAAA,CAAKkB,IAAI,CAACnB,OAASE,EAAAA,CAAAA,CAAAA,CAAAA;AAC5B,SAAA,CAAE,OAAOqB,CAAG,EAAA;YAAEN,EAAK,GAAA;AAAC,gBAAA,CAAA;AAAGM,gBAAAA,CAAAA;AAAE,aAAA,CAAA;YAAEd,CAAI,GAAA,CAAA,CAAA;SAAa,QAAA;AAAED,YAAAA,CAAAA,GAAIH,CAAI,GAAA,CAAA,CAAA;AAAG,SAAA;QACzD,IAAIY,EAAE,CAAC,CAAE,CAAA,GAAG,GAAG,MAAMA,EAAE,CAAC,CAAE,CAAA,CAAA;QAAE,OAAO;YAAEpC,KAAOoC,EAAAA,EAAE,CAAC,CAAE,CAAA,GAAGA,EAAE,CAAC,CAAA,CAAE,GAAG,KAAK,CAAA;YAAGlC,IAAM,EAAA,IAAA;AAAK,SAAA,CAAA;AACnF,KAAA;AACF,CAAA;AAqKuB,OAAOyC,eAAAA,KAAoB,UAAaA,GAAAA,eAAAA,GAAkB,0BAAU1C,KAAK,EAAE2C,UAAU,EAAEC,OAAO,EAAA;IACnH,IAAIH,CAAAA,GAAI,IAAII,KAAMD,CAAAA,OAAAA,CAAAA,CAAAA;IAClB,OAAOH,CAAAA,CAAEK,IAAI,GAAG,iBAAmBL,EAAAA,CAAAA,CAAEzC,KAAK,GAAGA,KAAOyC,EAAAA,CAAAA,CAAEE,UAAU,GAAGA,UAAYF,EAAAA,CAAAA,CAAAA;AACjF;;AC9TO,SAASM,iBAAAA,CAAkBC,CAAC,EAAEC,CAAC,EAAA;AAClCF,IAAAA,iBAAAA,GAAoBG,OAAOC,cAAc,IAAI,SAASA,cAAeH,CAAAA,CAAC,EAAEC,CAAC,EAAA;AACrED,QAAAA,CAAAA,CAAEI,SAAS,GAAGH,CAAAA,CAAAA;QAEd,OAAOD,CAAAA,CAAAA;AACX,KAAA,CAAA;AAEA,IAAA,OAAOD,kBAAkBC,CAAGC,EAAAA,CAAAA,CAAAA,CAAAA;AAChC;;ACNO,SAASI,SAAAA,CAAUC,QAAQ,EAAEC,UAAU,EAAA;AAC1C,IAAA,IAAI,OAAOA,UAAAA,KAAe,UAAcA,IAAAA,UAAAA,KAAe,IAAM,EAAA;AACzD,QAAA,MAAM,IAAInB,SAAU,CAAA,oDAAA,CAAA,CAAA;AACxB,KAAA;IAEAkB,QAASE,CAAAA,SAAS,GAAGN,MAAOO,CAAAA,MAAM,CAACF,UAAcA,IAAAA,UAAAA,CAAWC,SAAS,EAAE;QAAEE,WAAa,EAAA;YAAE3D,KAAOuD,EAAAA,QAAAA;YAAUK,QAAU,EAAA,IAAA;YAAMC,YAAc,EAAA,IAAA;AAAK,SAAA;AAAE,KAAA,CAAA,CAAA;IAE9I,IAAIL,UAAAA,EAAYR,kBAAkBO,QAAUC,EAAAA,UAAAA,CAAAA,CAAAA;AAChD;;ACLe,IAAMM,6BAAD,WAAL;AAAMA,IAAAA,SAAAA,YAAAA,CAWjB,EAAmE,EAAA;aAAlDC,EAAAA,GAAAA,EAAAA,CAAAA;aAVnBC,QAAW,GAAA,CAAA,CAAA;aACXC,SAAY,GAAA,CAAA,CAAA;aACZC,KAAQ,GAAA,CAAA,CAAA;aACRC,MAAS,GAAA,CAAA,CAAA;aAEDC,MAAS,GAAA,IAAA,CAAA;AAOf,QAAA,IAAI,CAACC,gBAAgB,GAAGN,EAAAA,CAAGO,YAAY,CAAA;AACvC,QAAA,IAAI,CAACC,cAAc,GAAGR,EAAAA,CAAGS,UAAU,CAAA;QAEnCT,EAAGO,CAAAA,YAAY,GAAG,IAAI,CAACG,kBAAkB,CAACC,IAAI,CAAC,IAAI,CAAA,CAAA;QACnDX,EAAGS,CAAAA,UAAU,GAAG,IAAI,CAACG,gBAAgB,CAACD,IAAI,CAAC,IAAI,CAAA,CAAA;AAE/C,QAAA,IAAIE,KAAMC,CAAAA,OAAO,CAACC,KAAK,EAAE;AACvBC,YAAAA,OAAAA,CAAQD,KAAK,CAAC,qBAAA,CAAA,CAAA;AAChB,SAAA;;AArBiBhB,IAAAA,IAAAA,MAAAA,GAAAA,YAAAA,CAAAA,SAAAA,CAAAA;IAwBnB,MAAQW,CAAAA,kBAGP,GAHD,SAAQA,kBAAoBO,CAAAA,IAAY,EAAEC,KAAa,EAAEC,IAAY,EAAEC,MAAc,EAAA;QACnF,IAAI,CAACd,gBAAgB,CAAC/B,IAAI,CAAC,IAAI,CAACyB,EAAE,EAAEiB,IAAMC,EAAAA,KAAAA,EAAOC,IAAMC,EAAAA,MAAAA,CAAAA,CAAAA;QACvD,IAAI,CAACC,MAAM,CAACH,KAAOD,EAAAA,IAAAA,CAAAA,CAAAA;AACrB,KAAA,CAAA;IAEA,MAAQL,CAAAA,gBAGP,GAHD,SAAQA,gBAAAA,CAAkBK,IAAY,EAAEK,KAAa,EAAEJ,KAAa,EAAA;QAClE,IAAI,CAACV,cAAc,CAACjC,IAAI,CAAC,IAAI,CAACyB,EAAE,EAAEiB,IAAAA,EAAMK,KAAOJ,EAAAA,KAAAA,CAAAA,CAAAA;QAC/C,IAAI,CAACG,MAAM,CAACH,KAAOD,EAAAA,IAAAA,CAAAA,CAAAA;AACrB,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQI,MAoCP,GApCD,SAAQA,MAAQH,CAAAA,KAAa,EAAED,IAAY,EAAA;QACzC,IAAQjB,EAAO,GAAA,IAAI,CAAXA,EAAAA,CAAAA;AAER,QAAA,IAAI,CAACC,QAAQ,EAAA,CAAA;QAEb,OAAQgB,IAAAA;AACN,YAAA,KAAKjB,GAAGuB,SAAS;gBACf,IAAI,CAACrB,SAAS,IAAIgB,KAAQ,GAAA,CAAA,CAAA;AAE1B,gBAAA,MAAA;AACF,YAAA,KAAKlB,GAAGwB,cAAc,CAAA;AACtB,YAAA,KAAKxB,GAAGyB,YAAY;gBAClB,IAAI,CAACvB,SAAS,IAAIgB,KAAQ,GAAA,CAAA,CAAA;AAE1B,gBAAA,MAAA;AACF,YAAA,KAAKlB,GAAG0B,KAAK;gBACX,IAAI,CAACvB,KAAK,IAAIe,KAAQ,GAAA,CAAA,CAAA;AAEtB,gBAAA,MAAA;AACF,YAAA,KAAKlB,GAAG2B,UAAU;gBAChB,IAAI,CAACxB,KAAK,IAAIe,KAAQ,GAAA,CAAA,CAAA;AAEtB,gBAAA,MAAA;AACF,YAAA,KAAKlB,GAAG4B,SAAS;gBACf,IAAI,CAACzB,KAAK,IAAIe,KAAAA,CAAAA;AAEd,gBAAA,MAAA;AACF,YAAA,KAAKlB,GAAG6B,MAAM;gBACZ,IAAI,CAACzB,MAAM,IAAIc,KAAAA,CAAAA;AAEf,gBAAA,MAAA;AACF,YAAA;AACEF,gBAAAA,OAAAA,CAAQ9E,KAAK,CAAC,qBAAC,GAAqB+E,OAAK,WAAWC,GAAAA,KAAAA,CAAAA,CAAAA;AAEpD,gBAAA,MAAA;AACJ,SAAA;AACF,KAAA,CAAA;IAEAY,MAAAA,CAAAA,KAKC,GALDA,SAAAA,KAAAA,GAAAA;QACE,IAAI,CAAC7B,QAAQ,GAAG,CAAA,CAAA;QAChB,IAAI,CAACC,SAAS,GAAG,CAAA,CAAA;QACjB,IAAI,CAACC,KAAK,GAAG,CAAA,CAAA;QACb,IAAI,CAACC,MAAM,GAAG,CAAA,CAAA;AAChB,KAAA,CAAA;IAEA2B,MAAAA,CAAAA,OAMC,GANDA,SAAAA,OAAAA,GAAAA;QACE,IAAI,IAAI,CAAC1B,MAAM,EAAE;AACf,YAAA,IAAI,CAACL,EAAE,CAACO,YAAY,GAAG,IAAI,CAACD,gBAAgB,CAAA;AAC5C,YAAA,IAAI,CAACN,EAAE,CAACS,UAAU,GAAG,IAAI,CAACD,cAAc,CAAA;YACxC,IAAI,CAACH,MAAM,GAAG,KAAA,CAAA;AAChB,SAAA;AACF,KAAA,CAAA;AArFmBN,IAAAA,OAAAA,YAAAA,CAAAA;;;ACCN,IAAMiC,4BAAD,WAAL;AAAMA,IAAAA,SAAAA,WAAAA,CAOjB,EAAmE,EAAA;aAAlDhC,EAAAA,GAAAA,EAAAA,CAAAA;aANnBiC,QAAW,GAAA,CAAA,CAAA;aAGH5B,MAAS,GAAA,IAAA,CAAA;AAKf,QAAA,IAAI,CAAC6B,cAAc,GAAGlC,EAAAA,CAAGmC,UAAU,CAAA;QAEnCnC,EAAGmC,CAAAA,UAAU,GAAG,IAAI,CAACC,gBAAgB,CAACzB,IAAI,CAAC,IAAI,CAAA,CAAA;AAE/C,QAAA,IAAIE,KAAMC,CAAAA,OAAO,CAACC,KAAK,EAAE;AACvBC,YAAAA,OAAAA,CAAQD,KAAK,CAAC,oBAAA,CAAA,CAAA;AAChB,SAAA;;AAfiBiB,IAAAA,IAAAA,MAAAA,GAAAA,WAAAA,CAAAA,SAAAA,CAAAA;AAkBnB,IAAA,MAAA,CAAQI,gBAOP,GAPD,SAAQA,gBAAAA,CAAkBC,OAAqB,EAAA;QAC7C,IAAI,CAACH,cAAc,CAAC3D,IAAI,CAAC,IAAI,CAACyB,EAAE,EAAEqC,OAAAA,CAAAA,CAAAA;AAClC,QAAA,IAAI,CAACJ,QAAQ,EAAA,CAAA;AAEb,QAAA,IAAIpB,KAAMC,CAAAA,OAAO,CAACC,KAAK,EAAE;YACvBC,OAAQD,CAAAA,KAAK,CAAC,cAAC,GAAcsB,UAAQ,aAAa,GAAA,IAAI,CAACJ,QAAQ,GAAC,GAAA,CAAA,CAAA;AAClE,SAAA;AACF,KAAA,CAAA;IAEAH,MAAAA,CAAAA,KAEC,GAFDA,SAAAA,KAAAA,GAAAA;QACE,IAAI,CAACG,QAAQ,GAAG,CAAA,CAAA;AAClB,KAAA,CAAA;IAEAF,MAAAA,CAAAA,OAKC,GALDA,SAAAA,OAAAA,GAAAA;QACE,IAAI,IAAI,CAAC1B,MAAM,EAAE;AACf,YAAA,IAAI,CAACL,EAAE,CAACmC,UAAU,GAAG,IAAI,CAACD,cAAc,CAAA;YACxC,IAAI,CAAC7B,MAAM,GAAG,KAAA,CAAA;AAChB,SAAA;AACF,KAAA,CAAA;AApCmB2B,IAAAA,OAAAA,WAAAA,CAAAA;;;ACDN,IAAMM,2BAAD,WAAL;AAAMA,IAAAA,SAAAA,UAAAA,CAQjB,EAAmE,EAAA;aAAlDtC,EAAAA,GAAAA,EAAAA,CAAAA;aAPnBuC,OAAU,GAAA,CAAA,CAAA;aAIFlC,MAAS,GAAA,IAAA,CAAA;AAKf,QAAA,IAAI,CAACmC,gBAAgB,GAAGxC,EAAAA,CAAGyC,YAAY,CAAA;AACvC,QAAA,IAAI,CAACC,gBAAgB,GAAG1C,EAAAA,CAAG2C,YAAY,CAAA;QAEvC3C,EAAGyC,CAAAA,YAAY,GAAG,IAAI,CAACG,kBAAkB,CAACjC,IAAI,CAAC,IAAI,CAAA,CAAA;QACnDX,EAAG2C,CAAAA,YAAY,GAAG,IAAI,CAACE,kBAAkB,CAAClC,IAAI,CAAC,IAAI,CAAA,CAAA;AAEnD,QAAA,IAAIE,KAAMC,CAAAA,OAAO,CAACC,KAAK,EAAE;AACvBC,YAAAA,OAAAA,CAAQD,KAAK,CAAC,mBAAA,CAAA,CAAA;AAChB,SAAA;;AAlBiBuB,IAAAA,IAAAA,MAAAA,GAAAA,UAAAA,CAAAA,SAAAA,CAAAA;AAqBnB,IAAA,MAAA,CAAQM,kBAOP,GAPD,SAAQA,kBAAoBP,CAAAA,OAAqB,EAAES,MAAmB,EAAA;QACpE,IAAI,CAACN,gBAAgB,CAACjE,IAAI,CAAC,IAAI,CAACyB,EAAE,EAAEqC,OAASS,EAAAA,MAAAA,CAAAA,CAAAA;AAC7C,QAAA,IAAI,CAACP,OAAO,EAAA,CAAA;AAEZ,QAAA,IAAI1B,KAAMC,CAAAA,OAAO,CAACC,KAAK,EAAE;YACvBC,OAAQD,CAAAA,KAAK,CAAC,gBAAC,GAAgB+B,SAAO,aAAa,GAAA,IAAI,CAACP,OAAO,CAAA,CAAA;AACjE,SAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQM,kBAOP,GAPD,SAAQA,kBAAoBR,CAAAA,OAAqB,EAAES,MAAmB,EAAA;QACpE,IAAI,CAACJ,gBAAgB,CAACnE,IAAI,CAAC,IAAI,CAACyB,EAAE,EAAEqC,OAASS,EAAAA,MAAAA,CAAAA,CAAAA;AAC7C,QAAA,IAAI,CAACP,OAAO,EAAA,CAAA;AAEZ,QAAA,IAAI1B,KAAMC,CAAAA,OAAO,CAACC,KAAK,EAAE;AACvBC,YAAAA,OAAAA,CAAQD,KAAK,CAAE,yBAAyB,GAAA,IAAI,CAACwB,OAAO,CAAA,CAAA;AACtD,SAAA;AACF,KAAA,CAAA;IAEAT,MAAAA,CAAAA,KAEC,GAFDA,SAAAA,KAAAA,GAAAA;QACE,IAAI,CAACS,OAAO,GAAG,CAAA,CAAA;AACjB,KAAA,CAAA;IAEAR,MAAAA,CAAAA,OAMC,GANDA,SAAAA,OAAAA,GAAAA;QACE,IAAI,IAAI,CAAC1B,MAAM,EAAE;AACf,YAAA,IAAI,CAACL,EAAE,CAACyC,YAAY,GAAG,IAAI,CAACD,gBAAgB,CAAA;AAC5C,YAAA,IAAI,CAACxC,EAAE,CAAC2C,YAAY,GAAG,IAAI,CAACD,gBAAgB,CAAA;YAC5C,IAAI,CAACrC,MAAM,GAAG,KAAA,CAAA;AAChB,SAAA;AACF,KAAA,CAAA;AAjDmBiC,IAAAA,OAAAA,UAAAA,CAAAA;;;ACAN,IAAMS,4BAAD,WAAL;AAAMA,IAAAA,SAAAA,WAAAA,CAQjB,EAAmE,EAAA;aAAlD/C,EAAAA,GAAAA,EAAAA,CAAAA;aAPnBgD,QAAW,GAAA,CAAA,CAAA;aAIH3C,MAAS,GAAA,IAAA,CAAA;AAKf,QAAA,IAAI,CAAC4C,iBAAiB,GAAGjD,EAAAA,CAAGkD,aAAa,CAAA;AACzC,QAAA,IAAI,CAACC,iBAAiB,GAAGnD,EAAAA,CAAGoD,aAAa,CAAA;QAEzCpD,EAAGkD,CAAAA,aAAa,GAAG,IAAI,CAACG,mBAAmB,CAAC1C,IAAI,CAAC,IAAI,CAAA,CAAA;QACrDX,EAAGoD,CAAAA,aAAa,GAAG,IAAI,CAACE,mBAAmB,CAAC3C,IAAI,CAAC,IAAI,CAAA,CAAA;AAErD,QAAA,IAAIE,KAAMC,CAAAA,OAAO,CAACC,KAAK,EAAE;AACvBC,YAAAA,OAAAA,CAAQD,KAAK,CAAC,oBAAA,CAAA,CAAA;AAChB,SAAA;;AAlBiBgC,IAAAA,IAAAA,MAAAA,GAAAA,WAAAA,CAAAA,SAAAA,CAAAA;IAqBnB,MAAQM,CAAAA,mBAUP,GAVD,SAAQA,mBAAAA,GAAAA;QACN,IAAME,OAAAA,GAAU,IAAI,CAACN,iBAAiB,CAAC1E,IAAI,CAAC,IAAI,CAACyB,EAAE,CAAA,CAAA;AAEnD,QAAA,IAAI,CAACgD,QAAQ,EAAA,CAAA;AAEb,QAAA,IAAInC,KAAMC,CAAAA,OAAO,CAACC,KAAK,EAAE;YACvBC,OAAQD,CAAAA,KAAK,CAAC,iBAAC,GAAiBwC,UAAQ,cAAc,GAAA,IAAI,CAACP,QAAQ,GAAC,GAAA,CAAA,CAAA;AACtE,SAAA;QAEA,OAAOO,OAAAA,CAAAA;AACT,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQD,mBAOP,GAPD,SAAQA,mBAAAA,CAAqBC,OAA4B,EAAA;QACvD,IAAI,CAACJ,iBAAiB,CAAC5E,IAAI,CAAC,IAAI,CAACyB,EAAE,EAAEuD,OAAAA,CAAAA,CAAAA;AACrC,QAAA,IAAI,CAACP,QAAQ,EAAA,CAAA;AAEb,QAAA,IAAInC,KAAMC,CAAAA,OAAO,CAACC,KAAK,EAAE;AACvBC,YAAAA,OAAAA,CAAQD,KAAK,CAAE,8BAA2B,IAAI,CAACiC,QAAQ,GAAC,GAAA,CAAA,CAAA;AAC1D,SAAA;AACF,KAAA,CAAA;IAEAlB,MAAAA,CAAAA,KAEC,GAFDA,SAAAA,KAAAA,GAAAA;QACE,IAAI,CAACkB,QAAQ,GAAG,CAAA,CAAA;AAClB,KAAA,CAAA;IAEAjB,MAAAA,CAAAA,OAMC,GANDA,SAAAA,OAAAA,GAAAA;QACE,IAAI,IAAI,CAAC1B,MAAM,EAAE;AACf,YAAA,IAAI,CAACL,EAAE,CAACkD,aAAa,GAAG,IAAI,CAACD,iBAAiB,CAAA;AAC9C,YAAA,IAAI,CAACjD,EAAE,CAACoD,aAAa,GAAG,IAAI,CAACD,iBAAiB,CAAA;YAC9C,IAAI,CAAC9C,MAAM,GAAG,KAAA,CAAA;AAChB,SAAA;AACF,KAAA,CAAA;AApDmB0C,IAAAA,OAAAA,WAAAA,CAAAA;;;ACMrB;;AAEC,IACM,IAAA,IAAMS,iBAAD,WAAL;AAAMA,IAAAA,SAAAA,IAAAA,CAWT,EAAmE,EAAA;aAAlDxD,EAAAA,GAAAA,EAAAA,CAAAA;aAPXyD,cAAiB,GAAA,EAAA,CAAA;aACjBC,aAAgB,GAAA,CAAA,CAAA;aAChBC,aAAgB,GAAA,CAAA,CAAA;aAChBC,UAAa,GAAA,CAAA,CAAA;AAMnB,QAAA,IAAI,CAAC5D,EAAI,EAAA;AACP,YAAA,MAAM,IAAIjB,KAAM,CAAA,4BAAA,CAAA,CAAA;AAClB,SAAA;QACA,IAAI,CAAC8E,IAAI,CAAC7D,EAAAA,CAAAA,CAAAA;;AAhBDwD,IAAAA,IAAAA,MAAAA,GAAAA,IAAAA,CAAAA,SAAAA,CAAAA;AAmBX,IAAA,MAAA,CAAQK,IAKP,GALD,SAAQA,IAAAA,CAAM7D,EAAkD,EAAA;AAC9D,QAAA,IAAI,CAAC8D,YAAY,GAAG,IAAI/D,YAAaC,CAAAA,EAAAA,CAAAA,CAAAA;AACrC,QAAA,IAAI,CAAC+D,WAAW,GAAG,IAAIhB,WAAY/C,CAAAA,EAAAA,CAAAA,CAAAA;AACnC,QAAA,IAAI,CAACgE,UAAU,GAAG,IAAI1B,UAAWtC,CAAAA,EAAAA,CAAAA,CAAAA;AACjC,QAAA,IAAI,CAACiE,WAAW,GAAG,IAAIjC,WAAYhC,CAAAA,EAAAA,CAAAA,CAAAA;AACrC,KAAA,CAAA;AAEA;;MAGA8B,MAAAA,CAAAA,KAGC,GAHDA,SAAAA,KAAAA,GAAAA;YACE,kBACA,EAAA,iBAAA,CAAA;AADA,QAAA,CAAA,kBAAA,GAAA,IAAI,CAACgC,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjB,mBAAmBhC,KAAK,EAAA,CAAA;AACxB,QAAA,CAAA,iBAAA,GAAA,IAAI,CAACmC,WAAW,KAAA,IAAA,GAAA,KAAA,CAAA,GAAhB,kBAAkBnC,KAAK,EAAA,CAAA;AACzB,KAAA,CAAA;AAEA;;MAGAC,MAAAA,CAAAA,OAKC,GALDA,SAAAA,OAAAA,GAAAA;AACE,QAAA,IAAA,kBAAA,EACA,mBACA,gBACA,EAAA,iBAAA,CAAA;AAHA,QAAA,CAAA,kBAAA,GAAA,IAAI,CAAC+B,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjB,mBAAmB/B,OAAO,EAAA,CAAA;AAC1B,QAAA,CAAA,iBAAA,GAAA,IAAI,CAACgC,WAAW,KAAA,IAAA,GAAA,KAAA,CAAA,GAAhB,kBAAkBhC,OAAO,EAAA,CAAA;AACzB,QAAA,CAAA,gBAAA,GAAA,IAAI,CAACiC,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAf,iBAAiBjC,OAAO,EAAA,CAAA;AACxB,QAAA,CAAA,iBAAA,GAAA,IAAI,CAACkC,WAAW,KAAA,IAAA,GAAA,KAAA,CAAA,GAAhB,kBAAkBlC,OAAO,EAAA,CAAA;AAC3B,KAAA,CAAA;AAEA;;AAEC,MACDV,MAAAA,CAAAA,MAsCC,GAtCDA,SAAAA,OAAQ6C,EAAU,EAAA;QAChB,IAAMC,GAAAA,GAAMC,YAAYD,GAAG,EAAA,CAAA;AAE3B,QAAA,IAAI,CAACR,aAAa,EAAA,CAAA;AAElB,QAAA,IAAIQ,GAAM,GAAA,IAAI,CAACP,UAAU,GAAG,IAAM,EAAA;YAChC,OAAO/G,SAAAA,CAAAA;AACT,SAAA;AAEA,QAAA,IAAI,IAAI,CAAC6G,aAAa,KAAK,IAAI,CAACD,cAAc,EAAE;AAC9C,YAAA,IAAI,CAAC3B,KAAK,EAAA,CAAA;AACV,YAAA,IAAI,CAAC4B,aAAa,EAAA,CAAA;YAElB,OAAO7G,SAAAA,CAAAA;AACT,SAAA;QAEA,IAAI,CAAC6G,aAAa,GAAG,CAAA,CAAA;AAErB,QAAA,IAAMW,IAAwB,GAAA;AAC5BC,YAAAA,GAAAA,EAAKC,IAAKC,CAAAA,KAAK,CAAE,IAAI,CAACb,aAAa,GAAG,IAAA,IAASQ,GAAAA,GAAM,IAAI,CAACP,UAAU,CAAD,CAAA;;YAEnEa,MAAQL,EAAAA,WAAAA,CAAYK,MAAM,IAAKL,YAAYK,MAAM,CAACC,cAAc,GAAG,OAAY,IAAA,CAAA;AAC/EzE,YAAAA,QAAAA,EAAU,IAAK,CAAC6D,YAAY,CAAC7D,QAAQ,KAAK,CAAK,GAAA,CAAA,GAAI,IAAI,CAAC6D,YAAY,CAAC7D,QAAQ,GAAG,CAAA;AAChFC,YAAAA,SAAAA,EAAW,IAAK,CAAC4D,YAAY,CAAC5D,SAAS,KAAK,CAAK,GAAA,CAAA,GAAI,IAAI,CAAC4D,YAAY,CAAC5D,SAAS,GAAG,CAAA;AACnFC,YAAAA,KAAAA,EAAO,IAAI,CAAC2D,YAAY,CAAC3D,KAAK;AAC9BC,YAAAA,MAAAA,EAAQ,IAAI,CAAC0D,YAAY,CAAC1D,MAAM;AAChC4C,YAAAA,QAAAA,EAAU,IAAI,CAACe,WAAW,CAACf,QAAQ;AACnCT,YAAAA,OAAAA,EAAS,IAAK,CAACyB,UAAU,CAACzB,OAAO,KAAK,CAAK,GAAA,CAAA,GAAI,IAAI,CAACyB,UAAU,CAACzB,OAAO,GAAG,CAAA;AACzEN,YAAAA,QAAAA,EAAU,IAAI,CAACgC,WAAW,CAAChC,QAAQ;AACnC0C,YAAAA,YAAAA,EAAc7H,YAAA,CAAA,IAAI,CAACkD,EAAE,EAAY4E,0BAAyB,KAAQ,GAAA,KAAA;AACpE,SAAA,CAAA;AAEA,QAAA,IAAI,CAAC9C,KAAK,EAAA,CAAA;QAEV,IAAI,CAAC6B,aAAa,GAAG,CAAA,CAAA;QACrB,IAAI,CAACC,UAAU,GAAGO,GAAAA,CAAAA;QAElB,OAAOE,IAAAA,CAAAA;AACT,KAAA,CAAA;AArFWb,IAAAA,OAAAA,IAAAA,CAAAA;AAsFZ,CAAA,EAAA;;AChGD,IAAMqB,GAAO,GAAA,gWAAA,CAAA;AAoBb,IAAMC,GAAAA,GAAM,mIAAC,GAOE,EAAK,GAAA,GAAA,GAAI,QAAK,EAAK,GAAA,GAAA,GAAI,OAAO,GAAA,EAAA,GAAK,GAAI,GAAA,wEAAA,GAG1C,KAAK,GAAI,GAAA,4NAAA,GAgBJ,EAAK,GAAA,GAAA,GAAI,8CAIT,GAAA,EAAA,GAAK,GAAI,GAAA,oBAAA,GACX,EAAK,GAAA,GAAA,GAAI,OAAO,GAAA,EAAA,GAAK,GAAI,GAAA,YAAA,CAAA;AAIjC,IAAA,OAAMC,iBAAD,WAAL;AAAMA,IAAAA,SAAAA,OAAAA,CAmBE/E,EAAkD,EAAA;aAf9CgF,KAAQ,GAAA;AAAC,YAAA,KAAA;AAAO,YAAA,QAAA;AAAU,YAAA,UAAA;AAAY,YAAA,WAAA;AAAa,YAAA,UAAA;AAAY,YAAA,SAAA;AAAW,YAAA,UAAA;AAAY,YAAA,cAAA;AAAe,SAAA,CAAA;aAE9GX,IAAwB,GAAA;YAC9BC,GAAK,EAAA,EAAA;YACLG,MAAQ,EAAA,CAAA;YACRxE,QAAU,EAAA,CAAA;YACVC,SAAW,EAAA,CAAA;YACXC,KAAO,EAAA,CAAA;YACPC,MAAQ,EAAA,CAAA;YACR4C,QAAU,EAAA,CAAA;YACVT,OAAS,EAAA,CAAA;YACTN,QAAU,EAAA,CAAA;YACV0C,YAAc,EAAA,KAAA;AAChB,SAAA,CAAA;AAGE,QAAA,IAAI,CAACM,IAAI,GAAG,IAAIzB,IAAKxD,CAAAA,EAAAA,CAAAA,CAAAA;AAErB,QAAA,IAAI,CAACkF,eAAe,EAAA,CAAA;QACpB,IAAI,CAAC7D,MAAM,GAAG,IAAI,CAACA,MAAM,CAACV,IAAI,CAAC,IAAI,CAAA,CAAA;;AAvB1BoE,IAAAA,IAAAA,MAAAA,GAAAA,OAAAA,CAAAA,SAAAA,CAAAA;IA0BX,MAAQG,CAAAA,eAUP,GAVD,SAAQA,eAAAA,GAAAA;QACN,IAAMC,SAAAA,GAAYC,QAASC,CAAAA,aAAa,CAAC,KAAA,CAAA,CAAA;QAEzCF,SAAUG,CAAAA,SAAS,CAACC,GAAG,CAAC,SAAA,CAAA,CAAA;AACxBJ,QAAAA,SAAAA,CAAUK,SAAS,GAAGX,GAAAA,CAAAA;AACtBM,QAAAA,SAAAA,CAAUM,WAAW,CAAC,IAAI,CAACC,WAAW,EAAA,CAAA,CAAA;QACtCN,QAAS/H,CAAAA,IAAI,CAACoI,WAAW,CAACN,SAAAA,CAAAA,CAAAA;AAE1B,QAAA,IAAI,CAACQ,IAAI,GAAGC,KAAAA,CAAMlG,SAAS,CAACmG,KAAK,CAAClJ,KAAK,CAACwI,SAAUW,CAAAA,gBAAgB,CAAC,IAAA,CAAA,CAAA,CAAA;QACnE,IAAI,CAACX,SAAS,GAAGA,SAAAA,CAAAA;AACnB,KAAA,CAAA;IAEA,MAAQO,CAAAA,WAMP,GAND,SAAQA,WAAAA,GAAAA;QACN,IAAMK,KAAAA,GAA0BX,QAASC,CAAAA,aAAa,CAAC,OAAA,CAAA,CAAA;AAEvDU,QAAAA,KAAAA,CAAMN,WAAW,CAACL,QAASY,CAAAA,cAAc,CAAClB,GAAAA,CAAAA,CAAAA,CAAAA;QAE1C,OAAOiB,KAAAA,CAAAA;AACT,KAAA,CAAA;AAEA;;AAEC,MACD1E,MAAAA,CAAAA,MAiBC,GAjBDA,SAAAA,OAAQ6C,EAAU,EAAA;;AAQd,YAAA,IAAM+B,GAAM,GAAA,KAAA,CAAKN,IAAI,CAACO,CAAE,CAAA,CAAA;AACxB,YAAA,IAAMC,IAAO,GAAA,KAAA,CAAKnB,KAAK,CAACkB,CAAE,CAAA,CAAA;AAC1B,YAAA,IAAMjK,KAAQoI,GAAAA,IAAI,CAAC8B,IAAAA,CAA8B,IAAI,CAAA,CAAA;;YAGrDC,qBAAsB,CAAA,WAAA;gBACpBH,GAAII,CAAAA,SAAS,GAAGC,MAAOrK,CAAAA,KAAAA,CAAAA,CAAAA;AACzB,aAAA,CAAA,CAAA;AACF,SAAA,CAAA;AAfA,QAAA,IAAMoI,OAAO,IAAI,CAACY,IAAI,CAAC5D,MAAM,CAAC6C,EAAAA,CAAAA,CAAAA;QAE9B,IAAI,CAACG,QAAQA,IAAKpE,CAAAA,QAAQ,KAAK,CAAKoE,IAAAA,IAAAA,CAAKnE,SAAS,KAAK,CAAG,EAAA;AACxD,YAAA,OAAA;AACF,SAAA;QAEA,IAAK,IAAIgG,CAAI,GAAA,CAAA,EAAGK,CAAI,GAAA,IAAI,CAACvB,KAAK,CAACvG,MAAM,EAAEyH,CAAAA,GAAIK,CAAGL,EAAAA,CAAAA,EAAAA,CAAAA,KAAAA,GAAAA,IAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAUhD,KAAA,CAAA;AAEA;;MAGApE,MAAAA,CAAAA,KAaC,GAbDA,SAAAA,KAAAA,GAAAA;;AAII,YAAA,IAAMmE,GAAM,GAAA,KAAA,CAAKN,IAAI,CAACO,CAAE,CAAA,CAAA;AACxB,YAAA,IAAMC,IAAO,GAAA,KAAA,CAAKnB,KAAK,CAACkB,CAAE,CAAA,CAAA;AAC1B,YAAA,IAAMjK,KAAQ,GAAA,KAAA,CAAKoI,IAAI,CAAC8B,KAA8B,IAAI,CAAA,CAAA;;YAG1DC,qBAAsB,CAAA,WAAA;gBACpBH,GAAII,CAAAA,SAAS,GAAGC,MAAOrK,CAAAA,KAAAA,CAAAA,CAAAA;AACzB,aAAA,CAAA,CAAA;AACF,SAAA,CAAA;QAXA,IAAI,CAACgJ,IAAI,CAACnD,KAAK,EAAA,CAAA;QAEf,IAAK,IAAIoE,CAAI,GAAA,CAAA,EAAGK,CAAI,GAAA,IAAI,CAACvB,KAAK,CAACvG,MAAM,EAAEyH,CAAAA,GAAIK,CAAGL,EAAAA,CAAAA,EAAAA,CAAAA,KAAAA,GAAAA,IAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAUhD,KAAA,CAAA;AAEA;;MAGAnE,MAAAA,CAAAA,OAEC,GAFDA,SAAAA,OAAAA,GAAAA;QACE,IAAI,CAACkD,IAAI,CAAClD,OAAO,EAAA,CAAA;AACnB,KAAA,CAAA;AAEA;;MAGAyE,MAAAA,CAAAA,OAGC,GAHDA,SAAAA,OAAAA,GAAAA;AACE,QAAA,IAAI,CAACzE,OAAO,EAAA,CAAA;AACZqD,QAAAA,QAAAA,CAAS/H,IAAI,CAACoJ,WAAW,CAAC,IAAI,CAACtB,SAAS,CAAA,CAAA;AAC1C,KAAA,CAAA;AAnGWJ,IAAAA,OAAAA,OAAAA,CAAAA;AAoGZ,CAAA,EAAA;;AC5JM,IAAA,cAAM2B,iBAAD,SAAL,SAAA,EAAA;AAAMA,IAAAA,SAAAA,CAAAA,cAAAA,EAAAA,SAAAA,CAAAA,CAAAA;AAAAA,IAAAA,SAAAA,cAAAA,GAAAA;;;AAAAA,IAAAA,IAAAA,MAAAA,GAAAA,cAAAA,CAAAA,SAAAA,CAAAA;IAMX,MAASC,CAAAA,OAKR,GALD,SAASA,OAAAA,GAAAA;AACP,QAAA,IAAMC,QAAW,GAAA,IAAI,CAACC,MAAM,CAACD,QAAQ,CAAA;AACrC,QAAA,IAAM5G,EAAK4G,GAAAA,QAAAA,CAASE,eAAe,CAAC9G,EAAE,CAAA;AAEtC,QAAA,IAAI,CAAC+G,OAAO,GAAG,IAAIhC,OAAQ/E,CAAAA,EAAAA,CAAAA,CAAAA;AAC7B,KAAA,CAAA;AAEA,IAAA,MAAA,CAASgH,QAER,GAFD,SAASA,QAAAA,CAAU9C,EAAU,EAAA;AAC3B,QAAA,IAAI,CAAC6C,OAAO,CAAC1F,MAAM,CAAC6C,EAAAA,CAAAA,CAAAA;AACtB,KAAA,CAAA;IAEA,MAASsC,CAAAA,OAGR,GAHD,SAASA,OAAAA,GAAAA;AACP,QAAA,SAAA,CAAA,SAAA,CAAMA,OAAD,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;QACL,IAAI,CAACO,OAAO,CAACP,OAAO,EAAA,CAAA;AACtB,KAAA,CAAA;AApBWE,IAAAA,OAAAA,cAAAA,CAAAA;EAAuBO,SAqBnC,CAAA;;ACjBD,IAAMC,IAAO,GAAA;AACX,IAAA,QAAA,EAAU,EAAE;AACZ,IAAA,OAAA,EAAS,EAAE;IACX,SAAW,EAAA,KAAA;AACX,IAAA,QAAA,EAAU,EAAE;AACZ,IAAA,SAAA,EAAW,EAAE;IACb,MAAQ,EAAA,IAAA;IACR,cAAgB,EAAA;AAAC,QAAA;YACf,IAAM,EAAA,GAAA;YACN,MAAQ,EAAA,OAAA;YACR,UAAY,EAAA,CAAA;YACZ,WAAa,EAAA,CAAA;YACb,aAAe,EAAA,CAAA;YACf,aAAe,EAAA;AAAC,gBAAA,GAAA;AAAK,gBAAA,IAAA;AAAK,aAAA;YAC1B,OAAS,EAAA;AAAC,gBAAA;oBACR,IAAM,EAAA,kCAAA;AACR,iBAAA;AAAE,aAAA;YACF,QAAU,EAAA;gBACR,KAAO,EAAA,EAAA;gBACP,KAAO,EAAA,EAAA;gBACP,MAAQ,EAAA,GAAA;gBACR,UAAY,EAAA,CAAA;gBACZ,UAAY,EAAA;AAAC,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAE,iBAAA;gBACrB,UAAY,EAAA;AAAC,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAG,oBAAA,CAAA;AAAE,iBAAA;AACvB,aAAA;AACA,YAAA,eAAA,EAAiB,EAAE;AACrB,SAAA;AAAE,KAAA;AACF,IAAA,YAAA,EAAc,EAAE;AAChB,IAAA,YAAA,EAAc,EAAE;AAChB,IAAA,WAAA,EAAa,EAAE;IACf,OAAS,EAAA;AAAC,QAAA;YACR,IAAM,EAAA,kCAAA;YACN,MAAQ,EAAA,WAAA;YACR,UAAY,EAAA,KAAA;YACZ,MAAQ,EAAA,GAAA;YACR,SAAW,EAAA,IAAA;YACX,aAAe,EAAA,CAAA;YACf,OAAS,EAAA,CAAA;YACT,aAAe,EAAA,IAAA;AACf,YAAA,YAAA,EAAc,EAAE;YAChB,WAAa,EAAA;gBACX,UAAY,EAAA;oBACV,GAAK,EAAA,CAAA;oBACL,GAAK,EAAA,CAAA;oBACL,GAAK,EAAA,CAAA;AACP,iBAAA;gBACA,WAAa,EAAA;oBACX,GAAK,EAAA,CAAA;oBACL,GAAK,EAAA,CAAA;oBACL,GAAK,EAAA,CAAA;AACP,iBAAA;gBACA,QAAU,EAAA;oBACR,GAAK,EAAA,CAAA;oBACL,GAAK,EAAA,CAAA;AACP,iBAAA;gBACA,MAAQ,EAAA;oBACN,GAAK,EAAA,GAAA;oBACL,GAAK,EAAA,GAAA;AACP,iBAAA;gBACA,OAAS,EAAA;oBACP,GAAK,EAAA,CAAA;oBACL,GAAK,EAAA,CAAA;oBACL,GAAK,EAAA,CAAA;AACP,iBAAA;AACF,aAAA;YACA,UAAY,EAAA,aAAA;AACd,SAAA;AAAE,KAAA;AACF,IAAA,SAAA,EAAW,EAAE;AACb,IAAA,MAAA,EAAQ,EAAE;AACV,IAAA,UAAA,EAAY,EAAE;AACd,IAAA,YAAA,EAAc,EAAE;IAChB,eAAiB,EAAA,GAAA;AACnB,CAAA,CAAA;AAEO,IAAA,KAAMrG,iBAAD,WAAL;aAAMA,KAIT,CAAgBsG,MAAc,EAC9BrG,OAAwC,EAAA;AAAxCA,QAAAA,IAAAA,oBAAAA,OAAwB,GAAA;YAAEC,KAAO,EAAA,KAAA;AAAM,SAAA,CAAA;aADvBoG,MAAAA,GAAAA,MAAAA,CAAAA;AAJPtG,QAAAA,KAAAA,CAOHC,OAAO,GAAGA,OAAAA,CAAAA;QAEhB,KAAK,IAAI,CAACsG,IAAI,EAAA,CAAA;;AATLvG,IAAAA,IAAAA,MAAAA,GAAAA,KAAAA,CAAAA,SAAAA,CAAAA;IAYX,MAAMuG,CAAAA,IASL,GATD,SAAMA,IAAAA,GAAAA;;eAAN,mBAAA,CAAA,WAAA;AAEUC,YAAAA,IAAAA,WAAAA,EACAC,SAGC3I,EAAAA,CAAAA,CAAAA;;;;;;;;;;AAJa,wBAAA,OAAA;;4BAAM,KAAKwI,CAAAA,MAAM,CAACI,SAAS,CAACL,IAAAA,CAAAA;;;wBAA1CG,WAAc,GAAA,MAAA,CAAA,IAAA,EAAA,CAAA;wBACdC,SAAYD,GAAAA,WAAAA,CAAYG,aAAa,CAAC,WAAA,CAAA,CAAA;wBAE5CF,SAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAAA,CAAWG,YAAY,CAACf,cAAAA,CAAAA,CAAAA;;;;;;AACjB/H,wBAAAA,CAAAA,GAAAA,MAAAA,CAAAA,IAAAA,EAAAA,CAAAA;AACP,wBAAA,MAAM,IAAII,KAAM,CAAC,8BAA8BJ,GAAAA,CAAAA,CAAEG,OAAO,GAAC,GAAA,CAAA,CAAA;;;;;;;AAE7D,SAAA,CAAA,EAAA,CAAA;;AArBW+B,IAAAA,OAAAA,KAAAA,CAAAA;AAsBZ,CAAA;;;;"}
|
package/dist/monitor.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Disposable } from '@galacean/effects';
|
|
2
|
+
export declare class Monitor implements Disposable {
|
|
2
3
|
private core;
|
|
3
4
|
private doms;
|
|
4
5
|
private container;
|
|
@@ -20,7 +21,7 @@ export declare class Monitor {
|
|
|
20
21
|
*/
|
|
21
22
|
release(): void;
|
|
22
23
|
/**
|
|
23
|
-
*
|
|
24
|
+
* dispose the instance
|
|
24
25
|
*/
|
|
25
|
-
|
|
26
|
+
dispose(): void;
|
|
26
27
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galacean/effects-plugin-stats",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.1.0-alpha.0",
|
|
4
4
|
"description": "Galacean Effects runtime stats for the web",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"registry": "https://registry.npmjs.org"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@galacean/effects": "2.0.
|
|
31
|
+
"@galacean/effects": "2.1.0-alpha.0"
|
|
32
32
|
},
|
|
33
33
|
"scripts": {
|
|
34
34
|
"dev": "vite",
|