@pixi/core
Version:
Core PixiJS
1 lines • 3.81 kB
Source Map (JSON)
{"version":3,"file":"PluginSystem.mjs","sources":["../../src/plugin/PluginSystem.ts"],"sourcesContent":["import { extensions, ExtensionType } from '@pixi/extensions';\nimport { deprecation } from '@pixi/utils';\n\nimport type { ExtensionMetadata } from '@pixi/extensions';\nimport type { IRenderer } from '../IRenderer';\nimport type { ISystem } from '../system/ISystem';\n\nexport interface IRendererPlugins extends GlobalMixins.IRendererPlugins\n{\n [key: string]: any;\n}\n\n/**\n * Manages the functionality that allows users to extend pixi functionality via additional plugins.\n * @memberof PIXI\n */\nexport class PluginSystem implements ISystem\n{\n /** @ignore */\n static extension: ExtensionMetadata = {\n type: [\n ExtensionType.RendererSystem,\n ExtensionType.CanvasRendererSystem\n ],\n name: '_plugin',\n };\n\n /** @ignore */\n public rendererPlugins: IRendererPlugins;\n\n /**\n * Collection of plugins.\n * @readonly\n * @member {object}\n */\n public readonly plugins: IRendererPlugins;\n private renderer: IRenderer;\n\n constructor(renderer: IRenderer)\n {\n this.renderer = renderer;\n\n /**\n * Collection of plugins.\n * @readonly\n * @member {object}\n */\n this.plugins = {};\n\n if (process.env.DEBUG)\n {\n Object.defineProperties(this.plugins, {\n extract: {\n enumerable: false,\n get()\n {\n deprecation('7.0.0', 'renderer.plugins.extract has moved to renderer.extract');\n\n return (renderer as any).extract;\n },\n },\n prepare: {\n enumerable: false,\n get()\n {\n deprecation('7.0.0', 'renderer.plugins.prepare has moved to renderer.prepare');\n\n return (renderer as any).prepare;\n },\n },\n interaction: {\n enumerable: false,\n get()\n {\n deprecation('7.0.0', 'renderer.plugins.interaction has been deprecated, use renderer.events');\n\n return (renderer as any).events;\n },\n },\n });\n }\n }\n\n /**\n * Initialize the plugins.\n * @protected\n */\n init(): void\n {\n const staticMap = this.rendererPlugins;\n\n for (const o in staticMap)\n {\n this.plugins[o] = new (staticMap[o])(this.renderer);\n }\n }\n\n destroy(): void\n {\n for (const o in this.plugins)\n {\n this.plugins[o].destroy();\n this.plugins[o] = null;\n }\n }\n}\n\nextensions.add(PluginSystem);\n"],"names":[],"mappings":";;AAgBO,MAAM,aACb;AAAA,EAqBI,YAAY,UACZ;AACS,SAAA,WAAW,UAOhB,KAAK,UAAU,CAIX,GAAA,OAAO,iBAAiB,KAAK,SAAS;AAAA,MAClC,SAAS;AAAA,QACL,YAAY;AAAA,QACZ,MACA;AACgB,iBAAA,YAAA,SAAS,wDAAwD,GAErE,SAAiB;AAAA,QAC7B;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,QACL,YAAY;AAAA,QACZ,MACA;AACgB,iBAAA,YAAA,SAAS,wDAAwD,GAErE,SAAiB;AAAA,QAC7B;AAAA,MACJ;AAAA,MACA,aAAa;AAAA,QACT,YAAY;AAAA,QACZ,MACA;AACgB,iBAAA,YAAA,SAAS,uEAAuE,GAEpF,SAAiB;AAAA,QAC7B;AAAA,MACJ;AAAA,IAAA,CACH;AAAA,EAET;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OACA;AACI,UAAM,YAAY,KAAK;AAEvB,eAAW,KAAK;AAEP,WAAA,QAAQ,CAAC,IAAI,IAAK,UAAU,CAAC,EAAG,KAAK,QAAQ;AAAA,EAE1D;AAAA,EAEA,UACA;AACI,eAAW,KAAK,KAAK;AAEZ,WAAA,QAAQ,CAAC,EAAE,QAAA,GAChB,KAAK,QAAQ,CAAC,IAAI;AAAA,EAE1B;AACJ;AAzFa,aAGF,YAA+B;AAAA,EAClC,MAAM;AAAA,IACF,cAAc;AAAA,IACd,cAAc;AAAA,EAClB;AAAA,EACA,MAAM;AACV;AAkFJ,WAAW,IAAI,YAAY;"}