/
githubmirror
/
pixijs
Обзор
Документация
Войти
/
githubmirror
/
pixijs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
src/prepare/PrepareSystem.ts
59 строк
2 KB
Ilia Malanin
fix: destroy of prepared but not rendered text should not throw an error (#11672)
10 сен 2025, 10:18
Не верифицирован
10 сен 2025, 10:18
fbf2049
Код
Авторство
О чём код?
import { ExtensionType } from '../extensions/Extensions'; import { PrepareUpload } from './PrepareUpload'; import type { System } from '../rendering/renderers/shared/system/System'; /** * The prepare system provides renderer-specific plugins for pre-rendering DisplayObjects. This is useful for * asynchronously preparing and uploading to the GPU assets, textures, graphics waiting to be displayed. * * Do not instantiate this plugin directly. It is available from the `renderer.prepare` property. * @example * import 'pixi.js/prepare'; * import { Application, Graphics } from 'pixi.js'; * * // Create a new application (prepare will be auto-added to renderer) * const app = new Application(); * await app.init(); * document.body.appendChild(app.view); * * // Don't start rendering right away * app.stop(); * * // Create a display object * const rect = new Graphics() * .beginFill(0x00ff00) * .drawRect(40, 40, 200, 200); * * // Add to the stage * app.stage.addChild(rect); * * // Don't start rendering until the graphic is uploaded to the GPU * app.renderer.prepare.upload(app.stage, () => { * app.start(); * }); * @category rendering * @advanced */ export class PrepareSystem extends PrepareUpload implements System { /** @ignore */ public static extension = { type: [ ExtensionType.WebGLSystem, ExtensionType.WebGPUSystem, ], name: 'prepare', } as const; /** Destroys the plugin, don't use after this. */ public destroy(): void { super.destroy(); clearTimeout(this.timeout); this.renderer = null; this.queue = null; this.resolves = null; } }