1 line
2.6 KiB
Plaintext
1 line
2.6 KiB
Plaintext
{"version":3,"file":"getTextureBatchBindGroup.mjs","sources":["../../../../src/rendering/batcher/gpu/getTextureBatchBindGroup.ts"],"sourcesContent":["import { BindGroup } from '../../renderers/gpu/shader/BindGroup';\nimport { Texture } from '../../renderers/shared/texture/Texture';\nimport { getMaxTexturesPerBatch } from '../gl/utils/maxRecommendedTextures';\n\nimport type { TextureSource } from '../../renderers/shared/texture/sources/TextureSource';\n\nconst cachedGroups: Record<number, BindGroup> = {};\n\nexport function getTextureBatchBindGroup(textures: TextureSource[], size: number)\n{\n let uid = 2166136261; // FNV-1a 32-bit offset basis\n\n for (let i = 0; i < size; i++)\n {\n uid ^= textures[i].uid;\n uid = Math.imul(uid, 16777619);\n uid >>>= 0;\n }\n\n return cachedGroups[uid] || generateTextureBatchBindGroup(textures, size, uid);\n}\n\nlet maxTextures = 0;\n\nfunction generateTextureBatchBindGroup(textures: TextureSource[], size: number, key: number): BindGroup\n{\n const bindGroupResources: Record<string, any> = {};\n\n let bindIndex = 0;\n\n if (!maxTextures)maxTextures = getMaxTexturesPerBatch();\n\n for (let i = 0; i < maxTextures; i++)\n {\n const texture = i < size ? textures[i] : Texture.EMPTY.source;\n\n bindGroupResources[bindIndex++] = texture.source;\n bindGroupResources[bindIndex++] = texture.style;\n }\n\n // pad out with empty textures\n const bindGroup = new BindGroup(bindGroupResources);\n\n cachedGroups[key] = bindGroup;\n\n return bindGroup;\n}\n\n"],"names":[],"mappings":";;;;;AAMA,MAAM,eAA0C,EAAC,CAAA;AAEjC,SAAA,wBAAA,CAAyB,UAA2B,IACpE,EAAA;AACI,EAAA,IAAI,GAAM,GAAA,UAAA,CAAA;AAEV,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,IAAA,EAAM,CAC1B,EAAA,EAAA;AACI,IAAO,GAAA,IAAA,QAAA,CAAS,CAAC,CAAE,CAAA,GAAA,CAAA;AACnB,IAAM,GAAA,GAAA,IAAA,CAAK,IAAK,CAAA,GAAA,EAAK,QAAQ,CAAA,CAAA;AAC7B,IAAS,GAAA,MAAA,CAAA,CAAA;AAAA,GACb;AAEA,EAAA,OAAO,aAAa,GAAG,CAAA,IAAK,6BAA8B,CAAA,QAAA,EAAU,MAAM,GAAG,CAAA,CAAA;AACjF,CAAA;AAEA,IAAI,WAAc,GAAA,CAAA,CAAA;AAElB,SAAS,6BAAA,CAA8B,QAA2B,EAAA,IAAA,EAAc,GAChF,EAAA;AACI,EAAA,MAAM,qBAA0C,EAAC,CAAA;AAEjD,EAAA,IAAI,SAAY,GAAA,CAAA,CAAA;AAEhB,EAAA,IAAI,CAAC,WAAA;AAAY,IAAA,WAAA,GAAc,sBAAuB,EAAA,CAAA;AAEtD,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,WAAA,EAAa,CACjC,EAAA,EAAA;AACI,IAAA,MAAM,UAAU,CAAI,GAAA,IAAA,GAAO,SAAS,CAAC,CAAA,GAAI,QAAQ,KAAM,CAAA,MAAA,CAAA;AAEvD,IAAmB,kBAAA,CAAA,SAAA,EAAW,IAAI,OAAQ,CAAA,MAAA,CAAA;AAC1C,IAAmB,kBAAA,CAAA,SAAA,EAAW,IAAI,OAAQ,CAAA,KAAA,CAAA;AAAA,GAC9C;AAGA,EAAM,MAAA,SAAA,GAAY,IAAI,SAAA,CAAU,kBAAkB,CAAA,CAAA;AAElD,EAAA,YAAA,CAAa,GAAG,CAAI,GAAA,SAAA,CAAA;AAEpB,EAAO,OAAA,SAAA,CAAA;AACX;;;;"} |