{"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\n/** @internal */\nexport const uboSyncFunctionsSTD40: Record<UNIFORM_TYPES_SINGLE, string> = {\n    f32: `\n        data[offset] = v;`,\n    i32: `\n        dataInt32[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    'vec2<i32>': `\n        dataInt32[offset] = v[0];\n        dataInt32[offset + 1] = v[1];`,\n    'vec3<i32>': `\n        dataInt32[offset] = v[0];\n        dataInt32[offset + 1] = v[1];\n        dataInt32[offset + 2] = v[2];`,\n    'vec4<i32>': `\n        dataInt32[offset] = v[0];\n        dataInt32[offset + 1] = v[1];\n        dataInt32[offset + 2] = v[2];\n        dataInt32[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\n/** @internal */\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,GAAA,EACjC;AACI,EAAA,MAAM,QAAQ,GAAA,GAAM,GAAA;AAEpB,EAAA,OAAO;AAAA,4BAAA,EACmB,KAAK,CAAA;AAAA,iCAAA,EACA,GAAG,oBAAoB,GAAG,CAAA;AAAA;AAAA,IAAA,CAAA;AAG7D;AAGO,MAAM,qBAAA,GAA8D;AAAA,EACvE,GAAA,EAAK;AAAA,yBAAA,CAAA;AAAA,EAEL,GAAA,EAAK;AAAA,8BAAA,CAAA;AAAA,EAEL,WAAA,EAAa;AAAA;AAAA,gCAAA,CAAA;AAAA,EAGb,WAAA,EAAa;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAIb,WAAA,EAAa;AAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAKb,WAAA,EAAa;AAAA;AAAA,qCAAA,CAAA;AAAA,EAGb,WAAA,EAAa;AAAA;AAAA;AAAA,qCAAA,CAAA;AAAA,EAIb,WAAA,EAAa;AAAA;AAAA;AAAA;AAAA,qCAAA,CAAA;AAAA,EAKb,aAAA,EAAe;AAAA;AAAA;AAAA;AAAA,gCAAA,CAAA;AAAA,EAKf,aAAA,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAA,CAAA;AAAA,EAUf,aAAA,EAAe;AAAA;AAAA;AAAA,SAAA,CAAA;AAAA,EAIf,aAAA,EAAe,UAAA,CAAW,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAA,CAAW,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAA,CAAW,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAA,CAAW,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAA,CAAW,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9B,aAAA,EAAe,UAAA,CAAW,CAAA,EAAG,CAAC;AAClC;AAGO,MAAM,oBAAA,GAA6D;AAAA,EACtE,GAAG,qBAAA;AAAA,EACH,aAAA,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAMnB;;;;"}