Files
nothoughts/node_modules/pixi.js/lib/rendering/renderers/shared/texture/RenderableGCSystem.d.ts
2025-08-04 18:57:35 +02:00

71 lines
2.7 KiB
TypeScript

import { ExtensionType } from '../../../../extensions/Extensions';
import type { Renderer } from '../../types';
import type { InstructionSet } from '../instructions/InstructionSet';
import type { Renderable } from '../Renderable';
import type { System } from '../system/System';
/**
* Options for the {@link RenderableGCSystem}.
* @memberof rendering
* @property {boolean} [renderableGCActive=true] - If set to true, this will enable the garbage collector on the renderables.
* @property {number} [renderableGCAMaxIdle=60000] -
* The maximum idle frames before a texture is destroyed by garbage collection.
* @property {number} [renderableGCCheckCountMax=60000] - time between two garbage collections.
*/
export interface RenderableGCSystemOptions {
/**
* If set to true, this will enable the garbage collector on the GPU.
* @default true
* @memberof rendering.SharedRendererOptions
*/
renderableGCActive: boolean;
/**
* The maximum idle frames before a texture is destroyed by garbage collection.
* @default 60 * 60
* @memberof rendering.SharedRendererOptions
*/
renderableGCMaxUnusedTime: number;
/**
* Frames between two garbage collections.
* @default 600
* @memberof rendering.SharedRendererOptions
*/
renderableGCFrequency: number;
}
/**
* System plugin to the renderer to manage renderable garbage collection. When rendering
* stuff with the renderer will assign resources to each renderable. This could be for example
* a batchable Sprite, or a text texture. If the renderable is not used for a certain amount of time
* its resources will be tided up by its render pipe.
* @memberof rendering
*/
export declare class RenderableGCSystem implements System<RenderableGCSystemOptions> {
/** @ignore */
static extension: {
readonly type: readonly [ExtensionType.WebGLSystem, ExtensionType.WebGPUSystem];
readonly name: "renderableGC";
};
/** default options for the renderableGCSystem */
static defaultOptions: RenderableGCSystemOptions;
/**
* Maximum idle frames before a texture is destroyed by garbage collection.
* @see renderableGCSystem.defaultMaxIdle
*/
maxUnusedTime: number;
private _renderer;
private readonly _managedRenderables;
private _handler;
private _frequency;
private _now;
/** @param renderer - The renderer this System works for. */
constructor(renderer: Renderer);
init(options: RenderableGCSystemOptions): void;
get enabled(): boolean;
set enabled(value: boolean);
prerender(): void;
addRenderable(renderable: Renderable, instructionSet: InstructionSet): void;
/** Runs the scheduled garbage collection */
run(): void;
destroy(): void;
private _removeRenderable;
}