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.11 kB
Source Map (JSON)
{"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;AAE7C,UAAA,CAAW,YAAA,CAAa,aAAA,CAAc,aAAA,EAAe,OAAO,CAAA;AAqBrD,SAAS,gBAAA,CAAiB,OAAA,GAAoC,EAAC,EACtE;AACI,EAAA,OAAO,kBAAkB,OAAO,CAAA;AACpC;AAMA,SAAS,iBAAA,CAAkB,OAAA,GAAoC,EAAC,EAChE;AACI,EAAA,MAAM,WAAA,GAAc,WAAY,OAAA,CAAiC,QAAA;AACjE,EAAA,MAAM,GAAA,GAAM,WAAA,GAAe,OAAA,CAAiC,QAAA,GAAW,OAAA;AACvE,EAAA,MAAM,IAAA,GAAO,WAAA,GAAc,OAAA,GAAkC,EAAE,UAAU,OAAA,EAAQ;AAEjF,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EACpC;AACI,IAAA,MAAM,MAAA,GAAS,QAAQ,CAAC,CAAA;AAExB,IAAA,IAAI,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA,EACnB;AACI,MAAA,OAAO,IAAI,OAAO,IAAI,CAAA;AAAA,IAC1B;AAAA,EACJ;AAEA,EAAA,MAAM,IAAI,KAAA,CAAM,CAAA,2CAAA,EAA8C,IAAA,CAAK,QAAQ,CAAA,CAAE,CAAA;AACjF;AAOO,SAAS,iBAAA,CACZ,OAAA,GAAoC,EAAC,EACrC,YAAY,KAAA,EAEhB;AACI,EAAA,MAAM,WAAA,GAAc,WAAY,OAAA,CAAiC,QAAA;AACjE,EAAA,MAAM,QAAA,GAAW,WAAA,GAAe,OAAA,CAAiC,QAAA,GAAW,OAAA;AAC5E,EAAA,MAAM,IAAA,GAAO,WAAA,GAAc,OAAA,GAAkC,EAAE,UAAU,OAAA,EAAQ;AAEjF,EAAA,IAAI,CAAC,SAAA,IAAa,KAAA,CAAM,GAAA,CAAI,QAAQ,CAAA,EACpC;AACI,IAAA,OAAO,KAAA,CAAM,IAAI,QAAQ,CAAA;AAAA,EAC7B;AAEA,EAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,EAAE,QAAQ,iBAAA,CAAkB,IAAI,GAAG,CAAA;AAE/D,EAAA,OAAA,CAAQ,EAAA,CAAG,WAAW,MACtB;AACI,IAAA,IAAI,KAAA,CAAM,GAAA,CAAI,QAAQ,CAAA,EACtB;AACI,MAAA,KAAA,CAAM,OAAO,QAAQ,CAAA;AAAA,IACzB;AAAA,EACJ,CAAC,CAAA;AAED,EAAA,IAAI,CAAC,SAAA,EACL;AACI,IAAA,KAAA,CAAM,GAAA,CAAI,UAAU,OAAO,CAAA;AAAA,EAC/B;AAEA,EAAA,OAAO,OAAA;AACX;AAWO,SAAS,WAAA,CAAY,EAAA,EAAuB,SAAA,GAAY,KAAA,EAC/D;AACI,EAAA,IAAI,OAAO,OAAO,QAAA,EAClB;AACI,IAAA,OAAO,KAAA,CAAM,IAAI,EAAE,CAAA;AAAA,EACvB,CAAA,MAAA,IACS,cAAc,aAAA,EACvB;AACI,IAAA,OAAO,IAAI,OAAA,CAAQ,EAAE,MAAA,EAAQ,IAAI,CAAA;AAAA,EACrC;AAGA,EAAA,OAAO,iBAAA,CAAkB,IAAI,SAAS,CAAA;AAC1C;AAEA,OAAA,CAAQ,IAAA,GAAO,WAAA;AACf,aAAA,CAAc,IAAA,GAAO,iBAAA;;;;"}