UNPKG

5.68 kBSource Map (JSON)View Raw
1{"version":3,"file":"BackgroundSystem.mjs","sources":["../../src/background/BackgroundSystem.ts"],"sourcesContent":["import { Color } from '@pixi/color';\nimport { extensions, ExtensionType } from '@pixi/extensions';\n\nimport type { ColorSource } from '@pixi/color';\nimport type { ExtensionMetadata } from '@pixi/extensions';\nimport type { ISystem } from '../system/ISystem';\n\nexport interface BackgroundSytemOptions\n{\n /**\n * The background color used to clear the canvas. See {@link PIXI.ColorSource} for accepted color values.\n * @memberof PIXI.IRendererOptions\n */\n backgroundColor: ColorSource;\n /**\n * Alias for {@link PIXI.IRendererOptions.backgroundColor}\n * @memberof PIXI.IRendererOptions\n */\n background?: ColorSource;\n /**\n * Transparency of the background color, value from `0` (fully transparent) to `1` (fully opaque).\n * @memberof PIXI.IRendererOptions\n */\n backgroundAlpha: number;\n /**\n * Whether to clear the canvas before new render passes.\n * @memberof PIXI.IRendererOptions\n */\n clearBeforeRender: boolean;\n}\n\n/**\n * The background system manages the background color and alpha of the main view.\n * @memberof PIXI\n */\nexport class BackgroundSystem implements ISystem<BackgroundSytemOptions>\n{\n static defaultOptions: BackgroundSytemOptions = {\n /**\n * {@link PIXI.IRendererOptions.backgroundAlpha}\n * @default 1\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n backgroundAlpha: 1,\n /**\n * {@link PIXI.IRendererOptions.backgroundColor}\n * @default 0x000000\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n backgroundColor: 0x0,\n /**\n * {@link PIXI.IRendererOptions.clearBeforeRender}\n * @default true\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n clearBeforeRender: true,\n };\n\n /** @ignore */\n static extension: ExtensionMetadata = {\n type: [\n ExtensionType.RendererSystem,\n ExtensionType.CanvasRendererSystem\n ],\n name: 'background',\n };\n\n /**\n * This sets if the CanvasRenderer will clear the canvas or not before the new render pass.\n * If the scene is NOT transparent PixiJS will use a canvas sized fillRect operation every\n * frame to set the canvas background color. If the scene is transparent PixiJS will use clearRect\n * to clear the canvas every frame. Disable this by setting this to false. For example, if\n * your game has a canvas filling background image you often don't need this set.\n * @member {boolean}\n * @default\n */\n public clearBeforeRender: boolean;\n\n /** Reference to the internal color */\n private _backgroundColor: Color;\n\n constructor()\n {\n this.clearBeforeRender = true;\n this._backgroundColor = new Color(0x0);\n this.alpha = 1;\n }\n\n /**\n * initiates the background system\n * @param {PIXI.IRendererOptions} options - the options for the background colors\n */\n init(options: BackgroundSytemOptions): void\n {\n this.clearBeforeRender = options.clearBeforeRender;\n const { backgroundColor, background, backgroundAlpha } = options;\n const color = background ?? backgroundColor;\n\n if (color !== undefined)\n {\n this.color = color;\n }\n\n this.alpha = backgroundAlpha;\n }\n\n /**\n * The background color to fill if not transparent.\n * @member {PIXI.ColorSource}\n */\n get color(): ColorSource\n {\n return this._backgroundColor.value;\n }\n\n set color(value: ColorSource)\n {\n this._backgroundColor.setValue(value);\n }\n\n /**\n * The background color alpha. Setting this to 0 will make the canvas transparent.\n * @member {number}\n */\n get alpha(): number\n {\n return this._backgroundColor.alpha;\n }\n\n set alpha(value: number)\n {\n this._backgroundColor.setAlpha(value);\n }\n\n /** The background color object. */\n get backgroundColor(): Color\n {\n return this._backgroundColor;\n }\n\n destroy(): void\n {\n // ka boom!\n }\n}\n\nextensions.add(BackgroundSystem);\n"],"names":[],"mappings":";;;AAmCO,MAAM,gBACb,CAAA;AAAA,EA6CI,WACA,GAAA;AACI,IAAA,IAAA,CAAK,iBAAoB,GAAA,IAAA,CAAA;AACzB,IAAK,IAAA,CAAA,gBAAA,GAAmB,IAAI,KAAA,CAAM,CAAG,CAAA,CAAA;AACrC,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA,CAAA;AAAA,GACjB;AAAA,EAMA,KAAK,OACL,EAAA;AACI,IAAA,IAAA,CAAK,oBAAoB,OAAQ,CAAA,iBAAA,CAAA;AACjC,IAAM,MAAA,EAAE,eAAiB,EAAA,UAAA,EAAY,eAAoB,EAAA,GAAA,OAAA,CAAA;AACzD,IAAA,MAAM,QAAQ,UAAc,IAAA,eAAA,CAAA;AAE5B,IAAA,IAAI,UAAU,KACd,CAAA,EAAA;AACI,MAAA,IAAA,CAAK,KAAQ,GAAA,KAAA,CAAA;AAAA,KACjB;AAEA,IAAA,IAAA,CAAK,KAAQ,GAAA,eAAA,CAAA;AAAA,GACjB;AAAA,EAMA,IAAI,KACJ,GAAA;AACI,IAAA,OAAO,KAAK,gBAAiB,CAAA,KAAA,CAAA;AAAA,GACjC;AAAA,EAEA,IAAI,MAAM,KACV,EAAA;AACI,IAAK,IAAA,CAAA,gBAAA,CAAiB,SAAS,KAAK,CAAA,CAAA;AAAA,GACxC;AAAA,EAMA,IAAI,KACJ,GAAA;AACI,IAAA,OAAO,KAAK,gBAAiB,CAAA,KAAA,CAAA;AAAA,GACjC;AAAA,EAEA,IAAI,MAAM,KACV,EAAA;AACI,IAAK,IAAA,CAAA,gBAAA,CAAiB,SAAS,KAAK,CAAA,CAAA;AAAA,GACxC;AAAA,EAGA,IAAI,eACJ,GAAA;AACI,IAAA,OAAO,IAAK,CAAA,gBAAA,CAAA;AAAA,GAChB;AAAA,EAEA,OACA,GAAA;AAAA,GAEA;AACJ,CAAA;AA7Ga,iBAEF,cAAyC,GAAA;AAAA,EAM5C,eAAiB,EAAA,CAAA;AAAA,EAMjB,eAAiB,EAAA,CAAA;AAAA,EAMjB,iBAAmB,EAAA,IAAA;AACvB,CAAA,CAAA;AArBS,iBAwBF,SAA+B,GAAA;AAAA,EAClC,IAAM,EAAA;AAAA,IACF,aAAc,CAAA,cAAA;AAAA,IACd,aAAc,CAAA,oBAAA;AAAA,GAClB;AAAA,EACA,IAAM,EAAA,YAAA;AACV,CAAA,CAAA;AAiFJ,UAAA,CAAW,IAAI,gBAAgB,CAAA;;;;"}
\No newline at end of file