@galacean/effects-plugin-stats 2.5.0-alpha.0 → 2.5.0-alpha.1

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.mjs CHANGED
@@ -3,11 +3,11 @@
3
3
  * Description: Galacean Effects runtime stats for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 云垣
6
- * Version: v2.5.0-alpha.0
6
+ * Version: v2.5.0-alpha.1
7
7
  */
8
8
 
9
9
  import * as EFFECTS from '@galacean/effects';
10
- import { Behaviour, logger } from '@galacean/effects';
10
+ import { EventEmitter, Behaviour, Deferred, logger } from '@galacean/effects';
11
11
 
12
12
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
13
13
  try {
@@ -171,6 +171,11 @@ function _inherits(subClass, superClass) {
171
171
  if (superClass) _set_prototype_of(subClass, superClass);
172
172
  }
173
173
 
174
+ function _assert_this_initialized(self) {
175
+ if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
176
+ return self;
177
+ }
178
+
174
179
  /**
175
180
  * DrawCallHook
176
181
  */ var DrawCallHook = /*#__PURE__*/ function() {
@@ -453,10 +458,15 @@ var TextureHook = /*#__PURE__*/ function() {
453
458
 
454
459
  var 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';
455
460
  var css = "\n .gl-perf {\n pointer-events: none;\n user-select: none;\n position: absolute;\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";
456
- var Monitor = /*#__PURE__*/ function() {
461
+ /**
462
+ * Performance monitor.
463
+ */ var Monitor = /*#__PURE__*/ function(EventEmitter) {
464
+ _inherits(Monitor, EventEmitter);
457
465
  function Monitor(gl, options) {
458
- this.options = options;
459
- this.items = [
466
+ var _this;
467
+ _this = EventEmitter.call(this) || this;
468
+ _this.options = options;
469
+ _this.items = [
460
470
  "fps",
461
471
  "memory",
462
472
  "drawCall",
@@ -466,7 +476,8 @@ var Monitor = /*#__PURE__*/ function() {
466
476
  "programs",
467
477
  "webglContext"
468
478
  ];
469
- this.data = {
479
+ _this.visible = false;
480
+ _this.data = {
470
481
  fps: 60,
471
482
  memory: 0,
472
483
  drawCall: 0,
@@ -478,15 +489,17 @@ var Monitor = /*#__PURE__*/ function() {
478
489
  programs: 0,
479
490
  webglContext: "2.0"
480
491
  };
481
- this.core = new Core(gl, options.debug);
482
- this.createContainer();
483
- this.update = this.update.bind(this);
492
+ _this.core = new Core(gl, options.debug);
493
+ _this.visible = options.visible;
494
+ _this.createContainer();
495
+ _this.update = _this.update.bind(_assert_this_initialized(_this));
496
+ return _this;
484
497
  }
485
498
  var _proto = Monitor.prototype;
486
499
  _proto.createContainer = function createContainer() {
487
500
  var container = document.createElement("div");
488
501
  this.container = container;
489
- if (!this.options.visible) {
502
+ if (!this.visible) {
490
503
  this.hide();
491
504
  }
492
505
  container.classList.add("gl-perf");
@@ -516,12 +529,22 @@ var Monitor = /*#__PURE__*/ function() {
516
529
  if (!data || data.triangles === 0) {
517
530
  return;
518
531
  }
532
+ this.emit("update", data);
533
+ if (!this.visible) {
534
+ return;
535
+ }
519
536
  for(var i = 0, l = this.items.length; i < l; i++)_this = this, _loop(i);
520
537
  };
521
- _proto.hide = function hide() {
538
+ /**
539
+ * Hide the monitor
540
+ */ _proto.hide = function hide() {
541
+ this.visible = false;
522
542
  this.container.style.display = "none";
523
543
  };
524
- _proto.show = function show() {
544
+ /**
545
+ * Show the monitor
546
+ */ _proto.show = function show() {
547
+ this.visible = true;
525
548
  this.container.style.display = "block";
526
549
  };
527
550
  /**
@@ -551,9 +574,11 @@ var Monitor = /*#__PURE__*/ function() {
551
574
  this.container.remove();
552
575
  };
553
576
  return Monitor;
554
- }();
577
+ }(EventEmitter);
555
578
 
556
- var StatsComponent = /*#__PURE__*/ function(Behaviour) {
579
+ /**
580
+ * Stats 组件,用于监控渲染性能
581
+ */ var StatsComponent = /*#__PURE__*/ function(Behaviour) {
557
582
  _inherits(StatsComponent, Behaviour);
558
583
  function StatsComponent() {
559
584
  return Behaviour.apply(this, arguments);
@@ -564,10 +589,15 @@ var StatsComponent = /*#__PURE__*/ function(Behaviour) {
564
589
  var gl = renderer.pipelineContext.gl;
565
590
  this.monitor = new Monitor(gl, options);
566
591
  };
567
- _proto.onUpdate = function onUpdate(dt) {
592
+ /**
593
+ * 每帧更新
594
+ * @param dt
595
+ */ _proto.onUpdate = function onUpdate(dt) {
568
596
  this.monitor.update(dt);
569
597
  };
570
- _proto.dispose = function dispose() {
598
+ /**
599
+ * 释放资源
600
+ */ _proto.dispose = function dispose() {
571
601
  Behaviour.prototype.dispose.call(this);
572
602
  this.monitor.dispose();
573
603
  };
@@ -670,12 +700,40 @@ var json = {
670
700
  "compositionId": "2"
671
701
  };
672
702
  /**
703
+ * Stats plugin for the Player.
704
+ *
705
+ * @example
706
+ * ```ts
707
+ * // Simple usage of Stats plugin
708
+ * import { Stats } from '@galacean/effects-plugin-stats';
709
+ *
710
+ * const stats = new Stats(player);
711
+ * // Hide the stats monitor
712
+ * stats.hide();
713
+ * // Show the stats monitor
714
+ * stats.show();
715
+ * ```
673
716
  *
717
+ * @example
718
+ * ```ts
719
+ * // 自定义 Stats 组件的 onUpdate 方法
720
+ * // 可用于在每帧更新时获取性能数据
721
+ * const stats = new Stats(player, { visible: false });
722
+ * const [_, component] = await Promise.all([
723
+ * player.loadScene(json),
724
+ * stats.getComponent(),
725
+ * ]);
726
+ *
727
+ * component?.monitor.on('update', data => {
728
+ * console.info(data);
729
+ * });
730
+ * ```
674
731
  */ var Stats = /*#__PURE__*/ function() {
675
732
  function Stats(player, options) {
676
733
  this.player = player;
677
734
  this.options = options;
678
735
  this.disposed = false;
736
+ this.initialized = new Deferred();
679
737
  void this.init();
680
738
  }
681
739
  var _proto = Stats.prototype;
@@ -689,8 +747,8 @@ var json = {
689
747
  _state.trys.push([
690
748
  0,
691
749
  2,
692
- ,
693
- 3
750
+ 3,
751
+ 4
694
752
  ]);
695
753
  return [
696
754
  4,
@@ -705,12 +763,17 @@ var json = {
705
763
  }
706
764
  return [
707
765
  3,
708
- 3
766
+ 4
709
767
  ];
710
768
  case 2:
711
769
  e = _state.sent();
712
770
  throw new Error("Failed to load stats scene: " + e.message + ".");
713
771
  case 3:
772
+ _this.initialized.resolve();
773
+ return [
774
+ 7
775
+ ];
776
+ case 4:
714
777
  return [
715
778
  2
716
779
  ];
@@ -718,15 +781,45 @@ var json = {
718
781
  });
719
782
  })();
720
783
  };
721
- _proto.hide = function hide() {
784
+ /**
785
+ * Get the stats component.
786
+ * @returns
787
+ */ _proto.getComponent = function getComponent() {
788
+ var _this = this;
789
+ return _async_to_generator(function() {
790
+ return __generator(this, function(_state) {
791
+ switch(_state.label){
792
+ case 0:
793
+ return [
794
+ 4,
795
+ _this.initialized.promise
796
+ ];
797
+ case 1:
798
+ _state.sent();
799
+ return [
800
+ 2,
801
+ _this.component
802
+ ];
803
+ }
804
+ });
805
+ })();
806
+ };
807
+ /**
808
+ * Hide the stats monitor.
809
+ */ _proto.hide = function hide() {
722
810
  var _this_component;
723
811
  (_this_component = this.component) == null ? void 0 : _this_component.monitor.hide();
724
812
  };
725
- _proto.show = function show() {
813
+ /**
814
+ * Show the stats monitor.
815
+ */ _proto.show = function show() {
726
816
  var _this_component;
727
817
  (_this_component = this.component) == null ? void 0 : _this_component.monitor.show();
728
818
  };
729
- _proto.dispose = function dispose() {
819
+ /**
820
+ * Dispose the stats component and release resources.
821
+ * @returns
822
+ */ _proto.dispose = function dispose() {
730
823
  var _this_component;
731
824
  if (this.disposed) {
732
825
  return;
@@ -740,7 +833,7 @@ var json = {
740
833
 
741
834
  /**
742
835
  * 插件版本号
743
- */ var version = "2.5.0-alpha.0";
836
+ */ var version = "2.5.0-alpha.1";
744
837
  logger.info("Plugin stats version: " + version + ".");
745
838
  if (version !== EFFECTS.version) {
746
839
  console.error("注意:请统一 Stats 插件与 Player 版本,不统一的版本混用会有不可预知的后果!", "\nAttention: Please ensure the Stats plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!");
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_extends.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/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","../src/index.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}\nfunction _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","function _extends() {\n _extends = Object.assign || function assign(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\nexport { _extends as _ };\n","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, Iterator */\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 = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"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 = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\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\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\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, inner;\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 if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\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 var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\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 __rewriteRelativeImportExtension,\n};\n","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 { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _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","/**\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 private readonly debug: boolean,\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 (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","/**\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 private readonly debug: boolean,\n ) {\n this.realUseProgram = gl.useProgram;\n\n gl.useProgram = this.hookedUseProgram.bind(this);\n\n if (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 (this.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","/**\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 private readonly debug: boolean,\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 (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 (this.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 (this.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","type CreateTexture = typeof WebGLRenderingContext.prototype.createTexture;\ntype DeleteTexture = typeof WebGLRenderingContext.prototype.deleteTexture;\n\n/**\n * TextureHook\n */\nexport default class TextureHook {\n textures = 0;\n\n private readonly realCreateTexture: CreateTexture;\n private readonly realDeleteTexture: DeleteTexture;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n private readonly debug: boolean,\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 (debug) {\n console.debug('Texture is hooked.');\n }\n }\n\n private hookedCreateTexture: CreateTexture = (...args) => {\n const texture = this.realCreateTexture.call(this.gl, ...args);\n\n this.textures++;\n\n if (this.debug) {\n console.debug(`CreateTexture: ${texture}, textures: ${this.textures}.`);\n }\n\n return texture;\n };\n\n private hookedDeleteTexture: DeleteTexture = (...args: Parameters<DeleteTexture>) => {\n this.realDeleteTexture.call(this.gl, ...args);\n this.textures--;\n\n if (this.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 debug = false,\n ) {\n if (!gl) {\n throw new Error('Unsupported WebGL context.');\n }\n this.hook(gl, debug);\n }\n\n private hook (gl: WebGLRenderingContext | WebGL2RenderingContext, debug: boolean): void {\n this.drawCallHook = new DrawCallHook(gl, debug);\n this.textureHook = new TextureHook(gl, debug);\n this.shaderHook = new ShaderHook(gl, debug);\n this.programHook = new ProgramHook(gl, debug);\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,\n triangles: (this.drawCallHook.triangles === 0) ? 0 : this.drawCallHook.triangles,\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,\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';\nimport type { StatsOptions } from './stats';\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: absolute;\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 (\n gl: WebGLRenderingContext | WebGL2RenderingContext,\n private readonly options: Required<StatsOptions>,\n ) {\n this.core = new Core(gl, options.debug);\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 this.container = container;\n if (!this.options.visible) {\n this.hide();\n }\n container.classList.add('gl-perf');\n container.innerHTML = tpl;\n container.appendChild(this.createStyle());\n this.options.container.appendChild(container);\n\n this.doms = Array.prototype.slice.apply(container.querySelectorAll('dd'));\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.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 hide (): void {\n this.container.style.display = 'none';\n }\n\n show (): void {\n this.container.style.display = 'block';\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 this.container.remove();\n }\n}\n","import type { GLRenderer } from '@galacean/effects';\nimport { Behaviour } from '@galacean/effects';\nimport { Monitor } from './monitor';\nimport type { StatsOptions } from './stats';\n\nexport class StatsComponent extends Behaviour {\n /**\n * 监控对象\n */\n monitor: Monitor;\n\n init (options: Required<StatsOptions>): void {\n const renderer = this.engine.renderer as GLRenderer;\n const gl = renderer.pipelineContext.gl;\n\n this.monitor = new Monitor(gl, options);\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, Disposable } from '@galacean/effects';\nimport { StatsComponent } from './stats-component';\n\n/**\n *\n */\nexport interface StatsOptions {\n /**\n * @default false\n */\n debug?: boolean,\n /**\n * @default true\n */\n visible?: boolean,\n /**\n * @default document.body\n */\n container?: HTMLElement,\n}\n\nconst defaultStatsOptions: Required<StatsOptions> = {\n debug: false,\n visible: true,\n container: document.body,\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': '3',\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\n/**\n *\n */\nexport class Stats implements Disposable {\n private component?: StatsComponent;\n private disposed = false;\n\n /**\n *\n * @param player\n * @param options\n */\n constructor (\n public readonly player: Player,\n private readonly options?: StatsOptions,\n ) {\n void this.init();\n }\n\n async init () {\n try {\n const composition = await this.player.loadScene(json);\n const item = composition.getItemByName('component');\n\n if (item) {\n item.addComponent(StatsComponent).init({ ...defaultStatsOptions, ...this.options });\n this.component = item.getComponent(StatsComponent);\n }\n } catch (e: any) {\n throw new Error(`Failed to load stats scene: ${e.message}.`);\n }\n }\n\n hide () {\n this.component?.monitor.hide();\n }\n\n show () {\n this.component?.monitor.show();\n }\n\n dispose () {\n if (this.disposed) {\n return;\n }\n this.disposed = true;\n this.component?.dispose();\n this.component = undefined;\n }\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { logger } from '@galacean/effects';\n\nexport * from './stats';\n\n/**\n * 插件版本号\n */\nexport const version = __VERSION__;\n\nlogger.info(`Plugin stats version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 Stats 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the Stats plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!'\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","_extends","Object","assign","target","i","length","source","prototype","hasOwnProperty","call","_instanceof","left","right","Symbol","hasInstance","__generator","thisArg","body","_","label","sent","t","trys","ops","f","y","g","create","Iterator","next","verb","iterator","n","v","step","op","TypeError","pop","push","e","SuppressedError","suppressed","message","Error","name","_set_prototype_of","o","p","setPrototypeOf","__proto__","_inherits","subClass","superClass","constructor","writable","configurable","DrawCallHook","debug","gl","drawCall","triangles","lines","points","hooked","realDrawElements","drawElements","realDrawArrays","drawArrays","hookedDrawElements","bind","hookedDrawArrays","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","hookedCreateTexture","texture","realCreateTexture","hookedDeleteTexture","realDeleteTexture","createTexture","deleteTexture","Core","samplingFrames","samplingIndex","updateCounter","updateTime","hook","drawCallHook","textureHook","shaderHook","programHook","dt","now","performance","data","fps","Math","round","memory","usedJSHeapSize","webglContext","WebGL2RenderingContext","tpl","css","Monitor","options","items","core","createContainer","container","document","createElement","visible","hide","classList","add","innerHTML","appendChild","createStyle","doms","Array","slice","querySelectorAll","style","createTextNode","dom","item","requestAnimationFrame","innerText","String","l","display","show","dispose","remove","StatsComponent","init","renderer","engine","pipelineContext","monitor","onUpdate","Behaviour","defaultStatsOptions","json","Stats","player","disposed","composition","loadScene","getItemByName","addComponent","component","getComponent","version","logger","EFFECTS"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_extends.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_assert_this_initialized.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","../src/index.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}\nfunction _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","function _extends() {\n _extends = Object.assign || function assign(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\nexport { _extends as _ };\n","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, Iterator */\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 = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"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 = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\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\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\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, inner;\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 if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\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 var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\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 __rewriteRelativeImportExtension,\n};\n","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 { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _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","function _assert_this_initialized(self) {\n if (self === void 0) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\n return self;\n}\nexport { _assert_this_initialized as _ };\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 private readonly debug: boolean,\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 (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","/**\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 private readonly debug: boolean,\n ) {\n this.realUseProgram = gl.useProgram;\n\n gl.useProgram = this.hookedUseProgram.bind(this);\n\n if (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 (this.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","/**\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 private readonly debug: boolean,\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 (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 (this.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 (this.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","type CreateTexture = typeof WebGLRenderingContext.prototype.createTexture;\ntype DeleteTexture = typeof WebGLRenderingContext.prototype.deleteTexture;\n\n/**\n * TextureHook\n */\nexport default class TextureHook {\n textures = 0;\n\n private readonly realCreateTexture: CreateTexture;\n private readonly realDeleteTexture: DeleteTexture;\n private hooked = true;\n\n constructor (\n private readonly gl: WebGLRenderingContext | WebGL2RenderingContext,\n private readonly debug: boolean,\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 (debug) {\n console.debug('Texture is hooked.');\n }\n }\n\n private hookedCreateTexture: CreateTexture = (...args) => {\n const texture = this.realCreateTexture.call(this.gl, ...args);\n\n this.textures++;\n\n if (this.debug) {\n console.debug(`CreateTexture: ${texture}, textures: ${this.textures}.`);\n }\n\n return texture;\n };\n\n private hookedDeleteTexture: DeleteTexture = (...args: Parameters<DeleteTexture>) => {\n this.realDeleteTexture.call(this.gl, ...args);\n this.textures--;\n\n if (this.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 debug = false,\n ) {\n if (!gl) {\n throw new Error('Unsupported WebGL context.');\n }\n this.hook(gl, debug);\n }\n\n private hook (gl: WebGLRenderingContext | WebGL2RenderingContext, debug: boolean): void {\n this.drawCallHook = new DrawCallHook(gl, debug);\n this.textureHook = new TextureHook(gl, debug);\n this.shaderHook = new ShaderHook(gl, debug);\n this.programHook = new ProgramHook(gl, debug);\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,\n triangles: (this.drawCallHook.triangles === 0) ? 0 : this.drawCallHook.triangles,\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,\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 { EventEmitter } from '@galacean/effects';\nimport type { PerformanceData } from './core';\nimport { Core } from './core';\nimport type { StatsOptions } from './stats';\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: absolute;\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\n/**\n * Performance monitor event type.\n */\nexport type MonitorEvent = {\n ['update']: [data: PerformanceData],\n};\n\n/**\n * Performance monitor.\n */\nexport class Monitor extends EventEmitter<MonitorEvent> implements Disposable {\n /**\n * The core of the monitor, which handles the performance data collection.\n */\n core: Core;\n\n private doms: HTMLElement[];\n private container: HTMLElement;\n private readonly items = ['fps', 'memory', 'drawCall', 'triangles', 'textures', 'shaders', 'programs', 'webglContext'];\n private visible = false;\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 /**\n * Create a new Monitor instance.\n * @param gl\n * @param options\n */\n constructor (\n gl: WebGLRenderingContext | WebGL2RenderingContext,\n private readonly options: Required<StatsOptions>,\n ) {\n super();\n\n this.core = new Core(gl, options.debug);\n this.visible = options.visible;\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 this.container = container;\n if (!this.visible) {\n this.hide();\n }\n container.classList.add('gl-perf');\n container.innerHTML = tpl;\n container.appendChild(this.createStyle());\n this.options.container.appendChild(container);\n\n this.doms = Array.prototype.slice.apply(container.querySelectorAll('dd'));\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.triangles === 0) {\n return;\n }\n\n this.emit('update', data);\n\n if (!this.visible) {\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 * Hide the monitor\n */\n hide (): void {\n this.visible = false;\n this.container.style.display = 'none';\n }\n\n /**\n * Show the monitor\n */\n show (): void {\n this.visible = true;\n this.container.style.display = 'block';\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 this.container.remove();\n }\n}\n","import type { GLRenderer } from '@galacean/effects';\nimport { Behaviour } from '@galacean/effects';\nimport { Monitor } from './monitor';\nimport type { StatsOptions } from './stats';\n\n/**\n * Stats 组件,用于监控渲染性能\n */\nexport class StatsComponent extends Behaviour {\n /**\n * 监控对象\n */\n monitor: Monitor;\n\n init (options: Required<StatsOptions>): void {\n const renderer = this.engine.renderer as GLRenderer;\n const gl = renderer.pipelineContext.gl;\n\n this.monitor = new Monitor(gl, options);\n }\n\n /**\n * 每帧更新\n * @param dt\n */\n override onUpdate (dt: number): void {\n this.monitor.update(dt);\n }\n\n /**\n * 释放资源\n */\n override dispose (): void {\n super.dispose();\n this.monitor.dispose();\n }\n}\n","import type { Player, Disposable } from '@galacean/effects';\nimport { Deferred } from '@galacean/effects';\nimport { StatsComponent } from './stats-component';\n\n/**\n * Options for the Stats plugin.\n */\nexport interface StatsOptions {\n /**\n * @default false\n */\n debug?: boolean,\n /**\n * @default true\n */\n visible?: boolean,\n /**\n * @default document.body\n */\n container?: HTMLElement,\n}\n\nconst defaultStatsOptions: Required<StatsOptions> = {\n debug: false,\n visible: true,\n container: document.body,\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': '3',\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\n/**\n * Stats plugin for the Player.\n *\n * @example\n * ```ts\n * // Simple usage of Stats plugin\n * import { Stats } from '@galacean/effects-plugin-stats';\n *\n * const stats = new Stats(player);\n * // Hide the stats monitor\n * stats.hide();\n * // Show the stats monitor\n * stats.show();\n * ```\n *\n * @example\n * ```ts\n * // 自定义 Stats 组件的 onUpdate 方法\n * // 可用于在每帧更新时获取性能数据\n * const stats = new Stats(player, { visible: false });\n * const [_, component] = await Promise.all([\n * player.loadScene(json),\n * stats.getComponent(),\n * ]);\n *\n * component?.monitor.on('update', data => {\n * console.info(data);\n * });\n * ```\n */\nexport class Stats implements Disposable {\n private component?: StatsComponent;\n private disposed = false;\n protected readonly initialized = new Deferred<void>();\n\n /**\n * Create a new Stats instance.\n * @param player\n * @param options\n */\n constructor (\n public readonly player: Player,\n private readonly options?: StatsOptions,\n ) {\n void this.init();\n }\n\n async init () {\n try {\n const composition = await this.player.loadScene(json);\n const item = composition.getItemByName('component');\n\n if (item) {\n item.addComponent(StatsComponent).init({ ...defaultStatsOptions, ...this.options });\n this.component = item.getComponent(StatsComponent);\n }\n } catch (e: any) {\n throw new Error(`Failed to load stats scene: ${e.message}.`);\n } finally {\n this.initialized.resolve();\n }\n }\n\n /**\n * Get the stats component.\n * @returns\n */\n async getComponent () {\n await this.initialized.promise;\n\n return this.component;\n }\n\n /**\n * Hide the stats monitor.\n */\n hide () {\n this.component?.monitor.hide();\n }\n\n /**\n * Show the stats monitor.\n */\n show () {\n this.component?.monitor.show();\n }\n\n /**\n * Dispose the stats component and release resources.\n * @returns\n */\n dispose () {\n if (this.disposed) {\n return;\n }\n this.disposed = true;\n this.component?.dispose();\n this.component = undefined;\n }\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { logger } from '@galacean/effects';\n\nexport * from './stats';\n\n/**\n * 插件版本号\n */\nexport const version = __VERSION__;\n\nlogger.info(`Plugin stats version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 Stats 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the Stats plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!'\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","_extends","Object","assign","target","i","length","source","prototype","hasOwnProperty","call","_instanceof","left","right","Symbol","hasInstance","__generator","thisArg","body","_","label","sent","t","trys","ops","f","y","g","create","Iterator","next","verb","iterator","n","v","step","op","TypeError","pop","push","e","SuppressedError","suppressed","message","Error","name","_set_prototype_of","o","p","setPrototypeOf","__proto__","_inherits","subClass","superClass","constructor","writable","configurable","_assert_this_initialized","ReferenceError","DrawCallHook","debug","gl","drawCall","triangles","lines","points","hooked","realDrawElements","drawElements","realDrawArrays","drawArrays","hookedDrawElements","bind","hookedDrawArrays","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","hookedCreateTexture","texture","realCreateTexture","hookedDeleteTexture","realDeleteTexture","createTexture","deleteTexture","Core","samplingFrames","samplingIndex","updateCounter","updateTime","hook","drawCallHook","textureHook","shaderHook","programHook","dt","now","performance","data","fps","Math","round","memory","usedJSHeapSize","webglContext","WebGL2RenderingContext","tpl","css","Monitor","options","items","visible","core","createContainer","container","document","createElement","hide","classList","add","innerHTML","appendChild","createStyle","doms","Array","slice","querySelectorAll","style","createTextNode","dom","item","requestAnimationFrame","innerText","String","emit","l","display","show","dispose","remove","EventEmitter","StatsComponent","init","renderer","engine","pipelineContext","monitor","onUpdate","Behaviour","defaultStatsOptions","json","Stats","player","disposed","initialized","Deferred","composition","loadScene","getItemByName","addComponent","component","getComponent","promise","version","logger","EFFECTS"],"mappings":"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"}