UNPKG

pixi-stats

Version:

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

53 lines (40 loc) 1.35 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); } }); } }