@luma.gl/core 9.3.0-alpha.6 → 9.3.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/canvas-surface.d.ts +1 -1
- package/dist/adapter/canvas-surface.d.ts.map +1 -1
- package/dist/adapter/device.d.ts +13 -3
- package/dist/adapter/device.d.ts.map +1 -1
- package/dist/adapter/device.js +73 -6
- package/dist/adapter/device.js.map +1 -1
- package/dist/adapter/luma.js +1 -1
- package/dist/adapter/resources/command-buffer.d.ts +3 -1
- package/dist/adapter/resources/command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/command-buffer.js +3 -1
- package/dist/adapter/resources/command-buffer.js.map +1 -1
- package/dist/adapter/resources/command-encoder.d.ts +3 -1
- package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/command-encoder.js +3 -1
- package/dist/adapter/resources/command-encoder.js.map +1 -1
- package/dist/adapter/resources/compute-pipeline.d.ts +2 -2
- package/dist/adapter/resources/compute-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/framebuffer.d.ts +1 -1
- package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/render-pipeline.d.ts +10 -4
- package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/render-pipeline.js +2 -1
- package/dist/adapter/resources/render-pipeline.js.map +1 -1
- package/dist/adapter/resources/texture-view.d.ts +1 -1
- package/dist/adapter/resources/texture-view.d.ts.map +1 -1
- package/dist/adapter/resources/texture.d.ts +5 -4
- package/dist/adapter/resources/texture.d.ts.map +1 -1
- package/dist/adapter/resources/texture.js +4 -3
- package/dist/adapter/resources/texture.js.map +1 -1
- package/dist/adapter/types/attachments.d.ts +1 -1
- package/dist/adapter/types/attachments.d.ts.map +1 -1
- package/dist/adapter/types/buffer-layout.d.ts +1 -1
- package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
- package/dist/adapter/types/parameters.d.ts +3 -1
- package/dist/adapter/types/parameters.d.ts.map +1 -1
- package/dist/adapter/types/parameters.js +1 -0
- package/dist/adapter/types/parameters.js.map +1 -1
- package/dist/adapter/types/shader-layout.d.ts +10 -6
- package/dist/adapter/types/shader-layout.d.ts.map +1 -1
- package/dist/adapter/types/uniforms.d.ts +6 -0
- package/dist/adapter/types/uniforms.d.ts.map +1 -1
- package/dist/adapter-utils/bind-groups.d.ts +9 -0
- package/dist/adapter-utils/bind-groups.d.ts.map +1 -0
- package/dist/adapter-utils/bind-groups.js +41 -0
- package/dist/adapter-utils/bind-groups.js.map +1 -0
- package/dist/adapter-utils/get-attribute-from-layouts.d.ts +2 -2
- package/dist/adapter-utils/get-attribute-from-layouts.d.ts.map +1 -1
- package/dist/adapter-utils/get-attribute-from-layouts.js +6 -6
- package/dist/adapter-utils/get-attribute-from-layouts.js.map +1 -1
- package/dist/dist.dev.js +983 -223
- package/dist/dist.min.js +5 -5
- package/dist/factories/bind-group-factory.d.ts +20 -0
- package/dist/factories/bind-group-factory.d.ts.map +1 -0
- package/dist/factories/bind-group-factory.js +79 -0
- package/dist/factories/bind-group-factory.js.map +1 -0
- package/dist/factories/core-module-state.d.ts +7 -0
- package/dist/factories/core-module-state.d.ts.map +1 -0
- package/dist/{shadertypes/data-types/shader-types.js → factories/core-module-state.js} +1 -1
- package/dist/factories/core-module-state.js.map +1 -0
- package/dist/factories/pipeline-factory.d.ts +54 -0
- package/dist/factories/pipeline-factory.d.ts.map +1 -0
- package/dist/factories/pipeline-factory.js +270 -0
- package/dist/factories/pipeline-factory.js.map +1 -0
- package/dist/factories/shader-factory.d.ts +20 -0
- package/dist/factories/shader-factory.d.ts.map +1 -0
- package/dist/factories/shader-factory.js +84 -0
- package/dist/factories/shader-factory.js.map +1 -0
- package/dist/index.cjs +942 -221
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +22 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -9
- package/dist/index.js.map +1 -1
- package/dist/portable/uniform-block.d.ts +1 -1
- package/dist/portable/uniform-block.d.ts.map +1 -1
- package/dist/portable/uniform-buffer-layout.d.ts +20 -15
- package/dist/portable/uniform-buffer-layout.d.ts.map +1 -1
- package/dist/portable/uniform-buffer-layout.js +188 -43
- package/dist/portable/uniform-buffer-layout.js.map +1 -1
- package/dist/portable/uniform-store.d.ts +5 -6
- package/dist/portable/uniform-store.d.ts.map +1 -1
- package/dist/portable/uniform-store.js +6 -3
- package/dist/portable/uniform-store.js.map +1 -1
- package/dist/shadertypes/data-types/data-type-decoder.d.ts +20 -0
- package/dist/shadertypes/data-types/data-type-decoder.d.ts.map +1 -0
- package/dist/shadertypes/data-types/data-type-decoder.js +79 -0
- package/dist/shadertypes/data-types/data-type-decoder.js.map +1 -0
- package/dist/shadertypes/data-types/data-types.d.ts +31 -12
- package/dist/shadertypes/data-types/data-types.d.ts.map +1 -1
- package/dist/{image-utils → shadertypes/image-types}/image-types.d.ts +0 -6
- package/dist/shadertypes/image-types/image-types.d.ts.map +1 -0
- package/dist/shadertypes/image-types/image-types.js.map +1 -0
- package/dist/shadertypes/shader-types/shader-type-decoder.d.ts +41 -0
- package/dist/shadertypes/shader-types/shader-type-decoder.d.ts.map +1 -0
- package/dist/shadertypes/{data-types/decode-shader-types.js → shader-types/shader-type-decoder.js} +32 -2
- package/dist/shadertypes/shader-types/shader-type-decoder.js.map +1 -0
- package/dist/shadertypes/shader-types/shader-types.d.ts +101 -0
- package/dist/shadertypes/shader-types/shader-types.d.ts.map +1 -0
- package/dist/shadertypes/shader-types/shader-types.js +30 -0
- package/dist/shadertypes/shader-types/shader-types.js.map +1 -0
- package/dist/shadertypes/texture-types/pixel-utils.d.ts.map +1 -0
- package/dist/shadertypes/texture-types/pixel-utils.js.map +1 -0
- package/dist/shadertypes/{textures → texture-types}/texture-format-decoder.d.ts +1 -0
- package/dist/shadertypes/texture-types/texture-format-decoder.d.ts.map +1 -0
- package/dist/shadertypes/{textures → texture-types}/texture-format-decoder.js +4 -3
- package/dist/shadertypes/texture-types/texture-format-decoder.js.map +1 -0
- package/dist/shadertypes/texture-types/texture-format-generics.d.ts +34 -0
- package/dist/shadertypes/texture-types/texture-format-generics.d.ts.map +1 -0
- package/dist/shadertypes/texture-types/texture-format-generics.js.map +1 -0
- package/dist/shadertypes/texture-types/texture-format-table.d.ts.map +1 -0
- package/dist/shadertypes/texture-types/texture-format-table.js.map +1 -0
- package/dist/shadertypes/{textures → texture-types}/texture-formats.d.ts +5 -1
- package/dist/shadertypes/texture-types/texture-formats.d.ts.map +1 -0
- package/dist/shadertypes/{textures → texture-types}/texture-formats.js +1 -0
- package/dist/shadertypes/texture-types/texture-formats.js.map +1 -0
- package/dist/shadertypes/{textures → texture-types}/texture-layout.d.ts +1 -1
- package/dist/shadertypes/texture-types/texture-layout.d.ts.map +1 -0
- package/dist/shadertypes/texture-types/texture-layout.js.map +1 -0
- package/dist/shadertypes/vertex-types/vertex-format-decoder.d.ts +24 -0
- package/dist/shadertypes/vertex-types/vertex-format-decoder.d.ts.map +1 -0
- package/dist/shadertypes/vertex-types/vertex-format-decoder.js +106 -0
- package/dist/shadertypes/vertex-types/vertex-format-decoder.js.map +1 -0
- package/dist/shadertypes/vertex-types/vertex-formats.d.ts +50 -0
- package/dist/shadertypes/vertex-types/vertex-formats.d.ts.map +1 -0
- package/dist/shadertypes/vertex-types/vertex-formats.js.map +1 -0
- package/package.json +2 -2
- package/src/adapter/canvas-surface.ts +1 -1
- package/src/adapter/device.ts +115 -10
- package/src/adapter/resources/command-buffer.ts +3 -1
- package/src/adapter/resources/command-encoder.ts +3 -1
- package/src/adapter/resources/compute-pipeline.ts +2 -2
- package/src/adapter/resources/framebuffer.ts +1 -1
- package/src/adapter/resources/render-pipeline.ts +12 -5
- package/src/adapter/resources/texture-view.ts +1 -1
- package/src/adapter/resources/texture.ts +6 -5
- package/src/adapter/types/attachments.ts +1 -1
- package/src/adapter/types/buffer-layout.ts +1 -1
- package/src/adapter/types/parameters.ts +4 -1
- package/src/adapter/types/shader-layout.ts +15 -9
- package/src/adapter/types/uniforms.ts +12 -0
- package/src/adapter-utils/bind-groups.ts +71 -0
- package/src/adapter-utils/get-attribute-from-layouts.ts +8 -11
- package/src/factories/bind-group-factory.ts +139 -0
- package/src/factories/core-module-state.ts +11 -0
- package/src/factories/pipeline-factory.ts +328 -0
- package/src/factories/shader-factory.ts +103 -0
- package/src/index.ts +47 -26
- package/src/portable/uniform-block.ts +1 -1
- package/src/portable/uniform-buffer-layout.ts +269 -62
- package/src/portable/uniform-store.ts +14 -11
- package/src/shadertypes/data-types/data-type-decoder.ts +105 -0
- package/src/shadertypes/data-types/data-types.ts +100 -48
- package/src/{image-utils → shadertypes/image-types}/image-types.ts +0 -7
- package/src/shadertypes/{data-types/decode-shader-types.ts → shader-types/shader-type-decoder.ts} +76 -11
- package/src/shadertypes/shader-types/shader-types.ts +207 -0
- package/src/shadertypes/{textures → texture-types}/texture-format-decoder.ts +4 -3
- package/src/shadertypes/{textures → texture-types}/texture-format-generics.ts +42 -48
- package/src/shadertypes/{textures → texture-types}/texture-formats.ts +14 -2
- package/src/shadertypes/vertex-types/vertex-format-decoder.ts +131 -0
- package/src/shadertypes/vertex-types/vertex-formats.ts +183 -0
- package/dist/image-utils/image-types.d.ts.map +0 -1
- package/dist/image-utils/image-types.js.map +0 -1
- package/dist/shadertypes/data-types/decode-shader-types.d.ts +0 -17
- package/dist/shadertypes/data-types/decode-shader-types.d.ts.map +0 -1
- package/dist/shadertypes/data-types/decode-shader-types.js.map +0 -1
- package/dist/shadertypes/data-types/shader-types.d.ts +0 -43
- package/dist/shadertypes/data-types/shader-types.d.ts.map +0 -1
- package/dist/shadertypes/data-types/shader-types.js.map +0 -1
- package/dist/shadertypes/textures/pixel-utils.d.ts.map +0 -1
- package/dist/shadertypes/textures/pixel-utils.js.map +0 -1
- package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +0 -1
- package/dist/shadertypes/textures/texture-format-decoder.js.map +0 -1
- package/dist/shadertypes/textures/texture-format-generics.d.ts +0 -33
- package/dist/shadertypes/textures/texture-format-generics.d.ts.map +0 -1
- package/dist/shadertypes/textures/texture-format-generics.js.map +0 -1
- package/dist/shadertypes/textures/texture-format-table.d.ts.map +0 -1
- package/dist/shadertypes/textures/texture-format-table.js.map +0 -1
- package/dist/shadertypes/textures/texture-formats.d.ts.map +0 -1
- package/dist/shadertypes/textures/texture-formats.js.map +0 -1
- package/dist/shadertypes/textures/texture-layout.d.ts.map +0 -1
- package/dist/shadertypes/textures/texture-layout.js.map +0 -1
- package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts +0 -18
- package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts.map +0 -1
- package/dist/shadertypes/vertex-arrays/decode-vertex-format.js +0 -100
- package/dist/shadertypes/vertex-arrays/decode-vertex-format.js.map +0 -1
- package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts +0 -27
- package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts.map +0 -1
- package/dist/shadertypes/vertex-arrays/vertex-formats.js.map +0 -1
- package/src/shadertypes/data-types/shader-types.ts +0 -94
- package/src/shadertypes/vertex-arrays/decode-vertex-format.ts +0 -124
- package/src/shadertypes/vertex-arrays/vertex-formats.ts +0 -91
- /package/dist/{image-utils → shadertypes/image-types}/image-types.js +0 -0
- /package/dist/shadertypes/{textures → texture-types}/pixel-utils.d.ts +0 -0
- /package/dist/shadertypes/{textures → texture-types}/pixel-utils.js +0 -0
- /package/dist/shadertypes/{textures → texture-types}/texture-format-generics.js +0 -0
- /package/dist/shadertypes/{textures → texture-types}/texture-format-table.d.ts +0 -0
- /package/dist/shadertypes/{textures → texture-types}/texture-format-table.js +0 -0
- /package/dist/shadertypes/{textures → texture-types}/texture-layout.js +0 -0
- /package/dist/shadertypes/{vertex-arrays → vertex-types}/vertex-formats.js +0 -0
- /package/src/shadertypes/{textures → texture-types}/pixel-utils.ts +0 -0
- /package/src/shadertypes/{textures → texture-types}/texture-format-table.ts +0 -0
- /package/src/shadertypes/{textures → texture-types}/texture-layout.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniform-store.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"uniform-store.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,mBAAmB,EAAC,oDAAiD;AAClF,OAAO,KAAK,EAAC,qBAAqB,EAAC,qCAAkC;AACrE,OAAO,KAAK,EAAC,MAAM,EAAC,6BAA0B;AAC9C,OAAO,EAAC,MAAM,EAAC,uCAAoC;AAEnD,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,mBAAmB,EAAC,mCAAgC;AAE5D;;;;;;GAMG;AACH,qBAAa,YAAY,CACvB,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAClE,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB;IAED,uDAAuD;IACvD,aAAa,yGAA8C;IAC3D,sEAAsE;IACtE,oBAAoB,8CAAqD;IACzE,mCAAmC;IACnC,cAAc,iCAAwC;IAEtD;;;OAGG;gBAED,MAAM,EAAE,MAAM,CACZ,MAAM,WAAW,EACjB;QACE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QACnD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;KACzD,CACF;IAkBH,0CAA0C;IAC1C,OAAO,IAAI,IAAI;IAMf;;;OAGG;IACH,WAAW,CACT,QAAQ,EAAE,OAAO,CAAC;SAAE,KAAK,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAAC,CAAC,GAC7E,IAAI;IAeP,4DAA4D;IAC5D,0BAA0B,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,MAAM;IAIxE,mEAAmE;IACnE,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,UAAU;IAMtE;;;OAGG;IACH,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,WAAW,EACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;SAAE,KAAK,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAAC,CAAC,GAC9E,MAAM;IAeT,4GAA4G;IAC5G,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,WAAW,GAAG,MAAM;IAcrF,4DAA4D;IAC5D,oBAAoB,IAAI,KAAK,GAAG,MAAM;IAYtC,qEAAqE;IACrE,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM;CAwB1E"}
|
|
@@ -27,11 +27,11 @@ export class UniformStore {
|
|
|
27
27
|
for (const [bufferName, block] of Object.entries(blocks)) {
|
|
28
28
|
const uniformBufferName = bufferName;
|
|
29
29
|
// Create a layout object to help us generate correctly formatted binary uniform buffers
|
|
30
|
-
const uniformBufferLayout = new UniformBufferLayout(block.uniformTypes ?? {}
|
|
30
|
+
const uniformBufferLayout = new UniformBufferLayout(block.uniformTypes ?? {});
|
|
31
31
|
this.uniformBufferLayouts.set(uniformBufferName, uniformBufferLayout);
|
|
32
32
|
// Create a Uniform block to store the uniforms for each buffer.
|
|
33
33
|
const uniformBlock = new UniformBlock({ name: bufferName });
|
|
34
|
-
uniformBlock.setUniforms(block.defaultUniforms || {});
|
|
34
|
+
uniformBlock.setUniforms(uniformBufferLayout.getFlatUniformValues(block.defaultUniforms || {}));
|
|
35
35
|
this.uniformBlocks.set(uniformBufferName, uniformBlock);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
@@ -47,7 +47,10 @@ export class UniformStore {
|
|
|
47
47
|
*/
|
|
48
48
|
setUniforms(uniforms) {
|
|
49
49
|
for (const [blockName, uniformValues] of Object.entries(uniforms)) {
|
|
50
|
-
|
|
50
|
+
const uniformBufferName = blockName;
|
|
51
|
+
const uniformBufferLayout = this.uniformBufferLayouts.get(uniformBufferName);
|
|
52
|
+
const flattenedUniforms = uniformBufferLayout?.getFlatUniformValues((uniformValues || {}));
|
|
53
|
+
this.uniformBlocks.get(uniformBufferName)?.setUniforms(flattenedUniforms || {});
|
|
51
54
|
// We leverage logging in updateUniformBuffers(), even though slightly less efficient
|
|
52
55
|
// this.updateUniformBuffer(blockName);
|
|
53
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniform-store.js","sourceRoot":"","sources":["../../src/portable/uniform-store.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,MAAM,EAAC,uCAAoC;AACnD,OAAO,EAAC,GAAG,EAAC,wBAAqB;AACjC,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,mBAAmB,EAAC,mCAAgC;AAE5D;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IAMvB,uDAAuD;IACvD,aAAa,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC3D,sEAAsE;IACtE,oBAAoB,GAAG,IAAI,GAAG,EAA0C,CAAC;IACzE,mCAAmC;IACnC,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEtD;;;OAGG;IACH,YACE,
|
|
1
|
+
{"version":3,"file":"uniform-store.js","sourceRoot":"","sources":["../../src/portable/uniform-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TypedArray, TypedArrayConstructor } from "../../types.js";
|
|
2
|
+
import { SignedDataType, NormalizedDataType, DataTypeInfo, TypedArrayConstructorT } from "./data-types.js";
|
|
3
|
+
export declare class DataTypeDecoder {
|
|
4
|
+
/**
|
|
5
|
+
* Gets info about a data type constant (signed or normalized)
|
|
6
|
+
* @returns underlying primitive / signed types, byte length, normalization, integer, signed flags
|
|
7
|
+
*/
|
|
8
|
+
getDataTypeInfo<T extends NormalizedDataType = NormalizedDataType>(type: T): DataTypeInfo<T>;
|
|
9
|
+
/** Build a vertex format from a signed data type and a component */
|
|
10
|
+
getNormalizedDataType(signedDataType: SignedDataType): NormalizedDataType;
|
|
11
|
+
/** Align offset to 1, 2 or 4 elements (4, 8 or 16 bytes) */
|
|
12
|
+
alignTo(size: number, count: number): number;
|
|
13
|
+
/** Returns the VariableShaderType that corresponds to a typed array */
|
|
14
|
+
getDataType(arrayOrType: TypedArray | TypedArrayConstructor): SignedDataType;
|
|
15
|
+
/** Returns the TypedArray that corresponds to a shader data type */
|
|
16
|
+
getTypedArrayConstructor<T extends NormalizedDataType>(type: NormalizedDataType): TypedArrayConstructorT<T>;
|
|
17
|
+
}
|
|
18
|
+
/** Entry point for decoding luma.gl data types */
|
|
19
|
+
export declare const dataTypeDecoder: DataTypeDecoder;
|
|
20
|
+
//# sourceMappingURL=data-type-decoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-type-decoder.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/data-types/data-type-decoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAE,qBAAqB,EAAC,uBAAoB;AAC9D,OAAO,EAEL,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACvB,wBAAqB;AAEtB,qBAAa,eAAe;IAC1B;;;OAGG;IACH,eAAe,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAgB5F,oEAAoE;IACpE,qBAAqB,CAAC,cAAc,EAAE,cAAc,GAAG,kBAAkB;IAYzE,4DAA4D;IAC5D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAS5C,uEAAuE;IACvE,WAAW,CAAC,WAAW,EAAE,UAAU,GAAG,qBAAqB,GAAG,cAAc;IAY5E,oEAAoE;IACpE,wBAAwB,CAAC,CAAC,SAAS,kBAAkB,EACnD,IAAI,EAAE,kBAAkB,GACvB,sBAAsB,CAAC,CAAC,CAAC;CAI7B;AAED,kDAAkD;AAClD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
export class DataTypeDecoder {
|
|
5
|
+
/**
|
|
6
|
+
* Gets info about a data type constant (signed or normalized)
|
|
7
|
+
* @returns underlying primitive / signed types, byte length, normalization, integer, signed flags
|
|
8
|
+
*/
|
|
9
|
+
getDataTypeInfo(type) {
|
|
10
|
+
const [signedType, primitiveType, byteLength] = NORMALIZED_TYPE_MAP[type];
|
|
11
|
+
const normalized = type.includes('norm');
|
|
12
|
+
const integer = !normalized && !type.startsWith('float');
|
|
13
|
+
const signed = type.startsWith('s');
|
|
14
|
+
return {
|
|
15
|
+
signedType: signedType,
|
|
16
|
+
primitiveType: primitiveType,
|
|
17
|
+
byteLength: byteLength,
|
|
18
|
+
normalized: normalized,
|
|
19
|
+
integer: integer,
|
|
20
|
+
signed: signed
|
|
21
|
+
// TODO - add webglOnly flag
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** Build a vertex format from a signed data type and a component */
|
|
25
|
+
getNormalizedDataType(signedDataType) {
|
|
26
|
+
const dataType = signedDataType;
|
|
27
|
+
// prettier-ignore
|
|
28
|
+
switch (dataType) {
|
|
29
|
+
case 'uint8': return 'unorm8';
|
|
30
|
+
case 'sint8': return 'snorm8';
|
|
31
|
+
case 'uint16': return 'unorm16';
|
|
32
|
+
case 'sint16': return 'snorm16';
|
|
33
|
+
default: return dataType;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/** Align offset to 1, 2 or 4 elements (4, 8 or 16 bytes) */
|
|
37
|
+
alignTo(size, count) {
|
|
38
|
+
// prettier-ignore
|
|
39
|
+
switch (count) {
|
|
40
|
+
case 1: return size; // Pad upwards to even multiple of 2
|
|
41
|
+
case 2: return size + (size % 2); // Pad upwards to even multiple of 2
|
|
42
|
+
default: return size + ((4 - (size % 4)) % 4); // Pad upwards to even multiple of 4
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** Returns the VariableShaderType that corresponds to a typed array */
|
|
46
|
+
getDataType(arrayOrType) {
|
|
47
|
+
const Constructor = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
|
|
48
|
+
if (Constructor === Uint8ClampedArray) {
|
|
49
|
+
return 'uint8';
|
|
50
|
+
}
|
|
51
|
+
const info = Object.values(NORMALIZED_TYPE_MAP).find(entry => Constructor === entry[4]);
|
|
52
|
+
if (!info) {
|
|
53
|
+
throw new Error(Constructor.name);
|
|
54
|
+
}
|
|
55
|
+
return info[0];
|
|
56
|
+
}
|
|
57
|
+
/** Returns the TypedArray that corresponds to a shader data type */
|
|
58
|
+
getTypedArrayConstructor(type) {
|
|
59
|
+
const [, , , , Constructor] = NORMALIZED_TYPE_MAP[type];
|
|
60
|
+
return Constructor;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** Entry point for decoding luma.gl data types */
|
|
64
|
+
export const dataTypeDecoder = new DataTypeDecoder();
|
|
65
|
+
const NORMALIZED_TYPE_MAP = {
|
|
66
|
+
uint8: ['uint8', 'u32', 1, false, Uint8Array],
|
|
67
|
+
sint8: ['sint8', 'i32', 1, false, Int8Array],
|
|
68
|
+
unorm8: ['uint8', 'f32', 1, true, Uint8Array],
|
|
69
|
+
snorm8: ['sint8', 'f32', 1, true, Int8Array],
|
|
70
|
+
uint16: ['uint16', 'u32', 2, false, Uint16Array],
|
|
71
|
+
sint16: ['sint16', 'i32', 2, false, Int16Array],
|
|
72
|
+
unorm16: ['uint16', 'u32', 2, true, Uint16Array],
|
|
73
|
+
snorm16: ['sint16', 'i32', 2, true, Int16Array],
|
|
74
|
+
float16: ['float16', 'f16', 2, false, Uint16Array],
|
|
75
|
+
float32: ['float32', 'f32', 4, false, Float32Array],
|
|
76
|
+
uint32: ['uint32', 'u32', 4, false, Uint32Array],
|
|
77
|
+
sint32: ['sint32', 'i32', 4, false, Int32Array]
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=data-type-decoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-type-decoder.js","sourceRoot":"","sources":["../../../src/shadertypes/data-types/data-type-decoder.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAWpC,MAAM,OAAO,eAAe;IAC1B;;;OAGG;IACH,eAAe,CAAoD,IAAO;QACxE,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,OAAO,GAAY,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,MAAM,GAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO;YACL,UAAU,EAAE,UAA2C;YACvD,aAAa,EAAE,aAAiD;YAChE,UAAU,EAAE,UAA2C;YACvD,UAAU,EAAE,UAA2C;YACvD,OAAO,EAAE,OAAqC;YAC9C,MAAM,EAAE,MAAmC;YAC3C,4BAA4B;SAC7B,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,qBAAqB,CAAC,cAA8B;QAClD,MAAM,QAAQ,GAAuB,cAAc,CAAC;QACpD,kBAAkB;QAClB,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC9B,KAAK,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC9B,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC;YAChC,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC;YAChC,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,OAAO,CAAC,IAAY,EAAE,KAAa;QACjC,kBAAkB;QAClB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,oCAAoC;YACzD,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,oCAAoC;YACtE,OAAO,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oCAAoC;QACrF,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,WAAW,CAAC,WAA+C;QACzD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;QAC5F,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,oEAAoE;IACpE,wBAAwB,CACtB,IAAwB;QAExB,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,AAAD,EAAG,WAAW,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO,WAAmD,CAAC;IAC7D,CAAC;CACF;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AAErD,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC;IAC7C,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC;IAC5C,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC;IAC7C,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;IAC5C,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC;IAChD,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC;IAC/C,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC;IAChD,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC;IAC/C,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC;IAClD,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC;IACnD,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC;IAChD,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC;CAUhD,CAAC"}
|
|
@@ -8,7 +8,8 @@ export type PrimitiveDataType = 'u32' | 'i32' | 'f32' | 'f16';
|
|
|
8
8
|
* Signed data types describe signed and unsigned integers as well as floats of varying sizes
|
|
9
9
|
* @note These formats describe physical memory layouts in vertex and pixel formats, they are not used inside shaders
|
|
10
10
|
*/
|
|
11
|
-
export type
|
|
11
|
+
export type DataType = 'uint8' | 'sint8' | 'uint16' | 'sint16' | 'uint32' | 'sint32' | 'float16' | 'float32';
|
|
12
|
+
export type SignedDataType = DataType;
|
|
12
13
|
/**
|
|
13
14
|
* Normalized data types describe signed and unsigned integers as well as floats of varying sizes together with normalization behavior
|
|
14
15
|
* @note These formats describe physical memory layouts in vertex and pixel formats, they are not used inside shaders
|
|
@@ -17,16 +18,34 @@ export type SignedDataType = 'uint8' | 'sint8' | 'uint16' | 'sint16' | 'uint32'
|
|
|
17
18
|
*/
|
|
18
19
|
export type NormalizedDataType = SignedDataType | 'unorm8' | 'snorm8' | 'unorm16' | 'snorm16';
|
|
19
20
|
/** Returns information about a signed or normalized DataType */
|
|
20
|
-
export type DataTypeInfo = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
export type DataTypeInfo<T extends NormalizedDataType = NormalizedDataType> = {
|
|
22
|
+
/** The corresponding data type without normalization */
|
|
23
|
+
signedType: SignedDataTypeT<T>;
|
|
24
|
+
/** The primitive data type (what the shader sees) */
|
|
25
|
+
primitiveType: PrimitiveDataTypeT<T>;
|
|
26
|
+
/** @type number - Length in bytes of the data type */
|
|
27
|
+
byteLength: DataTypeByteLengthT<T>;
|
|
28
|
+
/** @type boolean - indicating whether the data type is normalized */
|
|
29
|
+
normalized: DataTypeIsNormalizedT<T>;
|
|
30
|
+
/** @type boolean - indicating whether the data type is integer */
|
|
31
|
+
integer: DataTypeIsIntegerT<T>;
|
|
32
|
+
/** @type boolean - indicating whether the data type is signed */
|
|
33
|
+
signed: DataTypeIsSignedT<T>;
|
|
27
34
|
};
|
|
28
|
-
/**
|
|
29
|
-
export type
|
|
30
|
-
/**
|
|
31
|
-
export type
|
|
35
|
+
/** @type the primitive data type seen by the shader */
|
|
36
|
+
export type PrimitiveDataTypeT<T extends NormalizedDataType> = T extends 'float32' ? 'f32' : T extends 'float16' ? 'f16' : T extends 'unorm8' | 'snorm8' | 'unorm16' | 'snorm16' ? 'f32' : T extends 'uint8' | 'uint16' | 'uint32' ? 'u32' : T extends 'sint8' | 'sint16' | 'sint32' ? 'i32' : never;
|
|
37
|
+
/** @type The signed data type representing a normalized data type */
|
|
38
|
+
export type SignedDataTypeT<T extends NormalizedDataType> = T extends 'unorm8' ? 'uint8' : T extends 'snorm8' ? 'sint8' : T extends 'unorm16' ? 'uint16' : T extends 'snorm16' ? 'sint16' : T extends NormalizedDataType ? T : never;
|
|
39
|
+
/** @type a number type that is is the length in bytes of the data type */
|
|
40
|
+
export type DataTypeByteLengthT<T extends NormalizedDataType = NormalizedDataType> = T extends 'uint8' | 'sint8' | 'unorm8' | 'snorm8' ? 1 : T extends 'uint16' | 'sint16' | 'unorm16' | 'snorm16' | 'float16' ? 2 : T extends 'uint32' | 'sint32' | 'float32' ? 4 : never;
|
|
41
|
+
/** @type a boolean type that is true if the data format is signed */
|
|
42
|
+
export type DataTypeIsSignedT<T extends NormalizedDataType = NormalizedDataType> = T extends 'sint8' | 'sint16' | 'sint32' ? true : false;
|
|
43
|
+
/** @type a boolean type that is true if the data format is a normalized format */
|
|
44
|
+
export type DataTypeIsNormalizedT<T extends NormalizedDataType = NormalizedDataType> = T extends SignedDataType ? false : true;
|
|
45
|
+
/** @type a boolean type that is true if the data format is an integer format */
|
|
46
|
+
export type DataTypeIsIntegerT<T extends NormalizedDataType = NormalizedDataType> = T extends 'uint8' | 'sint8' | 'uint16' | 'sint16' | 'uint32' | 'sint32' ? true : false;
|
|
47
|
+
/** @type A typed array constructor type appropriate to hold the actual values of a data type (i.e. integers for normalized data types) */
|
|
48
|
+
export type TypedArrayConstructorT<T extends NormalizedDataType> = T extends 'uint8' ? Uint8ArrayConstructor : T extends 'sint8' ? Int8ArrayConstructor : T extends 'unorm8' ? Uint8ArrayConstructor : T extends 'snorm8' ? Int8ArrayConstructor : T extends 'uint16' ? Uint16ArrayConstructor : T extends 'sint16' ? Int16ArrayConstructor : T extends 'unorm16' ? Uint16ArrayConstructor : T extends 'snorm16' ? Int16ArrayConstructor : T extends 'uint32' ? Uint32ArrayConstructor : T extends 'sint32' ? Int32ArrayConstructor : T extends 'float16' ? Uint16ArrayConstructor : T extends 'float32' ? Float32ArrayConstructor : never;
|
|
49
|
+
/** @type A typed array constructor appropriate to hold the logical values of a data type (i.e. floats for normalized data types) */
|
|
50
|
+
export type NormalizedTypedArrayConstructorT<T extends NormalizedDataType> = T extends 'unorm8' | 'snorm8' | 'unorm16' | 'snorm16' ? Float32ArrayConstructor : TypedArrayConstructorT<T>;
|
|
32
51
|
//# sourceMappingURL=data-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-types.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/data-types/data-types.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"data-types.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/data-types/data-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,6 @@
|
|
|
3
3
|
* @note ImageData can be used for contiguous 8 bit data via Uint8ClampedArray
|
|
4
4
|
*/
|
|
5
5
|
export type ExternalImage = ImageBitmap | ImageData | HTMLImageElement | HTMLVideoElement | VideoFrame | HTMLCanvasElement | OffscreenCanvas;
|
|
6
|
-
export type ExternalImageData = {
|
|
7
|
-
data: ArrayBuffer | SharedArrayBuffer | ArrayBufferView;
|
|
8
|
-
byteOffset?: number;
|
|
9
|
-
bytesPerRow?: number;
|
|
10
|
-
rowsPerImage?: number;
|
|
11
|
-
};
|
|
12
6
|
/** Check if data is an external image */
|
|
13
7
|
export declare function isExternalImage(data: unknown): data is ExternalImage;
|
|
14
8
|
/** Determine size (width and height) of provided image data */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-types.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/image-types/image-types.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,SAAS,GACT,gBAAgB,GAChB,gBAAgB,GAChB,UAAU,GACV,iBAAiB,GACjB,eAAe,CAAC;AAEpB,yCAAyC;AACzC,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAUpE;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAoBzF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-types.js","sourceRoot":"","sources":["../../../src/shadertypes/image-types/image-types.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAepC,yCAAyC;AACzC,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,OAAO,CACL,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,IAAI,YAAY,SAAS,CAAC;QAC/D,CAAC,OAAO,WAAW,KAAK,WAAW,IAAI,IAAI,YAAY,WAAW,CAAC;QACnE,CAAC,OAAO,gBAAgB,KAAK,WAAW,IAAI,IAAI,YAAY,gBAAgB,CAAC;QAC7E,CAAC,OAAO,gBAAgB,KAAK,WAAW,IAAI,IAAI,YAAY,gBAAgB,CAAC;QAC7E,CAAC,OAAO,UAAU,KAAK,WAAW,IAAI,IAAI,YAAY,UAAU,CAAC;QACjE,CAAC,OAAO,iBAAiB,KAAK,WAAW,IAAI,IAAI,YAAY,iBAAiB,CAAC;QAC/E,CAAC,OAAO,eAAe,KAAK,WAAW,IAAI,IAAI,YAAY,eAAe,CAAC,CAC5E,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,oBAAoB,CAAC,IAAmB;IACtD,IACE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,IAAI,YAAY,SAAS,CAAC;QAC/D,CAAC,OAAO,WAAW,KAAK,WAAW,IAAI,IAAI,YAAY,WAAW,CAAC;QACnE,CAAC,OAAO,iBAAiB,KAAK,WAAW,IAAI,IAAI,YAAY,iBAAiB,CAAC;QAC/E,CAAC,OAAO,eAAe,KAAK,WAAW,IAAI,IAAI,YAAY,eAAe,CAAC,EAC3E,CAAC;QACD,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,gBAAgB,KAAK,WAAW,IAAI,IAAI,YAAY,gBAAgB,EAAE,CAAC;QAChF,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAC,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,gBAAgB,KAAK,WAAW,IAAI,IAAI,YAAY,gBAAgB,EAAE,CAAC;QAChF,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAC,CAAC;IAC5D,CAAC;IACD,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QACpE,uDAAuD;QACvD,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAC,CAAC;IAChE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type PrimitiveDataType } from "../data-types/data-types.js";
|
|
2
|
+
import { type VariableShaderType, type AttributeShaderType, type VariableShaderTypeAlias, type AttributeShaderTypeAlias } from "./shader-types.js";
|
|
3
|
+
/** Information extracted from a VariableShaderType constant */
|
|
4
|
+
export type VariableShaderTypeInfo = {
|
|
5
|
+
type: PrimitiveDataType;
|
|
6
|
+
components: number;
|
|
7
|
+
};
|
|
8
|
+
/** Information extracted from a AttributeShaderType constant */
|
|
9
|
+
export type AttributeShaderTypeInfo = {
|
|
10
|
+
/** WGSL-style primitive data type, f32, i32, u32 */
|
|
11
|
+
primitiveType: PrimitiveDataType;
|
|
12
|
+
/** Whether this is a normalized integer (that must be used as float) */
|
|
13
|
+
components: 1 | 2 | 3 | 4;
|
|
14
|
+
/** Length in bytes of the data for one vertex */
|
|
15
|
+
byteLength?: number;
|
|
16
|
+
/** Whether this is for integer or float vert */
|
|
17
|
+
integer: boolean;
|
|
18
|
+
/** Whether this data type is signed */
|
|
19
|
+
signed: boolean;
|
|
20
|
+
};
|
|
21
|
+
/** Split a uniform type string into type and components */
|
|
22
|
+
export declare function getVariableShaderTypeInfo(format: VariableShaderType | VariableShaderTypeAlias): VariableShaderTypeInfo;
|
|
23
|
+
/** Decodes a vertex type, returning byte length and flags (integer, signed, normalized) */
|
|
24
|
+
export declare function getAttributeShaderTypeInfo(attributeType: AttributeShaderType | AttributeShaderTypeAlias): AttributeShaderTypeInfo;
|
|
25
|
+
export declare class ShaderTypeDecoder {
|
|
26
|
+
getVariableShaderTypeInfo(format: VariableShaderType | VariableShaderTypeAlias): VariableShaderTypeInfo;
|
|
27
|
+
getAttributeShaderTypeInfo(attributeType: AttributeShaderType | AttributeShaderTypeAlias): AttributeShaderTypeInfo;
|
|
28
|
+
makeShaderAttributeType(primitiveType: PrimitiveDataType, components: 1 | 2 | 3 | 4): AttributeShaderType;
|
|
29
|
+
resolveAttributeShaderTypeAlias(alias: AttributeShaderTypeAlias | AttributeShaderType): AttributeShaderType;
|
|
30
|
+
resolveVariableShaderTypeAlias(alias: VariableShaderTypeAlias | VariableShaderType): VariableShaderType;
|
|
31
|
+
}
|
|
32
|
+
export declare function makeShaderAttributeType(primitiveType: PrimitiveDataType, components: 1 | 2 | 3 | 4): AttributeShaderType;
|
|
33
|
+
export declare function resolveAttributeShaderTypeAlias(alias: AttributeShaderTypeAlias | AttributeShaderType): AttributeShaderType;
|
|
34
|
+
export declare function resolveVariableShaderTypeAlias(alias: VariableShaderTypeAlias | VariableShaderType): VariableShaderType;
|
|
35
|
+
/** Decoder for luma.gl shader types */
|
|
36
|
+
export declare const shaderTypeDecoder: ShaderTypeDecoder;
|
|
37
|
+
/** Predeclared aliases @see https://www.w3.org/TR/WGSL/#vector-types */
|
|
38
|
+
export declare const WGSL_ATTRIBUTE_TYPE_ALIAS_MAP: Record<AttributeShaderTypeAlias, AttributeShaderType>;
|
|
39
|
+
/** @todo These tables are quite big, consider parsing alias strings instead */
|
|
40
|
+
export declare const WGSL_VARIABLE_TYPE_ALIAS_MAP: Record<VariableShaderTypeAlias, VariableShaderType>;
|
|
41
|
+
//# sourceMappingURL=shader-type-decoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader-type-decoder.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/shader-types/shader-type-decoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,iBAAiB,EAAC,oCAAiC;AAChE,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC9B,0BAAuB;AAExB,+DAA+D;AAC/D,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,uBAAuB,GAAG;IACpC,oDAAoD;IACpD,aAAa,EAAE,iBAAiB,CAAC;IACjC,wEAAwE;IACxE,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,2DAA2D;AAC3D,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,GACnD,sBAAsB,CAOxB;AAED,2FAA2F;AAC3F,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,mBAAmB,GAAG,wBAAwB,GAC5D,uBAAuB,CAkBzB;AAED,qBAAa,iBAAiB;IAC5B,yBAAyB,CACvB,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,GACnD,sBAAsB;IAIzB,0BAA0B,CACxB,aAAa,EAAE,mBAAmB,GAAG,wBAAwB,GAC5D,uBAAuB;IAI1B,uBAAuB,CACrB,aAAa,EAAE,iBAAiB,EAChC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GACxB,mBAAmB;IAItB,+BAA+B,CAC7B,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,GACpD,mBAAmB;IAItB,8BAA8B,CAC5B,KAAK,EAAE,uBAAuB,GAAG,kBAAkB,GAClD,kBAAkB;CAGtB;AAED,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,iBAAiB,EAChC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GACxB,mBAAmB,CAErB;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,GACpD,mBAAmB,CAErB;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,uBAAuB,GAAG,kBAAkB,GAClD,kBAAkB,CAEpB;AAED,uCAAuC;AACvC,eAAO,MAAM,iBAAiB,mBAA0B,CAAC;AA6FzD,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,wBAAwB,EAAE,mBAAmB,CAe7F,CAAC;AAEJ,+EAA+E;AAC/E,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,CAoD5F,CAAC"}
|
package/dist/shadertypes/{data-types/decode-shader-types.js → shader-types/shader-type-decoder.js}
RENAMED
|
@@ -29,6 +29,23 @@ export function getAttributeShaderTypeInfo(attributeType) {
|
|
|
29
29
|
signed
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
+
export class ShaderTypeDecoder {
|
|
33
|
+
getVariableShaderTypeInfo(format) {
|
|
34
|
+
return getVariableShaderTypeInfo(format);
|
|
35
|
+
}
|
|
36
|
+
getAttributeShaderTypeInfo(attributeType) {
|
|
37
|
+
return getAttributeShaderTypeInfo(attributeType);
|
|
38
|
+
}
|
|
39
|
+
makeShaderAttributeType(primitiveType, components) {
|
|
40
|
+
return makeShaderAttributeType(primitiveType, components);
|
|
41
|
+
}
|
|
42
|
+
resolveAttributeShaderTypeAlias(alias) {
|
|
43
|
+
return resolveAttributeShaderTypeAlias(alias);
|
|
44
|
+
}
|
|
45
|
+
resolveVariableShaderTypeAlias(alias) {
|
|
46
|
+
return resolveVariableShaderTypeAlias(alias);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
32
49
|
export function makeShaderAttributeType(primitiveType, components) {
|
|
33
50
|
return components === 1 ? primitiveType : `vec${components}<${primitiveType}>`;
|
|
34
51
|
}
|
|
@@ -38,6 +55,8 @@ export function resolveAttributeShaderTypeAlias(alias) {
|
|
|
38
55
|
export function resolveVariableShaderTypeAlias(alias) {
|
|
39
56
|
return WGSL_VARIABLE_TYPE_ALIAS_MAP[alias] || alias;
|
|
40
57
|
}
|
|
58
|
+
/** Decoder for luma.gl shader types */
|
|
59
|
+
export const shaderTypeDecoder = new ShaderTypeDecoder();
|
|
41
60
|
// TABLES
|
|
42
61
|
const PRIMITIVE_TYPE_SIZES = {
|
|
43
62
|
f32: 4,
|
|
@@ -139,7 +158,18 @@ export const WGSL_ATTRIBUTE_TYPE_ALIAS_MAP = {
|
|
|
139
158
|
};
|
|
140
159
|
/** @todo These tables are quite big, consider parsing alias strings instead */
|
|
141
160
|
export const WGSL_VARIABLE_TYPE_ALIAS_MAP = {
|
|
142
|
-
|
|
161
|
+
vec2i: 'vec2<i32>',
|
|
162
|
+
vec3i: 'vec3<i32>',
|
|
163
|
+
vec4i: 'vec4<i32>',
|
|
164
|
+
vec2u: 'vec2<u32>',
|
|
165
|
+
vec3u: 'vec3<u32>',
|
|
166
|
+
vec4u: 'vec4<u32>',
|
|
167
|
+
vec2f: 'vec2<f32>',
|
|
168
|
+
vec3f: 'vec3<f32>',
|
|
169
|
+
vec4f: 'vec4<f32>',
|
|
170
|
+
vec2h: 'vec2<f16>',
|
|
171
|
+
vec3h: 'vec3<f16>',
|
|
172
|
+
vec4h: 'vec4<f16>',
|
|
143
173
|
mat2x2f: 'mat2x2<f32>',
|
|
144
174
|
mat2x3f: 'mat2x3<f32>',
|
|
145
175
|
mat2x4f: 'mat2x4<f32>',
|
|
@@ -177,4 +207,4 @@ export const WGSL_VARIABLE_TYPE_ALIAS_MAP = {
|
|
|
177
207
|
mat4x3h: 'mat4x3<f16>',
|
|
178
208
|
mat4x4h: 'mat4x4<f16>'
|
|
179
209
|
};
|
|
180
|
-
//# sourceMappingURL=
|
|
210
|
+
//# sourceMappingURL=shader-type-decoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader-type-decoder.js","sourceRoot":"","sources":["../../../src/shadertypes/shader-types/shader-type-decoder.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AA8BpC,2DAA2D;AAC3D,MAAM,UAAU,yBAAyB,CACvC,MAAoD;IAEpD,MAAM,cAAc,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,0BAA0B,CACxC,aAA6D;IAE7D,MAAM,qBAAqB,GAAG,+BAA+B,CAAC,aAAa,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC;IAC5C,MAAM,OAAO,GAAY,aAAa,KAAK,KAAK,IAAI,aAAa,KAAK,KAAK,CAAC;IAC5E,MAAM,MAAM,GAAY,aAAa,KAAK,KAAK,CAAC;IAEhD,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;IACpE,OAAO;QACL,aAAa;QACb,UAAU;QACV,UAAU;QACV,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,yBAAyB,CACvB,MAAoD;QAEpD,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,0BAA0B,CACxB,aAA6D;QAE7D,OAAO,0BAA0B,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,uBAAuB,CACrB,aAAgC,EAChC,UAAyB;QAEzB,OAAO,uBAAuB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,+BAA+B,CAC7B,KAAqD;QAErD,OAAO,+BAA+B,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,8BAA8B,CAC5B,KAAmD;QAEnD,OAAO,8BAA8B,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,UAAU,uBAAuB,CACrC,aAAgC,EAChC,UAAyB;IAEzB,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,UAAU,IAAI,aAAa,GAAG,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAAqD;IAErD,OAAO,6BAA6B,CAAC,KAAiC,CAAC,IAAI,KAAK,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAmD;IAEnD,OAAO,4BAA4B,CAAC,KAAgC,CAAC,IAAI,KAAK,CAAC;AACjF,CAAC;AAED,uCAAuC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAEzD,SAAS;AAET,MAAM,oBAAoB,GAAqC;IAC7D,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,mBAAmB;CACpB,CAAC;AAEF,8FAA8F;AAC9F,MAAM,SAAS,GAAgF;IAC7F,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACf,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACf,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACf,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACf,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;CACxB,CAAC;AAEF,8EAA8E;AAC9E,MAAM,eAAe,GAA8E;IACjG,GAAG,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACjC,GAAG,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACjC,GAAG,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACjC,GAAG,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACjC,qDAAqD;IACrD,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IACzC,WAAW,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAEzC,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAC5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAC5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAE5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAC5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAC5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAE5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAC5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAC5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAE5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAC5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAC;IAC3C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;IAC5C,aAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC;CAC7C,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,6BAA6B,GACxC;IACE,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,8BAA8B;IAC9B,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEJ,+EAA+E;AAC/E,MAAM,CAAC,MAAM,4BAA4B,GAAwD;IAC/F,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IAEtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IAEtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IAEtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;CACvB,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { PrimitiveDataType } from "../data-types/data-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* @type the type of an attribute as defined in the shader source code.
|
|
4
|
+
* @note This is a subset of shader variable types
|
|
5
|
+
* @note Buffers with various `VertexFormat`s can be supplied for each type, GPU will convert them at runtime/
|
|
6
|
+
*/
|
|
7
|
+
export type AttributeShaderType = 'i32' | 'u32' | 'f32' | 'f16' | `vec2<${PrimitiveDataType}>` | `vec3<${PrimitiveDataType}>` | `vec4<${PrimitiveDataType}>`;
|
|
8
|
+
/**
|
|
9
|
+
* @type Describes the type of a variable that can declared in shader source code.
|
|
10
|
+
* @note Uniforms can be declared using these types
|
|
11
|
+
* @note Uniforms can be of a wider range of types than attributes.
|
|
12
|
+
* @note to WebGL users: "bindings" (textures, samplers, and uniform buffers) are considered "bindings", not shader variables/uniforms
|
|
13
|
+
*/
|
|
14
|
+
export type VariableShaderType = 'i32' | 'u32' | 'f32' | 'f16' | `vec2<${PrimitiveDataType}>` | `vec3<${PrimitiveDataType}>` | `vec4<${PrimitiveDataType}>` | `mat2x2<${PrimitiveDataType}>` | `mat2x3<${PrimitiveDataType}>` | `mat2x4<${PrimitiveDataType}>` | `mat3x2<${PrimitiveDataType}>` | `mat3x3<${PrimitiveDataType}>` | `mat3x4<${PrimitiveDataType}>` | `mat4x2<${PrimitiveDataType}>` | `mat4x3<${PrimitiveDataType}>` | `mat4x4<${PrimitiveDataType}>`;
|
|
15
|
+
/** @type A composite shader type can include structs and arrays, recursively */
|
|
16
|
+
export type CompositeShaderType = VariableShaderType | StructShaderType | ArrayShaderType;
|
|
17
|
+
/** @type Represents a struct in WGSL */
|
|
18
|
+
export type StructShaderType = {
|
|
19
|
+
[memberName: string]: CompositeShaderType;
|
|
20
|
+
};
|
|
21
|
+
/** @type Represents an array in WGSL */
|
|
22
|
+
export type ArrayShaderType = readonly [type: CompositeShaderType, length: number];
|
|
23
|
+
/** @type Shorthand type aliases recognized by WGSL */
|
|
24
|
+
export type AttributeShaderTypeAlias = keyof AttributeShaderTypeAliasMap;
|
|
25
|
+
/** @note work around for lack of type narrowing in conditional generics */
|
|
26
|
+
type AttributeShaderTypeAliasMap = {
|
|
27
|
+
vec2f: 'vec2<f32>';
|
|
28
|
+
vec3f: 'vec3<f32>';
|
|
29
|
+
vec4f: 'vec4<f32>';
|
|
30
|
+
vec2i: 'vec2<i32>';
|
|
31
|
+
vec3i: 'vec3<i32>';
|
|
32
|
+
vec4i: 'vec4<i32>';
|
|
33
|
+
vec2u: 'vec2<u32>';
|
|
34
|
+
vec3u: 'vec3<u32>';
|
|
35
|
+
vec4u: 'vec4<u32>';
|
|
36
|
+
vec2h: 'vec2<f16>';
|
|
37
|
+
vec3h: 'vec3<f16>';
|
|
38
|
+
vec4h: 'vec4<f16>';
|
|
39
|
+
};
|
|
40
|
+
/** @type Shorthand type aliases recognized by WGSL */
|
|
41
|
+
export type VariableShaderTypeAlias = keyof VariableShaderTypeAliasMap;
|
|
42
|
+
/** @note work around for lack of type narrowing in conditional generics */
|
|
43
|
+
type VariableShaderTypeAliasMap = {
|
|
44
|
+
vec2f: 'vec2<f32>';
|
|
45
|
+
vec3f: 'vec3<f32>';
|
|
46
|
+
vec4f: 'vec4<f32>';
|
|
47
|
+
vec2i: 'vec2<i32>';
|
|
48
|
+
vec3i: 'vec3<i32>';
|
|
49
|
+
vec4i: 'vec4<i32>';
|
|
50
|
+
vec2u: 'vec2<u32>';
|
|
51
|
+
vec3u: 'vec3<u32>';
|
|
52
|
+
vec4u: 'vec4<u32>';
|
|
53
|
+
vec2h: 'vec2<f16>';
|
|
54
|
+
vec3h: 'vec3<f16>';
|
|
55
|
+
vec4h: 'vec4<f16>';
|
|
56
|
+
mat2x2f: 'mat2x2<f32>';
|
|
57
|
+
mat2x3f: 'mat2x3<f32>';
|
|
58
|
+
mat2x4f: 'mat2x4<f32>';
|
|
59
|
+
mat3x2f: 'mat3x2<f32>';
|
|
60
|
+
mat3x3f: 'mat3x3<f32>';
|
|
61
|
+
mat3x4f: 'mat3x4<f32>';
|
|
62
|
+
mat4x2f: 'mat4x2<f32>';
|
|
63
|
+
mat4x3f: 'mat4x3<f32>';
|
|
64
|
+
mat4x4f: 'mat4x4<f32>';
|
|
65
|
+
mat2x2i: 'mat2x2<i32>';
|
|
66
|
+
mat2x3i: 'mat2x3<i32>';
|
|
67
|
+
mat2x4i: 'mat2x4<i32>';
|
|
68
|
+
mat3x2i: 'mat3x2<i32>';
|
|
69
|
+
mat3x3i: 'mat3x3<i32>';
|
|
70
|
+
mat3x4i: 'mat3x4<i32>';
|
|
71
|
+
mat4x2i: 'mat4x2<i32>';
|
|
72
|
+
mat4x3i: 'mat4x3<i32>';
|
|
73
|
+
mat4x4i: 'mat4x4<i32>';
|
|
74
|
+
mat2x2u: 'mat2x2<u32>';
|
|
75
|
+
mat2x3u: 'mat2x3<u32>';
|
|
76
|
+
mat2x4u: 'mat2x4<u32>';
|
|
77
|
+
mat3x2u: 'mat3x2<u32>';
|
|
78
|
+
mat3x3u: 'mat3x3<u32>';
|
|
79
|
+
mat3x4u: 'mat3x4<u32>';
|
|
80
|
+
mat4x2u: 'mat4x2<u32>';
|
|
81
|
+
mat4x3u: 'mat4x3<u32>';
|
|
82
|
+
mat4x4u: 'mat4x4<u32>';
|
|
83
|
+
mat2x2h: 'mat2x2<f16>';
|
|
84
|
+
mat2x3h: 'mat2x3<f16>';
|
|
85
|
+
mat2x4h: 'mat2x4<f16>';
|
|
86
|
+
mat3x2h: 'mat3x2<f16>';
|
|
87
|
+
mat3x3h: 'mat3x3<f16>';
|
|
88
|
+
mat3x4h: 'mat3x4<f16>';
|
|
89
|
+
mat4x2h: 'mat4x2<f16>';
|
|
90
|
+
mat4x3h: 'mat4x3<f16>';
|
|
91
|
+
mat4x4h: 'mat4x4<f16>';
|
|
92
|
+
};
|
|
93
|
+
/** @type The unaliased type */
|
|
94
|
+
export type AttributeShaderTypeT<T extends AttributeShaderTypeAlias | AttributeShaderType> = T extends AttributeShaderTypeAlias ? AttributeShaderTypeAliasMap[T] : T;
|
|
95
|
+
/** @type The unaliased type */
|
|
96
|
+
export type VariableShaderTypeT<T extends VariableShaderType | keyof VariableShaderTypeAliasMap> = T extends VariableShaderTypeAlias ? VariableShaderTypeAliasMap[T] : T;
|
|
97
|
+
type TypeOfAliasSuffix<T extends string> = T extends 'f' ? 'f32' : T extends 'i' ? 'i32' : T extends 'u' ? 'u32' : T extends 'h' ? 'f16' : never;
|
|
98
|
+
export type AttributeShaderTypeAliasT<T extends AttributeShaderTypeAlias> = T extends `vec2${infer S}` ? `vec2<${TypeOfAliasSuffix<S>}>` : T extends `vec3${infer S}` ? `vec3<${TypeOfAliasSuffix<S>}>` : T extends `vec4${infer S}` ? `vec4<${TypeOfAliasSuffix<S>}>` : never;
|
|
99
|
+
export type VariableShaderTypeAliasT<T extends VariableShaderTypeAlias> = T extends `vec2${infer S}` ? `vec2<${TypeOfAliasSuffix<S>}>` : T extends `vec3${infer S}` ? `vec3<${TypeOfAliasSuffix<S>}>` : T extends `vec4${infer S}` ? `vec4<${TypeOfAliasSuffix<S>}>` : T extends `mat2x2${infer S}` ? `mat2x2<${TypeOfAliasSuffix<S>}>` : T extends `mat2x3${infer S}` ? `mat2x3<${TypeOfAliasSuffix<S>}>` : T extends `mat2x4${infer S}` ? `mat2x4<${TypeOfAliasSuffix<S>}>` : T extends `mat3x2${infer S}` ? `mat3x2<${TypeOfAliasSuffix<S>}>` : T extends `mat3x3${infer S}` ? `mat3x3<${TypeOfAliasSuffix<S>}>` : T extends `mat3x4${infer S}` ? `mat3x4<${TypeOfAliasSuffix<S>}>` : T extends `mat4x2${infer S}` ? `mat4x2<${TypeOfAliasSuffix<S>}>` : T extends `mat4x3${infer S}` ? `mat4x3<${TypeOfAliasSuffix<S>}>` : T extends `mat4x4${infer S}` ? `mat4x4<${TypeOfAliasSuffix<S>}>` : never;
|
|
100
|
+
export {};
|
|
101
|
+
//# sourceMappingURL=shader-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader-types.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/shader-types/shader-types.ts"],"names":[],"mappings":"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,CAAC,EAAE,GAAG,UAAU,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAChE,CAAC,SAAS,SAAS,MAAM,CAAC,EAAE,GAAG,UAAU,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAChE,CAAC,SAAS,SAAS,MAAM,CAAC,EAAE,GAAG,UAAU,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAChE,CAAC,SAAS,SAAS,MAAM,CAAC,EAAE,GAAG,UAAU,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAChE,CAAC,SAAS,SAAS,MAAM,CAAC,EAAE,GAAG,UAAU,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAChE,CAAC,SAAS,SAAS,MAAM,CAAC,EAAE,GAAG,UAAU,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAChE,CAAC,SAAS,SAAS,MAAM,CAAC,EAAE,GAAG,UAAU,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAChE,CAAC,SAAS,SAAS,MAAM,CAAC,EAAE,GAAG,UAAU,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAChE,CAAC,SAAS,SAAS,MAAM,CAAC,EAAE,GAAG,UAAU,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAChE,KAAK,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
export {};
|
|
5
|
+
// : T extends `vec2<${infer S}>`
|
|
6
|
+
// ? `vec2<${S}>`
|
|
7
|
+
// : T extends `vec3<${infer S}>`
|
|
8
|
+
// ? `vec3<${S}>`
|
|
9
|
+
// : T extends `vec4<${infer S}>`
|
|
10
|
+
// ? `vec4<${S}>`
|
|
11
|
+
// : T extends `mat2x2<${infer S}>`
|
|
12
|
+
// ? `mat2x2<${S}>`
|
|
13
|
+
// : T extends `mat2x3<${infer S}>`
|
|
14
|
+
// ? `mat2x3<${S}>`
|
|
15
|
+
// : T extends `mat2x4<${infer S}>`
|
|
16
|
+
// ? `mat2x4<${S}>`
|
|
17
|
+
// : T extends `mat3x2<${infer S}>`
|
|
18
|
+
// ? `mat3x2<${S}>`
|
|
19
|
+
// : T extends `mat3x3<${infer S}>`
|
|
20
|
+
// ? `mat3x3<${S}>`
|
|
21
|
+
// : T extends `mat3x4<${infer S}>`
|
|
22
|
+
// ? `mat3x4<${S}>`
|
|
23
|
+
// : T extends `mat4x2<${infer S}>`
|
|
24
|
+
// ? `mat4x2<${S}>`
|
|
25
|
+
// : T extends `mat4x3<${infer S}>`
|
|
26
|
+
// ? `mat4x3<${S}>`
|
|
27
|
+
// : T extends `mat4x4<${infer S}>`
|
|
28
|
+
// ? `mat4x4<${S}>`
|
|
29
|
+
// : never;
|
|
30
|
+
//# sourceMappingURL=shader-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader-types.js","sourceRoot":"","sources":["../../../src/shadertypes/shader-types/shader-types.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;;AAoLpC,iCAAiC;AACjC,mBAAmB;AACnB,mCAAmC;AACnC,qBAAqB;AACrB,qCAAqC;AACrC,uBAAuB;AACvB,yCAAyC;AACzC,2BAA2B;AAC3B,2CAA2C;AAC3C,6BAA6B;AAC7B,6CAA6C;AAC7C,+BAA+B;AAC/B,+CAA+C;AAC/C,iCAAiC;AACjC,iDAAiD;AACjD,mCAAmC;AACnC,mDAAmD;AACnD,qCAAqC;AACrC,qDAAqD;AACrD,uCAAuC;AACvC,uDAAuD;AACvD,yCAAyC;AACzC,yDAAyD;AACzD,2CAA2C;AAC3C,mCAAmC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pixel-utils.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/pixel-utils.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG;IACtB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sNAAsN;IACtN,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BE;AAEF,wBAAgB,SAAS,CACvB,SAAS,EAAE,SAAS,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAC/C,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CA6BlC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BE;AACF,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAChD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACtC,IAAI,CAUN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,MAAM,CA0BR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,IAAI,CAkCN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pixel-utils.js","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/pixel-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ export declare class TextureFormatDecoder {
|
|
|
27
27
|
/** Computes the memory layout for a texture, in particular including row byte alignment */
|
|
28
28
|
computeMemoryLayout(opts: TextureMemoryLayoutOptions): TextureMemoryLayout;
|
|
29
29
|
}
|
|
30
|
+
/** Decoder for luma.gl texture types */
|
|
30
31
|
export declare const textureFormatDecoder: TextureFormatDecoder;
|
|
31
32
|
/**
|
|
32
33
|
* Decodes a texture format, returning e.g. attatchment type, components, byte length and flags (integer, signed, normalized)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-format-decoder.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/texture-format-decoder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EAC1B,6BAA0B;AAa3B,4CAA4C;AAC5C,MAAM,MAAM,0BAA0B,GAAG;IACvC,gCAAgC;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,8DAA8D;AAC9D,qBAAa,oBAAoB;IAC/B,0CAA0C;IAC1C,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,kBAAkB;IAI5D,qDAAqD;IACrD,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,yBAAyB;IAI1E,+CAA+C;IAC/C,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,uBAAuB;IAItE,wIAAwI;IACxI,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB;IAIjD,oGAAoG;IACpG,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,yBAAyB;IAIjE,2FAA2F;IAC3F,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,mBAAmB;CAG3E;AAED,wCAAwC;AACxC,eAAO,MAAM,oBAAoB,sBAA6B,CAAC;AAqE/D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAiE7E"}
|