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":"generateGpuLayoutGroups.mjs","sources":["../../../../../../src/rendering/renderers/gpu/shader/utils/generateGpuLayoutGroups.ts"],"sourcesContent":["import { ShaderStage } from '../../../shared/shader/const';\n\nimport type { ProgramPipelineLayoutDescription } from '../GpuProgram';\nimport type { StructsAndGroups } from './extractStructAndGroups';\n\n/**\n * @param root0\n * @param root0.groups\n * @internal\n */\nexport function generateGpuLayoutGroups({ groups }: StructsAndGroups): ProgramPipelineLayoutDescription\n{\n const layout: ProgramPipelineLayoutDescription = [];\n\n for (let i = 0; i < groups.length; i++)\n {\n const group = groups[i];\n\n if (!layout[group.group])\n {\n layout[group.group] = [];\n }\n\n if (group.isUniform)\n {\n layout[group.group].push({\n binding: group.binding,\n visibility: ShaderStage.VERTEX | ShaderStage.FRAGMENT,\n buffer: {\n type: 'uniform'\n }\n });\n }\n else if (group.type === 'sampler')\n {\n layout[group.group].push({\n binding: group.binding,\n visibility: ShaderStage.FRAGMENT,\n sampler: {\n type: 'filtering'\n }\n });\n }\n else if (group.type === 'texture_2d' || group.type.startsWith('texture_2d<'))\n {\n layout[group.group].push({\n binding: group.binding,\n visibility: ShaderStage.FRAGMENT,\n texture: {\n sampleType: 'float',\n viewDimension: '2d',\n multisampled: false,\n }\n });\n }\n else if (group.type === 'texture_2d_array' || group.type.startsWith('texture_2d_array<'))\n {\n layout[group.group].push({\n binding: group.binding,\n visibility: ShaderStage.FRAGMENT,\n texture: {\n sampleType: 'float',\n viewDimension: '2d-array',\n multisampled: false,\n }\n });\n }\n else if (group.type === 'texture_cube' || group.type.startsWith('texture_cube<'))\n {\n layout[group.group].push({\n binding: group.binding,\n visibility: ShaderStage.FRAGMENT,\n texture: {\n sampleType: 'float',\n viewDimension: 'cube',\n multisampled: false,\n }\n });\n }\n }\n\n // Ensure a dense array. WebGPU expects intermediate bind groups to exist even if empty.\n for (let i = 0; i < layout.length; i++)\n {\n layout[i] ||= [];\n }\n\n return layout;\n}\n"],"names":[],"mappings":";;;AAUO,SAAS,uBAAA,CAAwB,EAAE,MAAA,EAAO,EACjD;AACI,EAAA,MAAM,SAA2C,EAAC;AAElD,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,QAAQ,CAAA,EAAA,EACnC;AACI,IAAA,MAAM,KAAA,GAAQ,OAAO,CAAC,CAAA;AAEtB,IAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,EACvB;AACI,MAAA,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,GAAI,EAAC;AAAA,IAC3B;AAEA,IAAA,IAAI,MAAM,SAAA,EACV;AACI,MAAA,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,CAAE,IAAA,CAAK;AAAA,QACrB,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,UAAA,EAAY,WAAA,CAAY,MAAA,GAAS,WAAA,CAAY,QAAA;AAAA,QAC7C,MAAA,EAAQ;AAAA,UACJ,IAAA,EAAM;AAAA;AACV,OACH,CAAA;AAAA,IACL,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,SAAA,EACxB;AACI,MAAA,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,CAAE,IAAA,CAAK;AAAA,QACrB,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,YAAY,WAAA,CAAY,QAAA;AAAA,QACxB,OAAA,EAAS;AAAA,UACL,IAAA,EAAM;AAAA;AACV,OACH,CAAA;AAAA,IACL,CAAA,MAAA,IACS,MAAM,IAAA,KAAS,YAAA,IAAgB,MAAM,IAAA,CAAK,UAAA,CAAW,aAAa,CAAA,EAC3E;AACI,MAAA,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,CAAE,IAAA,CAAK;AAAA,QACrB,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,YAAY,WAAA,CAAY,QAAA;AAAA,QACxB,OAAA,EAAS;AAAA,UACL,UAAA,EAAY,OAAA;AAAA,UACZ,aAAA,EAAe,IAAA;AAAA,UACf,YAAA,EAAc;AAAA;AAClB,OACH,CAAA;AAAA,IACL,CAAA,MAAA,IACS,MAAM,IAAA,KAAS,kBAAA,IAAsB,MAAM,IAAA,CAAK,UAAA,CAAW,mBAAmB,CAAA,EACvF;AACI,MAAA,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,CAAE,IAAA,CAAK;AAAA,QACrB,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,YAAY,WAAA,CAAY,QAAA;AAAA,QACxB,OAAA,EAAS;AAAA,UACL,UAAA,EAAY,OAAA;AAAA,UACZ,aAAA,EAAe,UAAA;AAAA,UACf,YAAA,EAAc;AAAA;AAClB,OACH,CAAA;AAAA,IACL,CAAA,MAAA,IACS,MAAM,IAAA,KAAS,cAAA,IAAkB,MAAM,IAAA,CAAK,UAAA,CAAW,eAAe,CAAA,EAC/E;AACI,MAAA,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,CAAE,IAAA,CAAK;AAAA,QACrB,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,YAAY,WAAA,CAAY,QAAA;AAAA,QACxB,OAAA,EAAS;AAAA,UACL,UAAA,EAAY,OAAA;AAAA,UACZ,aAAA,EAAe,MAAA;AAAA,UACf,YAAA,EAAc;AAAA;AAClB,OACH,CAAA;AAAA,IACL;AAAA,EACJ;AAGA,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,QAAQ,CAAA,EAAA,EACnC;AACI,IAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAc,EAAC,CAAA;AAAA,EACnB;AAEA,EAAA,OAAO,MAAA;AACX;;;;"}