{"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\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')\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    }\n\n    return layout;\n}\n"],"names":[],"mappings":";;;AAKgB,SAAA,uBAAA,CAAwB,EAAE,MAAA,EAC1C,EAAA;AACI,EAAA,MAAM,SAA2C,EAAC,CAAA;AAElD,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,MAAA,CAAO,QAAQ,CACnC,EAAA,EAAA;AACI,IAAM,MAAA,KAAA,GAAQ,OAAO,CAAC,CAAA,CAAA;AAEtB,IAAA,IAAI,CAAC,MAAA,CAAO,KAAM,CAAA,KAAK,CACvB,EAAA;AACI,MAAO,MAAA,CAAA,KAAA,CAAM,KAAK,CAAA,GAAI,EAAC,CAAA;AAAA,KAC3B;AAEA,IAAA,IAAI,MAAM,SACV,EAAA;AACI,MAAO,MAAA,CAAA,KAAA,CAAM,KAAK,CAAA,CAAE,IAAK,CAAA;AAAA,QACrB,SAAS,KAAM,CAAA,OAAA;AAAA,QACf,UAAA,EAAY,WAAY,CAAA,MAAA,GAAS,WAAY,CAAA,QAAA;AAAA,QAC7C,MAAQ,EAAA;AAAA,UACJ,IAAM,EAAA,SAAA;AAAA,SACV;AAAA,OACH,CAAA,CAAA;AAAA,KACL,MAAA,IACS,KAAM,CAAA,IAAA,KAAS,SACxB,EAAA;AACI,MAAO,MAAA,CAAA,KAAA,CAAM,KAAK,CAAA,CAAE,IAAK,CAAA;AAAA,QACrB,SAAS,KAAM,CAAA,OAAA;AAAA,QACf,YAAY,WAAY,CAAA,QAAA;AAAA,QACxB,OAAS,EAAA;AAAA,UACL,IAAM,EAAA,WAAA;AAAA,SACV;AAAA,OACH,CAAA,CAAA;AAAA,KACL,MAAA,IACS,KAAM,CAAA,IAAA,KAAS,YACxB,EAAA;AACI,MAAO,MAAA,CAAA,KAAA,CAAM,KAAK,CAAA,CAAE,IAAK,CAAA;AAAA,QACrB,SAAS,KAAM,CAAA,OAAA;AAAA,QACf,YAAY,WAAY,CAAA,QAAA;AAAA,QACxB,OAAS,EAAA;AAAA,UACL,UAAY,EAAA,OAAA;AAAA,UACZ,aAAe,EAAA,IAAA;AAAA,UACf,YAAc,EAAA,KAAA;AAAA,SAClB;AAAA,OACH,CAAA,CAAA;AAAA,KACL;AAAA,GACJ;AAEA,EAAO,OAAA,MAAA,CAAA;AACX;;;;"}