{"version":3,"file":"getUboData.mjs","sources":["../../../../../../src/rendering/renderers/gl/shader/program/getUboData.ts"],"sourcesContent":["import type { GlUniformBlockData } from '../GlProgram';\n\n/**\n * returns the uniform block data from the program\n * @private\n * @param program - the webgl program\n * @param gl - the WebGL context\n * @returns {object} the uniform data for this program\n */\nexport function getUboData(program: WebGLProgram, gl: WebGL2RenderingContext): Record<string, GlUniformBlockData>\n{\n    // if uniform buffer data is not supported, early out\n    if (!gl.ACTIVE_UNIFORM_BLOCKS) return {};\n\n    const uniformBlocks: Record<string, GlUniformBlockData> = {};\n\n    // const totalUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n\n    const totalUniformsBlocks = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);\n\n    for (let i = 0; i < totalUniformsBlocks; i++)\n    {\n        const name = gl.getActiveUniformBlockName(program, i);\n        const uniformBlockIndex = gl.getUniformBlockIndex(program, name);\n\n        const size = gl.getActiveUniformBlockParameter(program, i, gl.UNIFORM_BLOCK_DATA_SIZE);\n\n        uniformBlocks[name] = {\n            name,\n            index: uniformBlockIndex,\n            size,\n        };\n    }\n\n    return uniformBlocks;\n}\n"],"names":[],"mappings":";AASO,SAAS,UAAA,CAAW,SAAuB,EAAA,EAClD;AAEI,EAAA,IAAI,CAAC,EAAA,CAAG,qBAAA,EAAuB,OAAO,EAAC;AAEvC,EAAA,MAAM,gBAAoD,EAAC;AAI3D,EAAA,MAAM,mBAAA,GAAsB,EAAA,CAAG,mBAAA,CAAoB,OAAA,EAAS,GAAG,qBAAqB,CAAA;AAEpF,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,mBAAA,EAAqB,CAAA,EAAA,EACzC;AACI,IAAA,MAAM,IAAA,GAAO,EAAA,CAAG,yBAAA,CAA0B,OAAA,EAAS,CAAC,CAAA;AACpD,IAAA,MAAM,iBAAA,GAAoB,EAAA,CAAG,oBAAA,CAAqB,OAAA,EAAS,IAAI,CAAA;AAE/D,IAAA,MAAM,OAAO,EAAA,CAAG,8BAAA,CAA+B,OAAA,EAAS,CAAA,EAAG,GAAG,uBAAuB,CAAA;AAErF,IAAA,aAAA,CAAc,IAAI,CAAA,GAAI;AAAA,MAClB,IAAA;AAAA,MACA,KAAA,EAAO,iBAAA;AAAA,MACP;AAAA,KACJ;AAAA,EACJ;AAEA,EAAA,OAAO,aAAA;AACX;;;;"}