UNPKG

@itwin/frontend-devtools

Version:

Debug menu and supporting UI widgets

88 lines 3.41 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ /** @packageDocumentation * @module Widgets */ import { dispose } from "@itwin/core-bentley"; import { FpsTracker } from "./FpsTracker"; import { GpuProfiler } from "./GpuProfiler"; import { KeyinField } from "./KeyinField"; import { MemoryTracker } from "./MemoryTracker"; import { RenderCommandBreakdown } from "./RenderCommandBreakdown"; import { TileMemoryBreakdown } from "./TileMemoryBreakdown"; import { TileStatisticsTracker } from "./TileStatisticsTracker"; import { ToolSettingsTracker } from "./ToolSettingsTracker"; /** Consolidates many other widgets into a single panel. * @beta */ export class DiagnosticsPanel { _element; _parentElement; _fpsTracker; _memoryTracker; _tileMemoryBreakdown; _renderCommands; _statsTracker; _gpuProfiler; _toolSettingsTracker; keyinField; constructor(vp, props) { const exclude = (undefined !== props && undefined !== props.exclude) ? props.exclude : {}; this._element = document.createElement("div"); this._element.className = "debugPanel"; if (true !== exclude.fps) { this._fpsTracker = new FpsTracker(this._element, vp); this.addSeparator(); } if (true !== exclude.keyin) { this.keyinField = new KeyinField({ parent: this._element, baseId: "diagnosticsPanelKeyin", wantButton: true, wantLabel: true, historyLength: 20, }); this.addSeparator(); } if (true !== exclude.tileStats) { this._statsTracker = new TileStatisticsTracker(this._element, vp); this.addSeparator(); } if (true !== exclude.tileMemoryBreakdown) { this._tileMemoryBreakdown = new TileMemoryBreakdown(this._element); this.addSeparator(); } if (!exclude.renderCommands) { this._renderCommands = new RenderCommandBreakdown(this._element); this.addSeparator(); } if (true !== exclude.memory) { this._memoryTracker = new MemoryTracker(this._element, vp); this.addSeparator(); } if (true !== exclude.gpuProfiler) { this._gpuProfiler = new GpuProfiler(this._element); this.addSeparator(); } if (true !== exclude.toolSettings) this._toolSettingsTracker = new ToolSettingsTracker(this._element, vp); } get element() { return this._element; } [Symbol.dispose]() { dispose(this._fpsTracker); dispose(this._memoryTracker); dispose(this._tileMemoryBreakdown); dispose(this._renderCommands); dispose(this._statsTracker); dispose(this._gpuProfiler); dispose(this._toolSettingsTracker); if (undefined !== this._parentElement) this._parentElement.removeChild(this._element); } addSeparator() { this._element.appendChild(document.createElement("hr")); } } //# sourceMappingURL=DiagnosticsPanel.js.map