{"version":3,"file":"removeStructAndGroupDuplicates.mjs","sources":["../../../../../../src/rendering/renderers/gpu/shader/utils/removeStructAndGroupDuplicates.ts"],"sourcesContent":["import type { StructsAndGroups } from './extractStructAndGroups';\n\n/**\n * @param vertexStructsAndGroups\n * @param fragmentStructsAndGroups\n * @internal\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":";AAOO,SAAS,8BAAA,CACZ,wBACA,wBAAA,EAEJ;AACI,EAAA,MAAM,aAAA,uBAAoB,GAAA,EAAI;AAC9B,EAAA,MAAM,eAAA,uBAAsB,GAAA,EAAI;AAEhC,EAAA,MAAM,OAAA,GAAU,CAAC,GAAG,sBAAA,CAAuB,OAAA,EAAS,GAAG,wBAAA,CAAyB,OAAO,CAAA,CAClF,MAAA,CAAO,CAAC,MAAA,KACT;AACI,IAAA,IAAI,aAAA,CAAc,GAAA,CAAI,MAAA,CAAO,IAAI,CAAA,EACjC;AACI,MAAA,OAAO,KAAA;AAAA,IACX;AACA,IAAA,aAAA,CAAc,GAAA,CAAI,OAAO,IAAI,CAAA;AAE7B,IAAA,OAAO,IAAA;AAAA,EACX,CAAC,CAAA;AAEL,EAAA,MAAM,MAAA,GAAS,CAAC,GAAG,sBAAA,CAAuB,MAAA,EAAQ,GAAG,wBAAA,CAAyB,MAAM,CAAA,CAC/E,MAAA,CAAO,CAAC,KAAA,KACT;AACI,IAAA,MAAM,MAAM,CAAA,EAAG,KAAA,CAAM,IAAI,CAAA,CAAA,EAAI,MAAM,OAAO,CAAA,CAAA;AAE1C,IAAA,IAAI,eAAA,CAAgB,GAAA,CAAI,GAAG,CAAA,EAC3B;AACI,MAAA,OAAO,KAAA;AAAA,IACX;AACA,IAAA,eAAA,CAAgB,IAAI,GAAG,CAAA;AAEvB,IAAA,OAAO,IAAA;AAAA,EACX,CAAC,CAAA;AAEL,EAAA,OAAO,EAAE,SAAS,MAAA,EAAO;AAC7B;;;;"}