UNPKG

pixi.js

Version:

<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">

1 lines 6.23 kB
{"version":3,"file":"textureFrom.mjs","sources":["../../../../../../src/rendering/renderers/shared/texture/utils/textureFrom.ts"],"sourcesContent":["import { Cache } from '../../../../../assets/cache/Cache';\nimport { extensions, ExtensionType } from '../../../../../extensions/Extensions';\nimport { TextureSource } from '../sources/TextureSource';\nimport { Texture } from '../Texture';\n\nimport type { ICanvas } from '../../../../../environment/canvas/ICanvas';\nimport type { TypedArray } from '../../buffer/Buffer';\nimport type { BufferSourceOptions } from '../sources/BufferImageSource';\nimport type { CanvasSourceOptions } from '../sources/CanvasSource';\nimport type { ImageResource } from '../sources/ImageSource';\nimport type { TextureSourceOptions } from '../sources/TextureSource';\nimport type { TextureSourceLike } from '../Texture';\n\ninterface TextureSourceConstructor<T extends TextureSource = TextureSource>\n{\n new (options: TextureSourceOptions): T;\n test(options: ImageResource | TypedArray | ArrayBuffer | ICanvas): boolean;\n}\n\nconst sources: TextureSourceConstructor[] = [];\n\nextensions.handleByList(ExtensionType.TextureSource, sources);\n\n/**\n * The type of resource or options that can be used to create a texture source.\n * This includes ImageResource, TextureSourceOptions, BufferSourceOptions, and CanvasSourceOptions.\n * @category rendering\n * @advanced\n */\nexport type TextureResourceOrOptions =\n ImageResource\n | TextureSourceOptions<ImageResource>\n | BufferSourceOptions\n | CanvasSourceOptions;\n\n/**\n * @param options\n * @deprecated since v8.2.0\n * @see TextureSource.from\n * @category rendering\n * @internal\n */\nexport function autoDetectSource(options: TextureResourceOrOptions = {}): TextureSource\n{\n return textureSourceFrom(options);\n}\n\n/**\n * Creates a texture source from the options provided\n * @param options - The options to create the texture source from. This can be\n */\nfunction textureSourceFrom(options: TextureResourceOrOptions = {}): TextureSource\n{\n const hasResource = options && (options as TextureSourceOptions).resource;\n const res = hasResource ? (options as TextureSourceOptions).resource : options;\n const opts = hasResource ? options as TextureSourceOptions : { resource: options } as TextureSourceOptions;\n\n for (let i = 0; i < sources.length; i++)\n {\n const Source = sources[i];\n\n if (Source.test(res))\n {\n return new Source(opts);\n }\n }\n\n throw new Error(`Could not find a source type for resource: ${opts.resource}`);\n}\n\n/**\n * @param options\n * @param skipCache\n * @internal\n */\nexport function resourceToTexture(\n options: TextureResourceOrOptions = {},\n skipCache = false\n): Texture\n{\n const hasResource = options && (options as TextureSourceOptions).resource;\n const resource = hasResource ? (options as TextureSourceOptions).resource : options;\n const opts = hasResource ? options as TextureSourceOptions : { resource: options } as TextureSourceOptions;\n\n if (!skipCache && Cache.has(resource))\n {\n return Cache.get(resource);\n }\n\n const texture = new Texture({ source: textureSourceFrom(opts) });\n\n texture.on('destroy', () =>\n {\n if (Cache.has(resource))\n {\n Cache.remove(resource);\n }\n });\n\n if (!skipCache)\n {\n Cache.set(resource, texture);\n }\n\n return texture;\n}\n\n/**\n * Helper function that creates a returns Texture based on the source you provide.\n * The source should be loaded and ready to go. If not its best to grab the asset using Assets.\n * @param id - String or Source to create texture from\n * @param skipCache - Skip adding the texture to the cache\n * @returns The texture based on the Id provided\n * @category utils\n * @internal\n */\nexport function textureFrom(id: TextureSourceLike, skipCache = false): Texture\n{\n if (typeof id === 'string')\n {\n return Cache.get(id);\n }\n else if (id instanceof TextureSource)\n {\n return new Texture({ source: id });\n }\n\n // return a auto generated texture from resource\n return resourceToTexture(id, skipCache);\n}\n\nTexture.from = textureFrom;\nTextureSource.from = textureSourceFrom;\n"],"names":[],"mappings":";;;;;;AAmBA,MAAM,UAAsC,EAAC,CAAA;AAE7C,UAAW,CAAA,YAAA,CAAa,aAAc,CAAA,aAAA,EAAe,OAAO,CAAA,CAAA;AAqB5C,SAAA,gBAAA,CAAiB,OAAoC,GAAA,EACrE,EAAA;AACI,EAAA,OAAO,kBAAkB,OAAO,CAAA,CAAA;AACpC,CAAA;AAMA,SAAS,iBAAA,CAAkB,OAAoC,GAAA,EAC/D,EAAA;AACI,EAAM,MAAA,WAAA,GAAc,WAAY,OAAiC,CAAA,QAAA,CAAA;AACjE,EAAM,MAAA,GAAA,GAAM,WAAe,GAAA,OAAA,CAAiC,QAAW,GAAA,OAAA,CAAA;AACvE,EAAA,MAAM,IAAO,GAAA,WAAA,GAAc,OAAkC,GAAA,EAAE,UAAU,OAAQ,EAAA,CAAA;AAEjF,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,OAAA,CAAQ,QAAQ,CACpC,EAAA,EAAA;AACI,IAAM,MAAA,MAAA,GAAS,QAAQ,CAAC,CAAA,CAAA;AAExB,IAAI,IAAA,MAAA,CAAO,IAAK,CAAA,GAAG,CACnB,EAAA;AACI,MAAO,OAAA,IAAI,OAAO,IAAI,CAAA,CAAA;AAAA,KAC1B;AAAA,GACJ;AAEA,EAAA,MAAM,IAAI,KAAA,CAAM,CAA8C,2CAAA,EAAA,IAAA,CAAK,QAAQ,CAAE,CAAA,CAAA,CAAA;AACjF,CAAA;AAOO,SAAS,iBACZ,CAAA,OAAA,GAAoC,EAAC,EACrC,YAAY,KAEhB,EAAA;AACI,EAAM,MAAA,WAAA,GAAc,WAAY,OAAiC,CAAA,QAAA,CAAA;AACjE,EAAM,MAAA,QAAA,GAAW,WAAe,GAAA,OAAA,CAAiC,QAAW,GAAA,OAAA,CAAA;AAC5E,EAAA,MAAM,IAAO,GAAA,WAAA,GAAc,OAAkC,GAAA,EAAE,UAAU,OAAQ,EAAA,CAAA;AAEjF,EAAA,IAAI,CAAC,SAAA,IAAa,KAAM,CAAA,GAAA,CAAI,QAAQ,CACpC,EAAA;AACI,IAAO,OAAA,KAAA,CAAM,IAAI,QAAQ,CAAA,CAAA;AAAA,GAC7B;AAEA,EAAM,MAAA,OAAA,GAAU,IAAI,OAAQ,CAAA,EAAE,QAAQ,iBAAkB,CAAA,IAAI,GAAG,CAAA,CAAA;AAE/D,EAAQ,OAAA,CAAA,EAAA,CAAG,WAAW,MACtB;AACI,IAAI,IAAA,KAAA,CAAM,GAAI,CAAA,QAAQ,CACtB,EAAA;AACI,MAAA,KAAA,CAAM,OAAO,QAAQ,CAAA,CAAA;AAAA,KACzB;AAAA,GACH,CAAA,CAAA;AAED,EAAA,IAAI,CAAC,SACL,EAAA;AACI,IAAM,KAAA,CAAA,GAAA,CAAI,UAAU,OAAO,CAAA,CAAA;AAAA,GAC/B;AAEA,EAAO,OAAA,OAAA,CAAA;AACX,CAAA;AAWgB,SAAA,WAAA,CAAY,EAAuB,EAAA,SAAA,GAAY,KAC/D,EAAA;AACI,EAAI,IAAA,OAAO,OAAO,QAClB,EAAA;AACI,IAAO,OAAA,KAAA,CAAM,IAAI,EAAE,CAAA,CAAA;AAAA,GACvB,MAAA,IACS,cAAc,aACvB,EAAA;AACI,IAAA,OAAO,IAAI,OAAA,CAAQ,EAAE,MAAA,EAAQ,IAAI,CAAA,CAAA;AAAA,GACrC;AAGA,EAAO,OAAA,iBAAA,CAAkB,IAAI,SAAS,CAAA,CAAA;AAC1C,CAAA;AAEA,OAAA,CAAQ,IAAO,GAAA,WAAA,CAAA;AACf,aAAA,CAAc,IAAO,GAAA,iBAAA;;;;"}