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 • 4.91 kB
Source Map (JSON)
{"version":3,"file":"applyStyleParams.mjs","sources":["../../../../../../src/rendering/renderers/gl/texture/utils/applyStyleParams.ts"],"sourcesContent":["import {\n compareModeToGlCompare,\n mipmapScaleModeToGlFilter,\n scaleModeToGlFilter,\n wrapModeToGlAddress\n} from './pixiToGlMaps';\n\nimport type { TextureStyle } from '../../../shared/texture/TextureStyle';\n\n/**\n * @param style\n * @param gl\n * @param mipmaps\n * @param anisotropicExt\n * @param glFunctionName\n * @param firstParam\n * @param forceClamp\n * @param firstCreation\n * @internal\n */\nexport function applyStyleParams(\n style: TextureStyle,\n gl: WebGL2RenderingContext,\n mipmaps: boolean,\n // eslint-disable-next-line camelcase\n anisotropicExt: EXT_texture_filter_anisotropic,\n glFunctionName: 'samplerParameteri' | 'texParameteri',\n firstParam: 3553 | WebGLSampler,\n forceClamp: boolean,\n /** if true we can skip setting certain values if the values is the same as the default gl values */\n firstCreation: boolean\n)\n{\n const castParam = firstParam as 3553;\n\n if (!firstCreation\n || style.addressModeU !== 'repeat'\n || style.addressModeV !== 'repeat'\n || style.addressModeW !== 'repeat'\n )\n {\n // 1. set the wrapping mode\n const wrapModeS = wrapModeToGlAddress[forceClamp ? 'clamp-to-edge' : style.addressModeU];\n const wrapModeT = wrapModeToGlAddress[forceClamp ? 'clamp-to-edge' : style.addressModeV];\n const wrapModeR = wrapModeToGlAddress[forceClamp ? 'clamp-to-edge' : style.addressModeW];\n\n gl[glFunctionName](castParam, gl.TEXTURE_WRAP_S, wrapModeS);\n gl[glFunctionName](castParam, gl.TEXTURE_WRAP_T, wrapModeT);\n\n // does not exist in webGL1\n if (gl.TEXTURE_WRAP_R) gl[glFunctionName](castParam, gl.TEXTURE_WRAP_R, wrapModeR);\n }\n\n if (!firstCreation || style.magFilter !== 'linear')\n {\n // 2. set the filtering mode\n gl[glFunctionName](castParam, gl.TEXTURE_MAG_FILTER, scaleModeToGlFilter[style.magFilter]);\n }\n\n // assuming the currently bound texture is the one we want to set the filter for\n // the only smelly part of this code, WebGPU is much better here :P\n if (mipmaps)\n {\n if (!firstCreation || style.mipmapFilter !== 'linear')\n {\n const glFilterMode = mipmapScaleModeToGlFilter[style.minFilter][style.mipmapFilter];\n\n gl[glFunctionName](castParam, gl.TEXTURE_MIN_FILTER, glFilterMode);\n }\n }\n\n else\n {\n gl[glFunctionName](castParam, gl.TEXTURE_MIN_FILTER, scaleModeToGlFilter[style.minFilter]);\n }\n\n // 3. set the anisotropy\n if (anisotropicExt && style.maxAnisotropy > 1)\n {\n const level = Math.min(style.maxAnisotropy, gl.getParameter(anisotropicExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT));\n\n gl[glFunctionName](castParam, anisotropicExt.TEXTURE_MAX_ANISOTROPY_EXT, level);\n }\n\n // 4. set the compare mode\n if (style.compare)\n {\n gl[glFunctionName](castParam, gl.TEXTURE_COMPARE_FUNC, compareModeToGlCompare[style.compare]);\n }\n}\n"],"names":[],"mappings":";;;AAoBgB,SAAA,gBAAA,CACZ,OACA,EACA,EAAA,OAAA,EAEA,gBACA,cACA,EAAA,UAAA,EACA,YAEA,aAEJ,EAAA;AACI,EAAA,MAAM,SAAY,GAAA,UAAA,CAAA;AAElB,EAAI,IAAA,CAAC,aACE,IAAA,KAAA,CAAM,YAAiB,KAAA,QAAA,IACvB,MAAM,YAAiB,KAAA,QAAA,IACvB,KAAM,CAAA,YAAA,KAAiB,QAE9B,EAAA;AAEI,IAAA,MAAM,SAAY,GAAA,mBAAA,CAAoB,UAAa,GAAA,eAAA,GAAkB,MAAM,YAAY,CAAA,CAAA;AACvF,IAAA,MAAM,SAAY,GAAA,mBAAA,CAAoB,UAAa,GAAA,eAAA,GAAkB,MAAM,YAAY,CAAA,CAAA;AACvF,IAAA,MAAM,SAAY,GAAA,mBAAA,CAAoB,UAAa,GAAA,eAAA,GAAkB,MAAM,YAAY,CAAA,CAAA;AAEvF,IAAA,EAAA,CAAG,cAAc,CAAA,CAAE,SAAW,EAAA,EAAA,CAAG,gBAAgB,SAAS,CAAA,CAAA;AAC1D,IAAA,EAAA,CAAG,cAAc,CAAA,CAAE,SAAW,EAAA,EAAA,CAAG,gBAAgB,SAAS,CAAA,CAAA;AAG1D,IAAA,IAAI,EAAG,CAAA,cAAA;AAAgB,MAAA,EAAA,CAAG,cAAc,CAAA,CAAE,SAAW,EAAA,EAAA,CAAG,gBAAgB,SAAS,CAAA,CAAA;AAAA,GACrF;AAEA,EAAA,IAAI,CAAC,aAAA,IAAiB,KAAM,CAAA,SAAA,KAAc,QAC1C,EAAA;AAEI,IAAG,EAAA,CAAA,cAAc,EAAE,SAAW,EAAA,EAAA,CAAG,oBAAoB,mBAAoB,CAAA,KAAA,CAAM,SAAS,CAAC,CAAA,CAAA;AAAA,GAC7F;AAIA,EAAA,IAAI,OACJ,EAAA;AACI,IAAA,IAAI,CAAC,aAAA,IAAiB,KAAM,CAAA,YAAA,KAAiB,QAC7C,EAAA;AACI,MAAA,MAAM,eAAe,yBAA0B,CAAA,KAAA,CAAM,SAAS,CAAA,CAAE,MAAM,YAAY,CAAA,CAAA;AAElF,MAAA,EAAA,CAAG,cAAc,CAAA,CAAE,SAAW,EAAA,EAAA,CAAG,oBAAoB,YAAY,CAAA,CAAA;AAAA,KACrE;AAAA,GAIJ,MAAA;AACI,IAAG,EAAA,CAAA,cAAc,EAAE,SAAW,EAAA,EAAA,CAAG,oBAAoB,mBAAoB,CAAA,KAAA,CAAM,SAAS,CAAC,CAAA,CAAA;AAAA,GAC7F;AAGA,EAAI,IAAA,cAAA,IAAkB,KAAM,CAAA,aAAA,GAAgB,CAC5C,EAAA;AACI,IAAM,MAAA,KAAA,GAAQ,KAAK,GAAI,CAAA,KAAA,CAAM,eAAe,EAAG,CAAA,YAAA,CAAa,cAAe,CAAA,8BAA8B,CAAC,CAAA,CAAA;AAE1G,IAAA,EAAA,CAAG,cAAc,CAAA,CAAE,SAAW,EAAA,cAAA,CAAe,4BAA4B,KAAK,CAAA,CAAA;AAAA,GAClF;AAGA,EAAA,IAAI,MAAM,OACV,EAAA;AACI,IAAG,EAAA,CAAA,cAAc,EAAE,SAAW,EAAA,EAAA,CAAG,sBAAsB,sBAAuB,CAAA,KAAA,CAAM,OAAO,CAAC,CAAA,CAAA;AAAA,GAChG;AACJ;;;;"}