{"version":3,"file":"getUniformData.mjs","sources":["../../../../../../src/rendering/renderers/gl/shader/program/getUniformData.ts"],"sourcesContent":["import { defaultValue } from './defaultValue';\nimport { mapType } from './mapType';\n\nimport type { GlUniformData } from '../GlProgram';\n\n/**\n * returns the uniform 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 getUniformData(program: WebGLProgram, gl: WebGLRenderingContextBase): {[key: string]: GlUniformData}\n{\n    const uniforms: {[key: string]: GlUniformData} = {};\n\n    const totalUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n\n    for (let i = 0; i < totalUniforms; i++)\n    {\n        const uniformData = gl.getActiveUniform(program, i);\n        const name = uniformData.name.replace(/\\[.*?\\]$/, '');\n\n        const isArray = !!(uniformData.name.match(/\\[.*?\\]$/));\n\n        const type = mapType(gl, uniformData.type);\n\n        uniforms[name] = {\n            name,\n            index: i,\n            type,\n            size: uniformData.size,\n            isArray,\n            value: defaultValue(type, uniformData.size),\n        };\n    }\n\n    return uniforms;\n}\n"],"names":[],"mappings":";;;;AAYO,SAAS,cAAA,CAAe,SAAuB,EAAA,EACtD;AACI,EAAA,MAAM,WAA2C,EAAC;AAElD,EAAA,MAAM,aAAA,GAAgB,EAAA,CAAG,mBAAA,CAAoB,OAAA,EAAS,GAAG,eAAe,CAAA;AAExE,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,aAAA,EAAe,CAAA,EAAA,EACnC;AACI,IAAA,MAAM,WAAA,GAAc,EAAA,CAAG,gBAAA,CAAiB,OAAA,EAAS,CAAC,CAAA;AAClD,IAAA,MAAM,IAAA,GAAO,WAAA,CAAY,IAAA,CAAK,OAAA,CAAQ,YAAY,EAAE,CAAA;AAEpD,IAAA,MAAM,UAAU,CAAC,CAAE,WAAA,CAAY,IAAA,CAAK,MAAM,UAAU,CAAA;AAEpD,IAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,EAAA,EAAI,WAAA,CAAY,IAAI,CAAA;AAEzC,IAAA,QAAA,CAAS,IAAI,CAAA,GAAI;AAAA,MACb,IAAA;AAAA,MACA,KAAA,EAAO,CAAA;AAAA,MACP,IAAA;AAAA,MACA,MAAM,WAAA,CAAY,IAAA;AAAA,MAClB,OAAA;AAAA,MACA,KAAA,EAAO,YAAA,CAAa,IAAA,EAAM,WAAA,CAAY,IAAI;AAAA,KAC9C;AAAA,EACJ;AAEA,EAAA,OAAO,QAAA;AACX;;;;"}