{"version":3,"file":"DefaultShader.mjs","sources":["../../../../src/rendering/batcher/shared/DefaultShader.ts"],"sourcesContent":["import { compileHighShaderGlProgram, compileHighShaderGpuProgram } from '../../high-shader/compileHighShaderToProgram';\nimport { colorBit, colorBitGl } from '../../high-shader/shader-bits/colorBit';\nimport { generateTextureBatchBit, generateTextureBatchBitGl } from '../../high-shader/shader-bits/generateTextureBatchBit';\nimport { roundPixelsBit, roundPixelsBitGl } from '../../high-shader/shader-bits/roundPixelsBit';\nimport { getBatchSamplersUniformGroup } from '../../renderers/gl/shader/getBatchSamplersUniformGroup';\nimport { Shader } from '../../renderers/shared/shader/Shader';\n\n/**\n * DefaultShader is a specialized shader class designed for batch rendering.\n * It extends the base Shader class and provides functionality for handling\n * color, texture batching, and pixel rounding in both WebGL and WebGPU contexts.\n *\n * It is used by the default batcher\n * @extends Shader\n * @category rendering\n * @advanced\n */\nexport class DefaultShader extends Shader\n{\n    /** @internal */\n    public maxTextures?: number;\n\n    constructor(maxTextures: number)\n    {\n        const glProgram = compileHighShaderGlProgram({\n            name: 'batch',\n            bits: [\n                colorBitGl,\n                generateTextureBatchBitGl(maxTextures),\n                roundPixelsBitGl,\n            ]\n        });\n\n        const gpuProgram = compileHighShaderGpuProgram({\n            name: 'batch',\n            bits: [\n                colorBit,\n                generateTextureBatchBit(maxTextures),\n                roundPixelsBit,\n            ]\n        });\n\n        super({\n            glProgram,\n            gpuProgram,\n            resources: {\n                batchSamplers: getBatchSamplersUniformGroup(maxTextures),\n            }\n        });\n\n        this.maxTextures = maxTextures;\n    }\n}\n"],"names":[],"mappings":";;;;;;;;AAiBO,MAAM,sBAAsB,MAAA,CACnC;AAAA,EAII,YAAY,WAAA,EACZ;AACI,IAAA,MAAM,YAAY,0BAAA,CAA2B;AAAA,MACzC,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM;AAAA,QACF,UAAA;AAAA,QACA,0BAA0B,WAAW,CAAA;AAAA,QACrC;AAAA;AACJ,KACH,CAAA;AAED,IAAA,MAAM,aAAa,2BAAA,CAA4B;AAAA,MAC3C,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM;AAAA,QACF,QAAA;AAAA,QACA,wBAAwB,WAAW,CAAA;AAAA,QACnC;AAAA;AACJ,KACH,CAAA;AAED,IAAA,KAAA,CAAM;AAAA,MACF,SAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW;AAAA,QACP,aAAA,EAAe,6BAA6B,WAAW;AAAA;AAC3D,KACH,CAAA;AAED,IAAA,IAAA,CAAK,WAAA,GAAc,WAAA;AAAA,EACvB;AACJ;;;;"}