1 line
17 KiB
Plaintext
1 line
17 KiB
Plaintext
|
|
{"version":3,"file":"BasePrepare.mjs","sources":["../src/BasePrepare.ts"],"sourcesContent":["import { BaseTexture, Texture, Ticker, UPDATE_PRIORITY } from '@pixi/core';\nimport { Container } from '@pixi/display';\nimport { Text, TextMetrics, TextStyle } from '@pixi/text';\nimport { CountLimiter } from './CountLimiter';\n\nimport type { IRenderer } from '@pixi/core';\nimport type { DisplayObject } from '@pixi/display';\n\ninterface IArrowFunction\n{\n (): void;\n}\ninterface IUploadHook\n{\n (helper: IRenderer | BasePrepare, item: IDisplayObjectExtended): boolean;\n}\n\ninterface IFindHook\n{\n (item: any, queue: Array<any>): boolean;\n}\n\nexport interface IDisplayObjectExtended extends DisplayObject\n{\n _textures?: Array<Texture>;\n _texture?: Texture;\n style?: TextStyle | Partial<TextStyle>;\n}\n\n/**\n * Built-in hook to find multiple textures from objects like AnimatedSprites.\n * @private\n * @param item - Display object to check\n * @param queue - Collection of items to upload\n * @returns If a PIXI.Texture object was found.\n */\nfunction findMultipleBaseTextures(item: IDisplayObjectExtended, queue: Array<any>): boolean\n{\n let result = false;\n\n // Objects with multiple textures\n if (item?._textures?.length)\n {\n for (let i = 0; i < item._textures.length; i++)\n {\n if (item._textures[i] instanceof Texture)\n {\n const baseTexture = item._textures[i].baseTexture;\n\n if (!queue.includes(baseTexture))\n {\n queue.push(baseTexture);\n result = true;\n }\n }\n }\n }\n\n return result;\n}\n\n/**\n * Built-in hook to find BaseTextures from Texture.\n * @private\n * @param item - Display object to check\n * @param queue - Collection of items to upload\n * @returns If a PIXI.Texture object was found.\n */\nfunction findBaseTexture(item: Texture, queue: Array<any>): boolean\n{\n if (item.baseTexture instanceof BaseTexture)\n {\n const texture = item.baseTexture;\n\n if (!queue.includes(texture))\n {\n queue.push(texture);\n }\n\n return true;\n }\n\n return false;\n}\n\n/**\n * Built-in hook to find textures from objects.\n * @private\n * @param item - Display object to check\n * @param queue - Collection of items to upload\n * @returns If a PIXI.Texture object was found.\n */\nfunction findTexture(item: IDisplayObjectExtended, queue: Array<any>): boolean\n{\n if (item._texture && item._texture instanceof Texture)\n {\n const texture = item._texture.baseTexture;\n\n if (!queue.includes(texture))\n {\n queue.push(texture);\n }\n\n return true;\n }\n\n return false;\n}\n\n/**\n * Built-in hook to draw PIXI.Text to its texture.\n * @private\n * @param _helper - Not used by this upload handler\n * @param item - Item to check\n * @returns If item was uploaded.\n */\nfunction drawText(_helper: IRenderer | BasePrepare, item: IDisplayObjectExtended): boolean\n{\n if (item instanceof Text)\n {\n // updating text will return early if it is not dirty\n item.updateText(true);\n\n return true;\n }\n\n return false;\n}\n\n/**\n * Built-in hook to calculate a text style for a PIXI.Text object.\n * @private\n * @param _helper - Not used by this upload handler\n * @param item - Item to check\n * @returns If item was uploaded.\n */\nfunction calculateTextStyle(_helper: IRenderer | BasePrepare, item: IDisplayObjectExtended): boolean\n{\n if (item instanceof TextStyle)\n {\n const font = item.toFontString();\n\n TextMetrics.measureFont(font);\n\n return true;\n }\n\n return false;\n}\n\n/**\n * Built-in hook to find Text objects.\n * @private\n * @param item - Display object to check\n * @param queue - Collection of items to upload\n * @returns if a PIXI.Text object was found.\n */\nfunction findText(item: IDisplayObjectExtended, queue: Array<any>): boolean\n{\n if (i
|