UNPKG

pixi-stats

Version:

WebGL stats for pixi.js or/and three.js

69 lines (54 loc) 1.65 kB
/* eslint-disable @typescript-eslint/no-explicit-any */ import GLHook from './GLHook'; import TextureHook from './TextureHook'; export default class BaseHooks { protected _drawCalls: number = -1; protected _maxDeltaDrawCalls: number = -1; protected glhook?: GLHook; protected texturehook?: TextureHook; constructor() {} public attach(gl: any) { this.glhook = new GLHook(gl); this.texturehook = new TextureHook(gl); } public get drawCalls(): number { if (this.glhook && this.glhook.isInit) { return this.glhook.drawPasses; } return -1; } public get maxDeltaDrawCalls() { return this._maxDeltaDrawCalls; } public get deltaDrawCalls(): number { if (this._drawCalls == -1) { this._drawCalls = this.drawCalls; return 0; } const dc: number = this.drawCalls; const delta: number = dc - this._drawCalls; this._drawCalls = dc; this._maxDeltaDrawCalls = Math.max(this._maxDeltaDrawCalls, delta); return delta; } public get maxTextureCount(): number { if (this.texturehook && this.texturehook.isInit) return this.texturehook.maxTexturesCount; return 0; } public get texturesCount(): number { if (this.texturehook && this.texturehook.isInit) return this.texturehook.currentTextureCount; return 0; } public reset(): void { this._maxDeltaDrawCalls = -1; this._drawCalls = -1; if (this.glhook) this.glhook.reset(); if (this.texturehook) this.texturehook.reset(); } public release(): void { if (this.glhook) this.glhook.release(); if (this.texturehook) this.texturehook.release(); } }