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 • 8.02 kB
Source Map (JSON)
{"version":3,"file":"glUploadImageResource.mjs","sources":["../../../../../../src/rendering/renderers/gl/texture/uploaders/glUploadImageResource.ts"],"sourcesContent":["import type { CanvasSource } from '../../../shared/texture/sources/CanvasSource';\nimport type { ImageSource } from '../../../shared/texture/sources/ImageSource';\nimport type { GlRenderingContext } from '../../context/GlRenderingContext';\nimport type { GlTexture } from '../GlTexture';\nimport type { GLTextureUploader } from './GLTextureUploader';\n\n/** @internal */\nexport const glUploadImageResource = {\n\n id: 'image',\n\n upload(\n source: ImageSource | CanvasSource,\n glTexture: GlTexture,\n gl: GlRenderingContext,\n webGLVersion: number,\n targetOverride?: number,\n forceAllocation = false\n )\n {\n const target = targetOverride || glTexture.target;\n\n const textureWidth = source.pixelWidth;\n const textureHeight = source.pixelHeight;\n\n const resourceWidth = source.resourceWidth;\n const resourceHeight = source.resourceHeight;\n\n const isWebGL2 = webGLVersion === 2;\n const needsAllocation = forceAllocation || glTexture.width !== textureWidth || glTexture.height !== textureHeight;\n const resourceFitsTexture = resourceWidth >= textureWidth && resourceHeight >= textureHeight;\n const resource = source.resource as TexImageSource;\n\n const uploadFunction = isWebGL2 ? uploadImageWebGL2 : uploadImageWebGL1;\n\n uploadFunction(\n gl,\n target,\n glTexture,\n textureWidth,\n textureHeight,\n resourceWidth,\n resourceHeight,\n resource,\n needsAllocation,\n resourceFitsTexture\n );\n\n glTexture.width = textureWidth;\n glTexture.height = textureHeight;\n }\n} as GLTextureUploader;\n\nfunction uploadImageWebGL2(\n gl: GlRenderingContext,\n target: number,\n glTexture: GlTexture,\n textureWidth: number,\n textureHeight: number,\n resourceWidth: number,\n resourceHeight: number,\n resource: TexImageSource,\n needsAllocation: boolean,\n resourceFitsTexture: boolean\n): void\n{\n if (!resourceFitsTexture)\n {\n // Allocate the full texture and upload the (smaller) resource into it.\n if (needsAllocation)\n {\n gl.texImage2D(\n target,\n 0,\n glTexture.internalFormat,\n textureWidth,\n textureHeight,\n 0,\n glTexture.format,\n glTexture.type,\n null\n );\n }\n\n gl.texSubImage2D(\n target,\n 0,\n 0,\n 0,\n resourceWidth,\n resourceHeight,\n glTexture.format,\n glTexture.type,\n resource\n );\n\n return;\n }\n\n if (!needsAllocation)\n {\n // Texture already allocated at the correct size; update in-place.\n gl.texSubImage2D(\n target,\n 0,\n 0,\n 0,\n glTexture.format,\n glTexture.type,\n resource\n );\n\n return;\n }\n\n // WebGL2 supports the sized texImage2D overload with TexImageSource.\n gl.texImage2D(\n target,\n 0,\n glTexture.internalFormat,\n textureWidth,\n textureHeight,\n 0,\n glTexture.format,\n glTexture.type,\n resource\n );\n}\n\nfunction uploadImageWebGL1(\n gl: GlRenderingContext,\n target: number,\n glTexture: GlTexture,\n textureWidth: number,\n textureHeight: number,\n _resourceWidth: number,\n _resourceHeight: number,\n resource: TexImageSource,\n needsAllocation: boolean,\n resourceFitsTexture: boolean\n): void\n{\n if (!resourceFitsTexture)\n {\n // Allocate the full texture and upload the (smaller) resource into it.\n if (needsAllocation)\n {\n gl.texImage2D(\n target,\n 0,\n glTexture.internalFormat,\n textureWidth,\n textureHeight,\n 0,\n glTexture.format,\n glTexture.type,\n null\n );\n }\n\n gl.texSubImage2D(\n target,\n 0,\n 0,\n 0,\n glTexture.format,\n glTexture.type,\n resource\n );\n\n return;\n }\n\n if (!needsAllocation)\n {\n // Texture already allocated at the correct size; update in-place.\n gl.texSubImage2D(\n target,\n 0,\n 0,\n 0,\n glTexture.format,\n glTexture.type,\n resource\n );\n\n return;\n }\n\n // WebGL1 uses the unsized TexImageSource overload.\n gl.texImage2D(\n target,\n 0,\n glTexture.internalFormat,\n glTexture.format,\n glTexture.type,\n resource\n );\n}\n"],"names":[],"mappings":";AAOO,MAAM,qBAAA,GAAwB;AAAA,EAEjC,EAAA,EAAI,OAAA;AAAA,EAEJ,OACI,MAAA,EACA,SAAA,EACA,IACA,YAAA,EACA,cAAA,EACA,kBAAkB,KAAA,EAEtB;AACI,IAAA,MAAM,MAAA,GAAS,kBAAkB,SAAA,CAAU,MAAA;AAE3C,IAAA,MAAM,eAAe,MAAA,CAAO,UAAA;AAC5B,IAAA,MAAM,gBAAgB,MAAA,CAAO,WAAA;AAE7B,IAAA,MAAM,gBAAgB,MAAA,CAAO,aAAA;AAC7B,IAAA,MAAM,iBAAiB,MAAA,CAAO,cAAA;AAE9B,IAAA,MAAM,WAAW,YAAA,KAAiB,CAAA;AAClC,IAAA,MAAM,kBAAkB,eAAA,IAAmB,SAAA,CAAU,KAAA,KAAU,YAAA,IAAgB,UAAU,MAAA,KAAW,aAAA;AACpG,IAAA,MAAM,mBAAA,GAAsB,aAAA,IAAiB,YAAA,IAAgB,cAAA,IAAkB,aAAA;AAC/E,IAAA,MAAM,WAAW,MAAA,CAAO,QAAA;AAExB,IAAA,MAAM,cAAA,GAAiB,WAAW,iBAAA,GAAoB,iBAAA;AAEtD,IAAA,cAAA;AAAA,MACI,EAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,cAAA;AAAA,MACA,QAAA;AAAA,MACA,eAAA;AAAA,MACA;AAAA,KACJ;AAEA,IAAA,SAAA,CAAU,KAAA,GAAQ,YAAA;AAClB,IAAA,SAAA,CAAU,MAAA,GAAS,aAAA;AAAA,EACvB;AACJ;AAEA,SAAS,iBAAA,CACL,EAAA,EACA,MAAA,EACA,SAAA,EACA,YAAA,EACA,eACA,aAAA,EACA,cAAA,EACA,QAAA,EACA,eAAA,EACA,mBAAA,EAEJ;AACI,EAAA,IAAI,CAAC,mBAAA,EACL;AAEI,IAAA,IAAI,eAAA,EACJ;AACI,MAAA,EAAA,CAAG,UAAA;AAAA,QACC,MAAA;AAAA,QACA,CAAA;AAAA,QACA,SAAA,CAAU,cAAA;AAAA,QACV,YAAA;AAAA,QACA,aAAA;AAAA,QACA,CAAA;AAAA,QACA,SAAA,CAAU,MAAA;AAAA,QACV,SAAA,CAAU,IAAA;AAAA,QACV;AAAA,OACJ;AAAA,IACJ;AAEA,IAAA,EAAA,CAAG,aAAA;AAAA,MACC,MAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,MACA,aAAA;AAAA,MACA,cAAA;AAAA,MACA,SAAA,CAAU,MAAA;AAAA,MACV,SAAA,CAAU,IAAA;AAAA,MACV;AAAA,KACJ;AAEA,IAAA;AAAA,EACJ;AAEA,EAAA,IAAI,CAAC,eAAA,EACL;AAEI,IAAA,EAAA,CAAG,aAAA;AAAA,MACC,MAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,MACA,SAAA,CAAU,MAAA;AAAA,MACV,SAAA,CAAU,IAAA;AAAA,MACV;AAAA,KACJ;AAEA,IAAA;AAAA,EACJ;AAGA,EAAA,EAAA,CAAG,UAAA;AAAA,IACC,MAAA;AAAA,IACA,CAAA;AAAA,IACA,SAAA,CAAU,cAAA;AAAA,IACV,YAAA;AAAA,IACA,aAAA;AAAA,IACA,CAAA;AAAA,IACA,SAAA,CAAU,MAAA;AAAA,IACV,SAAA,CAAU,IAAA;AAAA,IACV;AAAA,GACJ;AACJ;AAEA,SAAS,iBAAA,CACL,EAAA,EACA,MAAA,EACA,SAAA,EACA,YAAA,EACA,eACA,cAAA,EACA,eAAA,EACA,QAAA,EACA,eAAA,EACA,mBAAA,EAEJ;AACI,EAAA,IAAI,CAAC,mBAAA,EACL;AAEI,IAAA,IAAI,eAAA,EACJ;AACI,MAAA,EAAA,CAAG,UAAA;AAAA,QACC,MAAA;AAAA,QACA,CAAA;AAAA,QACA,SAAA,CAAU,cAAA;AAAA,QACV,YAAA;AAAA,QACA,aAAA;AAAA,QACA,CAAA;AAAA,QACA,SAAA,CAAU,MAAA;AAAA,QACV,SAAA,CAAU,IAAA;AAAA,QACV;AAAA,OACJ;AAAA,IACJ;AAEA,IAAA,EAAA,CAAG,aAAA;AAAA,MACC,MAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,MACA,SAAA,CAAU,MAAA;AAAA,MACV,SAAA,CAAU,IAAA;AAAA,MACV;AAAA,KACJ;AAEA,IAAA;AAAA,EACJ;AAEA,EAAA,IAAI,CAAC,eAAA,EACL;AAEI,IAAA,EAAA,CAAG,aAAA;AAAA,MACC,MAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,MACA,SAAA,CAAU,MAAA;AAAA,MACV,SAAA,CAAU,IAAA;AAAA,MACV;AAAA,KACJ;AAEA,IAAA;AAAA,EACJ;AAGA,EAAA,EAAA,CAAG,UAAA;AAAA,IACC,MAAA;AAAA,IACA,CAAA;AAAA,IACA,SAAA,CAAU,cAAA;AAAA,IACV,SAAA,CAAU,MAAA;AAAA,IACV,SAAA,CAAU,IAAA;AAAA,IACV;AAAA,GACJ;AACJ;;;;"}