{"version":3,"file":"addBits.mjs","sources":["../../../../../src/rendering/high-shader/compiler/utils/addBits.ts"],"sourcesContent":["import { warn } from '../../../../utils/logging/warn';\n\n/**\n * takes the HighFragment source parts and adds them to the hook hash\n * @param srcParts - the hash of hook arrays\n * @param parts - the code to inject into the hooks\n * @param name - optional the name of the part to add\n * @internal\n */\nexport function addBits(srcParts: Record<string, string>, parts: Record<string, string[]>, name?: string)\n{\n    if (srcParts)\n    {\n        for (const i in srcParts)\n        {\n            const id = i.toLocaleLowerCase();\n\n            const part = parts[id];\n\n            if (part)\n            {\n                let sanitisedPart = srcParts[i];\n\n                if (i === 'header')\n                {\n                    sanitisedPart = sanitisedPart\n                        .replace(/@in\\s+[^;]+;\\s*/g, '')\n                        .replace(/@out\\s+[^;]+;\\s*/g, '');\n                }\n\n                if (name)\n                {\n                    part.push(`//----${name}----//`);\n                }\n                part.push(sanitisedPart);\n            }\n\n            else\n            {\n                // #if _DEBUG\n                warn(`${i} placement hook does not exist in shader`);\n                // #endif\n            }\n        }\n    }\n}\n"],"names":[],"mappings":";;;AASO,SAAS,OAAA,CAAQ,QAAA,EAAkC,KAAA,EAAiC,IAAA,EAC3F;AACI,EAAA,IAAI,QAAA,EACJ;AACI,IAAA,KAAA,MAAW,KAAK,QAAA,EAChB;AACI,MAAA,MAAM,EAAA,GAAK,EAAE,iBAAA,EAAkB;AAE/B,MAAA,MAAM,IAAA,GAAO,MAAM,EAAE,CAAA;AAErB,MAAA,IAAI,IAAA,EACJ;AACI,QAAA,IAAI,aAAA,GAAgB,SAAS,CAAC,CAAA;AAE9B,QAAA,IAAI,MAAM,QAAA,EACV;AACI,UAAA,aAAA,GAAgB,cACX,OAAA,CAAQ,kBAAA,EAAoB,EAAE,CAAA,CAC9B,OAAA,CAAQ,qBAAqB,EAAE,CAAA;AAAA,QACxC;AAEA,QAAA,IAAI,IAAA,EACJ;AACI,UAAA,IAAA,CAAK,IAAA,CAAK,CAAA,MAAA,EAAS,IAAI,CAAA,MAAA,CAAQ,CAAA;AAAA,QACnC;AACA,QAAA,IAAA,CAAK,KAAK,aAAa,CAAA;AAAA,MAC3B,CAAA,MAGA;AAEI,QAAA,IAAA,CAAK,CAAA,EAAG,CAAC,CAAA,wCAAA,CAA0C,CAAA;AAAA,MAEvD;AAAA,IACJ;AAAA,EACJ;AACJ;;;;"}