UNPKG

pixi-stats

Version:

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

53 lines (40 loc) 1.33 kB
import BaseHooks from './hooks/BaseHooks' import { PIXIGlTextureRecord, PIXIRendererGlTexture, Renderer } from './model' export class PIXIHooks extends BaseHooks { get hooked() { return !!this.glhook } constructor(renderer: Renderer) { super() if (!renderer) { console.warn('[PIXI Hooks] renderer in constructor undefined') return } if (!renderer.gl) { console.warn('[PIXI Hooks] gl in renderer not found') return } this.attach(renderer.gl) if (!this.texturehook) { console.warn('[PIXI Hooks] attach hook to gl in renderer failed') return } const texture = renderer.texture as unknown as PIXIRendererGlTexture // pixi v6 compatibility const glTextures = texture._glTextures || texture.managedTextures // pixi v6 compatibility const glTexturesArray = Array.isArray(glTextures) ? glTextures : Object.values(glTextures as PIXIGlTextureRecord) if (!glTexturesArray) { console.warn('[PIXI Hooks] no gl textures found') return } console.info('[PIXI Hooks] Collect used textures:', glTexturesArray.length) glTexturesArray.forEach((glTexture) => { if (glTexture.gl === renderer.gl && glTexture.texture) { this.texturehook!.registerTexture(glTexture.texture) } }) } }