{"version":3,"file":"removeStructAndGroupDuplicates.mjs","sources":["../../../../../../src/rendering/renderers/gpu/shader/utils/removeStructAndGroupDuplicates.ts"],"sourcesContent":["import type { StructsAndGroups } from './extractStructAndGroups';\n\nexport function removeStructAndGroupDuplicates(\n    vertexStructsAndGroups: StructsAndGroups,\n    fragmentStructsAndGroups: StructsAndGroups\n)\n{\n    const structNameSet = new Set();\n    const dupeGroupKeySet = new Set();\n\n    const structs = [...vertexStructsAndGroups.structs, ...fragmentStructsAndGroups.structs]\n        .filter((struct) =>\n        {\n            if (structNameSet.has(struct.name))\n            {\n                return false;\n            }\n            structNameSet.add(struct.name);\n\n            return true;\n        });\n\n    const groups = [...vertexStructsAndGroups.groups, ...fragmentStructsAndGroups.groups]\n        .filter((group) =>\n        {\n            const key = `${group.name}-${group.binding}`;\n\n            if (dupeGroupKeySet.has(key))\n            {\n                return false;\n            }\n            dupeGroupKeySet.add(key);\n\n            return true;\n        });\n\n    return { structs, groups };\n}\n"],"names":[],"mappings":";AAEgB,SAAA,8BAAA,CACZ,wBACA,wBAEJ,EAAA;AACI,EAAM,MAAA,aAAA,uBAAoB,GAAI,EAAA,CAAA;AAC9B,EAAM,MAAA,eAAA,uBAAsB,GAAI,EAAA,CAAA;AAEhC,EAAM,MAAA,OAAA,GAAU,CAAC,GAAG,sBAAuB,CAAA,OAAA,EAAS,GAAG,wBAAA,CAAyB,OAAO,CAAA,CAClF,MAAO,CAAA,CAAC,MACT,KAAA;AACI,IAAA,IAAI,aAAc,CAAA,GAAA,CAAI,MAAO,CAAA,IAAI,CACjC,EAAA;AACI,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AACA,IAAc,aAAA,CAAA,GAAA,CAAI,OAAO,IAAI,CAAA,CAAA;AAE7B,IAAO,OAAA,IAAA,CAAA;AAAA,GACV,CAAA,CAAA;AAEL,EAAM,MAAA,MAAA,GAAS,CAAC,GAAG,sBAAuB,CAAA,MAAA,EAAQ,GAAG,wBAAA,CAAyB,MAAM,CAAA,CAC/E,MAAO,CAAA,CAAC,KACT,KAAA;AACI,IAAA,MAAM,MAAM,CAAG,EAAA,KAAA,CAAM,IAAI,CAAA,CAAA,EAAI,MAAM,OAAO,CAAA,CAAA,CAAA;AAE1C,IAAI,IAAA,eAAA,CAAgB,GAAI,CAAA,GAAG,CAC3B,EAAA;AACI,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AACA,IAAA,eAAA,CAAgB,IAAI,GAAG,CAAA,CAAA;AAEvB,IAAO,OAAA,IAAA,CAAA;AAAA,GACV,CAAA,CAAA;AAEL,EAAO,OAAA,EAAE,SAAS,MAAO,EAAA,CAAA;AAC7B;;;;"}