{"version":3,"file":"uboSyncFunctions.mjs","sources":["../../../../../../src/rendering/renderers/shared/shader/utils/uboSyncFunctions.ts"],"sourcesContent":["import type { UNIFORM_TYPES_SINGLE } from '../types';\n\nfunction loopMatrix(col: number, row: number)\n{\n    const total = col * row;\n\n    return `\n        for (let i = 0; i < ${total}; i++) {\n            data[offset + (((i / ${col})|0) * 4) + (i % ${col})] = v[i];\n        }\n    `;\n}\n\nexport const uboSyncFunctionsSTD40: Record<UNIFORM_TYPES_SINGLE, string> = {\n    f32: `\n        data[offset] = v;`,\n    i32: `\n        data[offset] = v;`,\n    'vec2<f32>': `\n        data[offset] = v[0];\n        data[offset + 1] = v[1];`,\n    'vec3<f32>': `\n        data[offset] = v[0];\n        data[offset + 1] = v[1];\n        data[offset + 2] = v[2];`,\n    'vec4<f32>': `\n        data[offset] = v[0];\n        data[offset + 1] = v[1];\n        data[offset + 2] = v[2];\n        data[offset + 3] = v[3];`,\n    'mat2x2<f32>': `\n        data[offset] = v[0];\n        data[offset + 1] = v[1];\n        data[offset + 4] = v[2];\n        data[offset + 5] = v[3];`,\n    'mat3x3<f32>': `\n        data[offset] = v[0];\n        data[offset + 1] = v[1];\n        data[offset + 2] = v[2];\n        data[offset + 4] = v[3];\n        data[offset + 5] = v[4];\n        data[offset + 6] = v[5];\n        data[offset + 8] = v[6];\n        data[offset + 9] = v[7];\n        data[offset + 10] = v[8];`,\n    'mat4x4<f32>': `\n        for (let i = 0; i < 16; i++) {\n            data[offset + i] = v[i];\n        }`,\n    'mat3x2<f32>': loopMatrix(3, 2),\n    'mat4x2<f32>': loopMatrix(4, 2),\n    'mat2x3<f32>': loopMatrix(2, 3),\n    'mat4x3<f32>': loopMatrix(4, 3),\n    'mat2x4<f32>': loopMatrix(2, 4),\n    'mat3x4<f32>': loopMatrix(3, 4),\n};\n\nexport const uboSyncFunctionsWGSL: Record<UNIFORM_TYPES_SINGLE, string> = {\n    ...uboSyncFunctionsSTD40,\n    'mat2x2<f32>': `\n        data[offset] = v[0];\n        data[offset + 1] = v[1];\n        data[offset + 2] = v[2];\n        data[offset + 3] = v[3];\n    `,\n};\n"],"names":[],"mappings":";AAEA,SAAS,UAAA,CAAW,KAAa,GACjC,EAAA;AACI,EAAA,MAAM,QAAQ,GAAM,GAAA,GAAA,CAAA;AAEpB,EAAO,OAAA,CAAA;AAAA,4BAAA,EACmB,KAAK,CAAA;AAAA,iCACA,EAAA,GAAG,oBAAoB,GAAG,CAAA;AAAA;AAAA,IAAA,CAAA,CAAA;AAG7D,CAAA;AAEO,MAAM,qBAA8D,GAAA;AAAA,EACvE,GAAK,EAAA,CAAA;AAAA,yBAAA,CAAA;AAAA,EAEL,GAAK,EAAA,CAAA;AAAA,yBAAA,CAAA;AAAA,EAEL,WAAa,EAAA,CAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAGb,WAAa,EAAA,CAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAIb,WAAa,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAKb,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAKf,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAA,CAAA;AAAA,EAUf,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA,SAAA,CAAA;AAAA,EAIf,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAW,CAAA,CAAA,EAAG,CAAC,CAAA;AAClC,EAAA;AAEO,MAAM,oBAA6D,GAAA;AAAA,EACtE,GAAG,qBAAA;AAAA,EACH,aAAe,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAMnB;;;;"}