UNPKG

pixi-stats

Version:

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

71 lines (54 loc) 1.62 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() } }