pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
39 lines (38 loc) • 1.22 kB
TypeScript
import { type GCable, type GCData } from '../../rendering/renderers/shared/GCSystem';
import { type Renderer } from '../../rendering/renderers/types';
import type EventEmitter from 'eventemitter3';
/**
* Options for the {@link GCManagedHash}.
* @internal
*/
export interface GCManagedHashOptions<T extends GCable & {
uid: number;
} & Pick<EventEmitter, 'once' | 'off'>> {
renderer: Renderer;
type: GCData['type'];
onUnload?: (item: T, ...args: any[]) => void;
priority?: number;
name: string;
}
/**
* A hash for managing renderable and resource resources with GC integration.
* @internal
*/
export declare class GCManagedHash<T extends GCable & {
uid: number;
} & Pick<EventEmitter, 'once' | 'off'>> {
items: Record<number, T>;
private _renderer;
private _onUnload?;
readonly name: string;
constructor(options: GCManagedHashOptions<T>);
/**
* Add an item to the hash. No-op if already added.
* @param item
* @returns true if the item was added, false if it was already in the hash
*/
add(item: T): boolean;
remove(item: T, ...args: unknown[]): void;
removeAll(...args: unknown[]): void;
destroy(...args: unknown[]): void;
}