UNPKG

3.84 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/utils/uniform.ts"],"names":["isObject","isTypedArray","extractUniforms","uniforms","extractedUniforms","Object","keys","forEach","uniformName","extractUniformsRecursively","uniformValue","prefix","Array","isArray","resize","undefined","childName","child","idx"],"mappings":"AACA,SAASA,QAAT,QAAyB,aAAzB;AACA,SAASC,YAAT,QAA6B,iBAA7B;AAEA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,eAAT,CAAyBC,QAAzB,EAIL;AACA,MAAMC,iBAAiB,GAAG,EAA1B;AACAC,EAAAA,MAAM,CAACC,IAAP,CAAYH,QAAZ,EAAsBI,OAAtB,CAA8B,UAACC,WAAD,EAAiB;AAC7CC,IAAAA,0BAA0B,CACxBD,WADwB,EAExBL,QAAQ,CAACK,WAAD,CAFgB,EAGxBJ,iBAHwB,EAIxB,EAJwB,CAA1B;AAMD,GAPD;AASA,SAAOA,iBAAP;AACD;;AAED,SAASK,0BAAT,CACED,WADF,EAEEE,YAFF,EAGEP,QAHF,EAMEQ,MANF,EAOE;AACA,MACED,YAAY,KAAK,IAAjB,IACA,OAAOA,YAAP,KAAwB,QADxB,IACoC;AACpC,SAAOA,YAAP,KAAwB,SAFxB,IAEqC;AACpCE,EAAAA,KAAK,CAACC,OAAN,CAAcH,YAAd,KAA+B,OAAOA,YAAY,CAAC,CAAD,CAAnB,KAA2B,QAH3D,IAGwE;AACxET,EAAAA,YAAY,CAACS,YAAD,CAJZ,IAI8B;AAC9B;AACAA,EAAAA,YAAY,KAAK,EANjB,IAOA;AACAA,EAAAA,YAAY,CAACI,MAAb,KAAwBC,SAT1B,EAUE;AACAZ,IAAAA,QAAQ,WAAIQ,MAAM,IAAIA,MAAM,GAAG,GAAvB,SAA6BH,WAA7B,EAAR,GAAsDE,YAAtD;AACA;AACD,GAdD,CAgBA;;;AACA,MAAIV,QAAQ,CAACU,YAAD,CAAZ,EAA4B;AAC1BL,IAAAA,MAAM,CAACC,IAAP,CAAYI,YAAZ,EAA0BH,OAA1B,CAAkC,UAACS,SAAD,EAAe;AAC/CP,MAAAA,0BAA0B,CACxBO,SADwB,EAExB;AACAN,MAAAA,YAAY,CAACM,SAAD,CAHY,EAIxBb,QAJwB,YAKrBQ,MAAM,IAAIA,MAAM,GAAG,GALE,SAKIH,WALJ,EAA1B;AAOD,KARD;AASD,GA3BD,CA6BA;;;AACA,MAAII,KAAK,CAACC,OAAN,CAAcH,YAAd,CAAJ,EAAiC;AAC/B;AACAA,IAAAA,YAAY,CAACH,OAAb,CAAqB,UAACU,KAAD,EAAQC,GAAR,EAAgB;AACnCb,MAAAA,MAAM,CAACC,IAAP,CAAYW,KAAZ,EAAmBV,OAAnB,CAA2B,UAACS,SAAD,EAAe;AACxCP,QAAAA,0BAA0B,CACxBO,SADwB,EAExB;AACAC,QAAAA,KAAK,CAACD,SAAD,CAHmB,EAIxBb,QAJwB,YAKrBQ,MAAM,IAAIA,MAAM,GAAG,GALE,SAKIH,WALJ,cAKmBU,GALnB,OAA1B;AAOD,OARD;AASD,KAVD;AAWD;AACF","sourcesContent":["import { IUniform } from '@antv/g-webgpu-core';\nimport { isObject } from './is-object';\nimport { isTypedArray } from './is-typedarray';\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 (isObject(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"],"file":"uniform.js"}
\No newline at end of file