UNPKG

3.62 kBSource Map (JSON)View Raw
1{"version":3,"file":"uniform.js","names":["extractUniforms","uniforms","extractedUniforms","Object","keys","forEach","uniformName","extractUniformsRecursively","uniformValue","prefix","Array","isArray","resize","undefined","childName","child","idx"],"sources":["../../src/utils/uniform.ts"],"sourcesContent":["import { IUniform } from '@antv/g-webgpu-core';\nimport { isPlainObject, isTypedArray } from 'lodash';\n\n/**\n * 考虑结构体命名, eg:\n * a: { b: 1 } -> 'a.b'\n * a: [ { b: 1 } ] -> 'a[0].b'\n */\nexport function extractUniforms(uniforms: {\n [key: string]: IUniform;\n}): {\n [key: string]: IUniform;\n} {\n const extractedUniforms = {};\n Object.keys(uniforms).forEach((uniformName) => {\n extractUniformsRecursively(\n uniformName,\n uniforms[uniformName],\n extractedUniforms,\n '',\n );\n });\n\n return extractedUniforms;\n}\n\nfunction extractUniformsRecursively(\n uniformName: string,\n uniformValue: IUniform,\n uniforms: {\n [key: string]: IUniform;\n },\n prefix: string,\n) {\n if (\n uniformValue === null ||\n typeof uniformValue === 'number' || // u_A: 1\n typeof uniformValue === 'boolean' || // u_A: false\n (Array.isArray(uniformValue) && typeof uniformValue[0] === 'number') || // u_A: [1, 2, 3]\n isTypedArray(uniformValue) || // u_A: Float32Array\n // @ts-ignore\n uniformValue === '' ||\n // @ts-ignore\n uniformValue.resize !== undefined\n ) {\n uniforms[`${prefix && prefix + '.'}${uniformName}`] = uniformValue;\n return;\n }\n\n // u_Struct.a.b.c\n if (isPlainObject(uniformValue)) {\n Object.keys(uniformValue).forEach((childName) => {\n extractUniformsRecursively(\n childName,\n // @ts-ignore\n uniformValue[childName],\n uniforms,\n `${prefix && prefix + '.'}${uniformName}`,\n );\n });\n }\n\n // u_Struct[0].a\n if (Array.isArray(uniformValue)) {\n // @ts-ignore\n uniformValue.forEach((child, idx) => {\n Object.keys(child).forEach((childName) => {\n extractUniformsRecursively(\n childName,\n // @ts-ignore\n child[childName],\n uniforms,\n `${prefix && prefix + '.'}${uniformName}[${idx}]`,\n );\n });\n });\n }\n}\n"],"mappings":";;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASA,eAAe,CAACC,QAE/B,EAEC;EACA,IAAMC,iBAAiB,GAAG,CAAC,CAAC;EAC5BC,MAAM,CAACC,IAAI,CAACH,QAAQ,CAAC,CAACI,OAAO,CAAC,UAACC,WAAW,EAAK;IAC7CC,0BAA0B,CACxBD,WAAW,EACXL,QAAQ,CAACK,WAAW,CAAC,EACrBJ,iBAAiB,EACjB,EAAE,CACH;EACH,CAAC,CAAC;EAEF,OAAOA,iBAAiB;AAC1B;AAEA,SAASK,0BAA0B,CACjCD,WAAmB,EACnBE,YAAsB,EACtBP,QAEC,EACDQ,MAAc,EACd;EACA,IACED,YAAY,KAAK,IAAI,IACrB,OAAOA,YAAY,KAAK,QAAQ;EAAI;EACpC,OAAOA,YAAY,KAAK,SAAS;EAAI;EACpCE,KAAK,CAACC,OAAO,CAACH,YAAY,CAAC,IAAI,OAAOA,YAAY,CAAC,CAAC,CAAC,KAAK,QAAS;EAAI;EACxE,4BAAaA,YAAY,CAAC;EAAI;EAC9B;EACAA,YAAY,KAAK,EAAE;EACnB;EACAA,YAAY,CAACI,MAAM,KAAKC,SAAS,EACjC;IACAZ,QAAQ,WAAIQ,MAAM,IAAIA,MAAM,GAAG,GAAG,SAAGH,WAAW,EAAG,GAAGE,YAAY;IAClE;EACF;;EAEA;EACA,IAAI,6BAAcA,YAAY,CAAC,EAAE;IAC/BL,MAAM,CAACC,IAAI,CAACI,YAAY,CAAC,CAACH,OAAO,CAAC,UAACS,SAAS,EAAK;MAC/CP,0BAA0B,CACxBO,SAAS;MACT;MACAN,YAAY,CAACM,SAAS,CAAC,EACvBb,QAAQ,YACLQ,MAAM,IAAIA,MAAM,GAAG,GAAG,SAAGH,WAAW,EACxC;IACH,CAAC,CAAC;EACJ;;EAEA;EACA,IAAII,KAAK,CAACC,OAAO,CAACH,YAAY,CAAC,EAAE;IAC/B;IACAA,YAAY,CAACH,OAAO,CAAC,UAACU,KAAK,EAAEC,GAAG,EAAK;MACnCb,MAAM,CAACC,IAAI,CAACW,KAAK,CAAC,CAACV,OAAO,CAAC,UAACS,SAAS,EAAK;QACxCP,0BAA0B,CACxBO,SAAS;QACT;QACAC,KAAK,CAACD,SAAS,CAAC,EAChBb,QAAQ,YACLQ,MAAM,IAAIA,MAAM,GAAG,GAAG,SAAGH,WAAW,cAAIU,GAAG,OAC/C;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF"}
\No newline at end of file