/
githubmirror
/
pixijs
Обзор
Документация
Войти
/
githubmirror
/
pixijs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
src/rendering/renderers/shared/texture/utils/getCanvasTexture.ts
52 строки
1 KB
Zyie
fix: memory leaks in renderer systems (#11581)
02 сен 2025, 15:27
Не верифицирован
02 сен 2025, 15:27
6aeb34a
Код
Авторство
О чём код?
import { GlobalResourceRegistry } from '../../../../../utils/pool/GlobalResourceRegistry'; import { CanvasSource } from '../sources/CanvasSource'; import { Texture } from '../Texture'; import type { ICanvas } from '../../../../../environment/canvas/ICanvas'; import type { CanvasSourceOptions } from '../sources/CanvasSource'; const canvasCache: Map<ICanvas, Texture<CanvasSource>> = new Map(); GlobalResourceRegistry.register(canvasCache); /** * @param canvas * @param options * @internal */ export function getCanvasTexture(canvas: ICanvas, options?: CanvasSourceOptions): Texture<CanvasSource> { if (!canvasCache.has(canvas)) { const texture = new Texture({ source: new CanvasSource({ resource: canvas, ...options, }) }); const onDestroy = () => { if (canvasCache.get(canvas) === texture) { canvasCache.delete(canvas); } }; texture.once('destroy', onDestroy); texture.source.once('destroy', onDestroy); canvasCache.set(canvas, texture); } return canvasCache.get(canvas); } /** * @param canvas * @internal */ export function hasCachedCanvasTexture(canvas: ICanvas): boolean { return canvasCache.has(canvas); }