{"version":3,"file":"getBatchSamplersUniformGroup.mjs","sources":["../../../../../src/rendering/renderers/gl/shader/getBatchSamplersUniformGroup.ts"],"sourcesContent":["import { UniformGroup } from '../../shared/shader/UniformGroup';\n\nconst batchSamplersUniformGroupHash: Record<number, UniformGroup> = {};\n\n/**\n * Automatically generates a uniform group that holds the texture samplers for a shader.\n * This is used mainly by the shaders that batch textures!\n * @param maxTextures - the number of textures that this uniform group will contain.\n * @returns a uniform group that holds the texture samplers.\n * @internal\n */\nexport function getBatchSamplersUniformGroup(maxTextures: number)\n{\n    let batchSamplersUniformGroup = batchSamplersUniformGroupHash[maxTextures];\n\n    if (batchSamplersUniformGroup) return batchSamplersUniformGroup;\n\n    const sampleValues = new Int32Array(maxTextures);\n\n    for (let i = 0; i < maxTextures; i++)\n    {\n        sampleValues[i] = i;\n    }\n\n    batchSamplersUniformGroup = batchSamplersUniformGroupHash[maxTextures] = new UniformGroup({\n        uTextures: { value: sampleValues, type: `i32`, size: maxTextures }\n    }, { isStatic: true });\n\n    return batchSamplersUniformGroup;\n}\n"],"names":[],"mappings":";;;AAEA,MAAM,gCAA8D,EAAC;AAS9D,SAAS,6BAA6B,WAAA,EAC7C;AACI,EAAA,IAAI,yBAAA,GAA4B,8BAA8B,WAAW,CAAA;AAEzE,EAAA,IAAI,2BAA2B,OAAO,yBAAA;AAEtC,EAAA,MAAM,YAAA,GAAe,IAAI,UAAA,CAAW,WAAW,CAAA;AAE/C,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,WAAA,EAAa,CAAA,EAAA,EACjC;AACI,IAAA,YAAA,CAAa,CAAC,CAAA,GAAI,CAAA;AAAA,EACtB;AAEA,EAAA,yBAAA,GAA4B,6BAAA,CAA8B,WAAW,CAAA,GAAI,IAAI,YAAA,CAAa;AAAA,IACtF,WAAW,EAAE,KAAA,EAAO,cAAc,IAAA,EAAM,CAAA,GAAA,CAAA,EAAO,MAAM,WAAA;AAAY,GACrE,EAAG,EAAE,QAAA,EAAU,IAAA,EAAM,CAAA;AAErB,EAAA,OAAO,yBAAA;AACX;;;;"}