UNPKG

pixi.js

Version:

<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">

30 lines (27 loc) 1.04 kB
import { BindGroup } from '../../renderers/gpu/shader/BindGroup.mjs'; import { Texture } from '../../renderers/shared/texture/Texture.mjs'; "use strict"; const cachedGroups = {}; function getTextureBatchBindGroup(textures, size, maxTextures) { let uid = 2166136261; for (let i = 0; i < size; i++) { uid ^= textures[i].uid; uid = Math.imul(uid, 16777619); uid >>>= 0; } return cachedGroups[uid] || generateTextureBatchBindGroup(textures, size, uid, maxTextures); } function generateTextureBatchBindGroup(textures, size, key, maxTextures) { const bindGroupResources = {}; let bindIndex = 0; for (let i = 0; i < maxTextures; i++) { const texture = i < size ? textures[i] : Texture.EMPTY.source; bindGroupResources[bindIndex++] = texture.source; bindGroupResources[bindIndex++] = texture.style; } const bindGroup = new BindGroup(bindGroupResources); cachedGroups[key] = bindGroup; return bindGroup; } export { getTextureBatchBindGroup }; //# sourceMappingURL=getTextureBatchBindGroup.mjs.map