@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,7 +1,7 @@
|
|
|
1
1
|
// luma.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import {
|
|
4
|
+
import { dataTypeDecoder } from "../data-types/data-type-decoder.js";
|
|
5
5
|
import { getTextureFormatDefinition } from "./texture-format-table.js";
|
|
6
6
|
const RGB_FORMAT_REGEX = /^(r|rg|rgb|rgba|bgra)([0-9]*)([a-z]*)(-srgb)?(-webgl)?$/;
|
|
7
7
|
const COLOR_FORMAT_PREFIXES = ['rgb', 'rgba', 'bgra'];
|
|
@@ -37,6 +37,7 @@ export class TextureFormatDecoder {
|
|
|
37
37
|
return computeTextureMemoryLayout(opts);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
/** Decoder for luma.gl texture types */
|
|
40
41
|
export const textureFormatDecoder = new TextureFormatDecoder();
|
|
41
42
|
// HELPERS - MEMORY LAYOUT
|
|
42
43
|
/** Get the memory layout of a texture */
|
|
@@ -102,11 +103,11 @@ export function getTextureFormatInfo(format) {
|
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
// Fill in missing information that can be derived from the format string
|
|
105
|
-
const matches = RGB_FORMAT_REGEX.exec(format);
|
|
106
|
+
const matches = !formatInfo.packed ? RGB_FORMAT_REGEX.exec(format) : null;
|
|
106
107
|
if (matches) {
|
|
107
108
|
const [, channels, length, type, srgb, suffix] = matches;
|
|
108
109
|
const dataType = `${type}${length}`;
|
|
109
|
-
const decodedType = getDataTypeInfo(dataType);
|
|
110
|
+
const decodedType = dataTypeDecoder.getDataTypeInfo(dataType);
|
|
110
111
|
const bits = decodedType.byteLength * 8;
|
|
111
112
|
const components = (channels?.length ?? 1);
|
|
112
113
|
const bitsPerChannel = [
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-format-decoder.js","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/texture-format-decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type TextureFormat, type TextureFormatDepthStencil, type TextureFormatCompressed } from "./texture-formats.js";
|
|
2
|
+
/** @type data type for a texture format */
|
|
3
|
+
export type TextureFormatDataTypeT<T extends TextureFormat> = T extends TextureFormatUint8 ? 'uint8' : T extends TextureFormatSint8 ? 'sint8' : T extends TextureFormatUnorm8 ? 'unorm8' : T extends TextureFormatSnorm8 ? 'snorm8' : T extends TextureFormatUint16 ? 'uint16' : T extends TextureFormatSint16 ? 'sint16' : T extends TextureFormatUnorm16 ? 'unorm16' : T extends TextureFormatSnorm16 ? 'snorm16' : T extends TextureFormatUint32 ? 'uint32' : T extends TextureFormatSint32 ? 'sint32' : T extends TextureFormatFloat16 ? 'float16' : T extends TextureFormatFloat32 ? 'float32' : T extends TextureFormatDepthStencil ? 'uint32' : T extends TextureFormatCompressed ? 'uint8' : T extends TextureFormatPacked16 ? 'uint16' : T extends TextureFormatPacked32 ? 'uint32' : never;
|
|
4
|
+
/** @type A numeric array of length matching the number of components in the texture format */
|
|
5
|
+
export type TextureFormatPixelT<T extends TextureFormat> = TextureFormatPackedComponentsT<T> extends 1 ? [number] : TextureFormatPackedComponentsT<T> extends 2 ? [number, number] : TextureFormatPackedComponentsT<T> extends 3 ? [number, number, number] : TextureFormatPackedComponentsT<T> extends 4 ? [number, number, number, number] : never;
|
|
6
|
+
/**
|
|
7
|
+
* @type number - the number of components in a texture format
|
|
8
|
+
* @note packed formats have only one component. Use TextureFormatPackedComponentsT
|
|
9
|
+
*/
|
|
10
|
+
export type TextureFormatComponentsT<T extends TextureFormat> = T extends TextureFormatR | TextureFormatPackedRGB | TextureFormatPackedRGBA ? 1 : T extends TextureFormatRG ? 2 : T extends TextureFormatRGB ? 3 : T extends TextureFormatRGBA ? 4 : never;
|
|
11
|
+
/** @type number - the number of components in a packed texture format */
|
|
12
|
+
export type TextureFormatPackedComponentsT<T extends TextureFormat> = T extends TextureFormatR ? 1 : T extends TextureFormatRG ? 2 : T extends TextureFormatRGB | TextureFormatPackedRGB ? 3 : T extends TextureFormatRGBA | TextureFormatPackedRGBA ? 4 : never;
|
|
13
|
+
type TextureFormatR = 'r8uint' | 'r8sint' | 'r8unorm' | 'r8snorm' | 'r16unorm' | 'r16snorm' | 'r16uint' | 'r16sint' | 'r16float' | 'r32uint' | 'r32sint' | 'r32float';
|
|
14
|
+
type TextureFormatRG = 'rg8unorm' | 'rg8snorm' | 'rg8uint' | 'rg8sint' | 'rg16unorm' | 'rg16snorm' | 'rg16uint' | 'rg16sint' | 'rg16float' | 'rg32uint' | 'rg32sint' | 'rg32float';
|
|
15
|
+
type TextureFormatRGB = 'rgb8unorm-webgl' | 'rgb8snorm-webgl' | 'rgb16unorm-webgl' | 'rgb16snorm-webgl' | 'rgb32float-webgl';
|
|
16
|
+
type TextureFormatRGBA = 'rgba8uint' | 'rgba8unorm' | 'rgba8unorm-srgb' | 'rgba8snorm' | 'bgra8unorm' | 'bgra8unorm-srgb' | 'rgba8sint' | 'rgba16unorm' | 'rgba16snorm' | 'rgba16uint' | 'rgba16sint' | 'rgba16float' | 'rgba32uint' | 'rgba32sint' | 'rgba32float';
|
|
17
|
+
type TextureFormatPackedRGB = 'rgb565unorm-webgl' | 'rgb9e5ufloat' | 'rg11b10ufloat';
|
|
18
|
+
type TextureFormatPackedRGBA = 'rgba4unorm-webgl' | 'rgb5a1unorm-webgl' | 'rgb10a2unorm' | 'rgb10a2uint';
|
|
19
|
+
type TextureFormatUnorm8 = 'r8unorm' | 'rg8unorm' | 'rgb8unorm-webgl' | 'rgba8unorm' | 'rgba8unorm-srgb' | 'bgra8unorm' | 'bgra8unorm-srgb';
|
|
20
|
+
type TextureFormatSnorm8 = 'r8snorm' | 'rg8snorm' | 'rgb8snorm-webgl' | 'rgba8snorm';
|
|
21
|
+
type TextureFormatUint8 = 'r8uint' | 'rg8uint' | 'rgba8uint';
|
|
22
|
+
type TextureFormatSint8 = 'r8sint' | 'rg8sint' | 'rgba8sint';
|
|
23
|
+
type TextureFormatUnorm16 = 'r16unorm' | 'rg16unorm' | 'rgb16unorm-webgl' | 'rgba16unorm';
|
|
24
|
+
type TextureFormatSnorm16 = 'r16snorm' | 'rg16snorm' | 'rgb16snorm-webgl' | 'rgba16snorm';
|
|
25
|
+
type TextureFormatUint16 = 'r16uint' | 'rg16uint' | 'rgba16uint';
|
|
26
|
+
type TextureFormatSint16 = 'r16sint' | 'rg16sint' | 'rgba16sint';
|
|
27
|
+
type TextureFormatFloat16 = 'r16float' | 'rg16float' | 'rgba16float';
|
|
28
|
+
type TextureFormatUint32 = 'r32uint' | 'rg32uint' | 'rgba32uint';
|
|
29
|
+
type TextureFormatSint32 = 'r32sint' | 'rg32sint' | 'rgba32sint';
|
|
30
|
+
type TextureFormatFloat32 = 'r32float' | 'rg32float' | 'rgb32float-webgl' | 'rgba32float';
|
|
31
|
+
type TextureFormatPacked16 = 'rgba4unorm-webgl' | 'rgb565unorm-webgl' | 'rgb5a1unorm-webgl';
|
|
32
|
+
type TextureFormatPacked32 = 'rgb9e5ufloat' | 'rg11b10ufloat' | 'rgb10a2unorm' | 'rgb10a2uint';
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=texture-format-generics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-format-generics.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/texture-format-generics.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC7B,6BAA0B;AAE3B,2CAA2C;AAC3C,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,kBAAkB,GACtF,OAAO,GACP,CAAC,SAAS,kBAAkB,GAC1B,OAAO,GACP,CAAC,SAAS,mBAAmB,GAC3B,QAAQ,GACR,CAAC,SAAS,mBAAmB,GAC3B,QAAQ,GACR,CAAC,SAAS,mBAAmB,GAC3B,QAAQ,GACR,CAAC,SAAS,mBAAmB,GAC3B,QAAQ,GACR,CAAC,SAAS,oBAAoB,GAC5B,SAAS,GACT,CAAC,SAAS,oBAAoB,GAC5B,SAAS,GACT,CAAC,SAAS,mBAAmB,GAC3B,QAAQ,GACR,CAAC,SAAS,mBAAmB,GAC3B,QAAQ,GACR,CAAC,SAAS,oBAAoB,GAC5B,SAAS,GACT,CAAC,SAAS,oBAAoB,GAC5B,SAAS,GACT,CAAC,SAAS,yBAAyB,GACjC,QAAQ,GACR,CAAC,SAAS,uBAAuB,GAC/B,OAAO,GACP,CAAC,SAAS,qBAAqB,GAC7B,QAAQ,GACR,CAAC,SAAS,qBAAqB,GAC7B,QAAQ,GACR,KAAK,CAAC;AAExC,8FAA8F;AAC9F,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,aAAa,IACrD,8BAA8B,CAAC,CAAC,CAAC,SAAS,CAAC,GACvC,CAAC,MAAM,CAAC,GACR,8BAA8B,CAAC,CAAC,CAAC,SAAS,CAAC,GACzC,CAAC,MAAM,EAAE,MAAM,CAAC,GAChB,8BAA8B,CAAC,CAAC,CAAC,SAAS,CAAC,GACzC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACxB,8BAA8B,CAAC,CAAC,CAAC,SAAS,CAAC,GACzC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC,KAAK,CAAC;AAElB;;;GAGG;AACH,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAC7D,cAAc,GACd,sBAAsB,GACtB,uBAAuB,GACvB,CAAC,GACD,CAAC,SAAS,eAAe,GACvB,CAAC,GACD,CAAC,SAAS,gBAAgB,GACxB,CAAC,GACD,CAAC,SAAS,iBAAiB,GACzB,CAAC,GACD,KAAK,CAAC;AAEhB,yEAAyE;AACzE,MAAM,MAAM,8BAA8B,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,cAAc,GAC1F,CAAC,GACD,CAAC,SAAS,eAAe,GACvB,CAAC,GACD,CAAC,SAAS,gBAAgB,GAAG,sBAAsB,GACjD,CAAC,GACD,CAAC,SAAS,iBAAiB,GAAG,uBAAuB,GACnD,CAAC,GACD,KAAK,CAAC;AAIhB,KAAK,cAAc,GACf,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,GACV,SAAS,GACT,SAAS,GACT,UAAU,GACV,SAAS,GACT,SAAS,GACT,UAAU,CAAC;AAEf,KAAK,eAAe,GAChB,UAAU,GACV,UAAU,GACV,SAAS,GACT,SAAS,GACT,WAAW,GACX,WAAW,GACX,UAAU,GACV,UAAU,GACV,WAAW,GACX,UAAU,GACV,UAAU,GACV,WAAW,CAAC;AAEhB,KAAK,gBAAgB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB,KAAK,iBAAiB,GAClB,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,YAAY,GACZ,iBAAiB,GACjB,WAAW,GACX,aAAa,GACb,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,aAAa,CAAC;AAElB,KAAK,sBAAsB,GAAG,mBAAmB,GAAG,cAAc,GAAG,eAAe,CAAC;AAErF,KAAK,uBAAuB,GACxB,kBAAkB,GAClB,mBAAmB,GACnB,cAAc,GACd,aAAa,CAAC;AAIlB,KAAK,mBAAmB,GACpB,SAAS,GACT,UAAU,GACV,iBAAiB,GACjB,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,iBAAiB,CAAC;AAEtB,KAAK,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAErF,KAAK,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAE7D,KAAK,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAE7D,KAAK,oBAAoB,GAAG,UAAU,GAAG,WAAW,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAE1F,KAAK,oBAAoB,GAAG,UAAU,GAAG,WAAW,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAE1F,KAAK,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAEjE,KAAK,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAEjE,KAAK,oBAAoB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;AAGrE,KAAK,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAEjE,KAAK,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAEjE,KAAK,oBAAoB,GAAG,UAAU,GAAG,WAAW,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAE1F,KAAK,qBAAqB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE5F,KAAK,qBAAqB,GAAG,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-format-generics.js","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/texture-format-generics.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-format-table.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/texture-format-table.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EAGb,cAAc,EACd,iBAAiB,EAElB,6BAA0B;AAsB3B,wDAAwD;AAExD,sDAAsD;AACtD,KAAK,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG;IAC1D,qCAAqC;IACrC,CAAC,CAAC,EAAE,cAAc,CAAC;IACnB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC;IAChC,0FAA0F;IAC1F,MAAM,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC;IAChC,KAAK,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC;IAC/B,KAAK,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC;IAE/B,wDAAwD;IACxD,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,eAAe;IACf,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa;IACb,CAAC,CAAC,EAAE,MAAM,CAAC;IAEX,iCAAiC;IACjC,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,aAAa,GAAG,uBAAuB,CAMzF;AAED,wBAAgB,qBAAqB,IAAI,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC,CAEhG;AA8KD,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAGzF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-format-table.js","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/texture-format-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NormalizedDataType,
|
|
1
|
+
import type { NormalizedDataType, TypedArrayConstructorT, NormalizedTypedArrayConstructorT } from "../data-types/data-types.js";
|
|
2
2
|
/** Information about the structure of a texture format */
|
|
3
3
|
export type TextureFormatInfo = {
|
|
4
4
|
/** The format that is described */
|
|
@@ -117,4 +117,8 @@ export type CompressedTextureFormat = TextureFormatCompressed;
|
|
|
117
117
|
export type TextureFormatTypedArray<T extends TextureFormat> = DataTypeArray<TextureFormatDataType<T>>;
|
|
118
118
|
export type TextureFormatNormalizedTypedArray<T extends TextureFormat> = NormalizedDataTypeArray<TextureFormatDataType<T>>;
|
|
119
119
|
export type TextureFormatDataType<T extends TextureFormat> = T extends TextureFormatUint8 ? 'uint8' : T extends TextureFormatSint8 ? 'sint8' : T extends TextureFormatUnorm8 ? 'unorm8' : T extends TextureFormatSnorm8 ? 'snorm8' : T extends TextureFormatUint16 ? 'uint16' : T extends TextureFormatSint16 ? 'sint16' : T extends TextureFormatUnorm16 ? 'unorm16' : T extends TextureFormatSnorm16 ? 'snorm16' : T extends TextureFormatUint32 ? 'uint32' : T extends TextureFormatSint32 ? 'sint32' : T extends TextureFormatFloat16 ? 'float16' : T extends TextureFormatFloat32 ? 'float32' : T extends TextureFormatDepthStencil ? 'uint32' : T extends TextureFormatCompressed ? 'uint8' : T extends TextureFormatPacked16 ? 'uint16' : T extends TextureFormatPacked32 ? 'uint32' : never;
|
|
120
|
+
export type TextureFormatDataTypeT<T extends TextureFormat> = TextureFormatDataType<T>;
|
|
121
|
+
type DataTypeArray<T extends NormalizedDataType> = InstanceType<TypedArrayConstructorT<T>>;
|
|
122
|
+
type NormalizedDataTypeArray<T extends NormalizedDataType> = InstanceType<NormalizedTypedArrayConstructorT<T>>;
|
|
123
|
+
export {};
|
|
120
124
|
//# sourceMappingURL=texture-formats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-formats.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/texture-formats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-formats.js","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/texture-formats.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;;AA6UpC,eAAe;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TypedArray } from '@math.gl/types';
|
|
2
2
|
import { type TextureFormat, type TextureMemoryLayout } from "./texture-formats.js";
|
|
3
|
-
export declare function getTextureImageView<T extends TextureFormat>(arrayBuffer: ArrayBuffer, memoryLayout: TextureMemoryLayout, format: T, image?: number): Uint8Array<ArrayBuffer> |
|
|
3
|
+
export declare function getTextureImageView<T extends TextureFormat>(arrayBuffer: ArrayBuffer, memoryLayout: TextureMemoryLayout, format: T, image?: number): Uint8Array<ArrayBuffer> | Uint16Array<ArrayBuffer> | Uint32Array<ArrayBuffer> | Float32Array<ArrayBuffer>;
|
|
4
4
|
export declare function setTextureImageData<T extends TextureFormat>(arrayBuffer: ArrayBuffer, memoryLayout: TextureMemoryLayout, format: T, data: TypedArray, image?: number): void;
|
|
5
5
|
//# sourceMappingURL=texture-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-layout.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/texture-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAC,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAC,6BAA0B;AAG/E,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,aAAa,EACzD,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,mBAAmB,EACjC,MAAM,EAAE,CAAC,EACT,KAAK,SAAI,6GA8BV;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,aAAa,EACzD,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,mBAAmB,EACjC,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,UAAU,EAChB,KAAK,SAAI,GACR,IAAI,CASN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-layout.js","sourceRoot":"","sources":["../../../src/shadertypes/texture-types/texture-layout.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,oBAAoB,EAAC,oCAAiC;AAE9D,MAAM,UAAU,mBAAmB,CACjC,WAAwB,EACxB,YAAiC,EACjC,MAAS,EACT,KAAK,GAAG,CAAC;IAET,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC;IAC3E,MAAM,EAAC,aAAa,EAAC,GAAG,YAAY,CAAC;IACrC,MAAM,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;IACrC,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,GAAG,iBAAiB,CAAC;IAEnE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,IAAI,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1D,KAAK,SAAS;YACZ,OAAO,IAAI,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1D,KAAK,SAAS,CAAC;QACf,KAAK,YAAY;YACf,OAAO,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3D,KAAK,SAAS,CAAC;QACf,KAAK,YAAY;YACf,OAAO,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3D,KAAK,UAAU;YACb,OAAO,IAAI,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5D,KAAK,aAAa;YAChB,OAAO,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,aAAa;QACzE,KAAK,aAAa;YAChB,OAAO,IAAI,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5D;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,WAAwB,EACxB,YAAiC,EACjC,MAAS,EACT,IAAgB,EAChB,KAAK,GAAG,CAAC;IAET,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,sCAAsC;IAExD,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEjF,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { TypedArray } from "../../types.js";
|
|
2
|
+
import type { PrimitiveDataType, SignedDataType } from "../data-types/data-types.js";
|
|
3
|
+
import type { VertexFormat, VertexFormatInfo } from "./vertex-formats.js";
|
|
4
|
+
export declare class VertexFormatDecoder {
|
|
5
|
+
/**
|
|
6
|
+
* Decodes a vertex format, returning type, components, byte length and flags (integer, signed, normalized)
|
|
7
|
+
*/
|
|
8
|
+
getVertexFormatInfo<T extends VertexFormat = VertexFormat>(format: T): VertexFormatInfo<T>;
|
|
9
|
+
/** Build a vertex format from a signed data type and a component */
|
|
10
|
+
makeVertexFormat(signedDataType: SignedDataType, components: 1 | 2 | 3 | 4, normalized?: boolean): VertexFormat;
|
|
11
|
+
/** Get the vertex format for an attribute with TypedArray and size */
|
|
12
|
+
getVertexFormatFromAttribute(typedArray: TypedArray, size: number, normalized?: boolean): VertexFormat;
|
|
13
|
+
/**
|
|
14
|
+
* Return a "default" vertex format for a certain shader data type
|
|
15
|
+
* The simplest vertex format that matches the shader attribute's data type
|
|
16
|
+
*/
|
|
17
|
+
getCompatibleVertexFormat(opts: {
|
|
18
|
+
primitiveType: PrimitiveDataType;
|
|
19
|
+
components: 1 | 2 | 3 | 4;
|
|
20
|
+
}): VertexFormat;
|
|
21
|
+
}
|
|
22
|
+
/** Decoder for luma.gl vertex types */
|
|
23
|
+
export declare const vertexFormatDecoder: VertexFormatDecoder;
|
|
24
|
+
//# sourceMappingURL=vertex-format-decoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertex-format-decoder.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/vertex-types/vertex-format-decoder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,uBAAoB;AAC5C,OAAO,KAAK,EAAqB,iBAAiB,EAAE,cAAc,EAAC,oCAAiC;AACpG,OAAO,KAAK,EAAC,YAAY,EAAE,gBAAgB,EAAC,4BAAyB;AAGrE,qBAAa,mBAAmB;IAC9B;;OAEG;IACH,mBAAmB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;IA2B1F,oEAAoE;IACpE,gBAAgB,CACd,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EACzB,UAAU,CAAC,EAAE,OAAO,GACnB,YAAY;IAqCf,sEAAsE;IACtE,4BAA4B,CAC1B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,OAAO,GACnB,YAAY;IAUf;;;OAGG;IAEH,yBAAyB,CAAC,IAAI,EAAE;QAC9B,aAAa,EAAE,iBAAiB,CAAC;QACjC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC3B,GAAG,YAAY;CAsBjB;AAED,uCAAuC;AACvC,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { dataTypeDecoder } from "../data-types/data-type-decoder.js";
|
|
5
|
+
export class VertexFormatDecoder {
|
|
6
|
+
/**
|
|
7
|
+
* Decodes a vertex format, returning type, components, byte length and flags (integer, signed, normalized)
|
|
8
|
+
*/
|
|
9
|
+
getVertexFormatInfo(format) {
|
|
10
|
+
// Strip the -webgl ending if present
|
|
11
|
+
let webglOnly;
|
|
12
|
+
if (format.endsWith('-webgl')) {
|
|
13
|
+
format.replace('-webgl', '');
|
|
14
|
+
webglOnly = true;
|
|
15
|
+
}
|
|
16
|
+
// split components from type
|
|
17
|
+
const [type_, count] = format.split('x');
|
|
18
|
+
const type = type_;
|
|
19
|
+
const components = (count ? parseInt(count) : 1);
|
|
20
|
+
// decode the type
|
|
21
|
+
const decodedType = dataTypeDecoder.getDataTypeInfo(type);
|
|
22
|
+
const result = {
|
|
23
|
+
type,
|
|
24
|
+
components,
|
|
25
|
+
byteLength: decodedType.byteLength * components,
|
|
26
|
+
integer: decodedType.integer,
|
|
27
|
+
signed: decodedType.signed,
|
|
28
|
+
normalized: decodedType.normalized
|
|
29
|
+
};
|
|
30
|
+
if (webglOnly) {
|
|
31
|
+
result.webglOnly = true;
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
/** Build a vertex format from a signed data type and a component */
|
|
36
|
+
makeVertexFormat(signedDataType, components, normalized) {
|
|
37
|
+
const dataType = normalized
|
|
38
|
+
? dataTypeDecoder.getNormalizedDataType(signedDataType)
|
|
39
|
+
: signedDataType;
|
|
40
|
+
switch (dataType) {
|
|
41
|
+
// TODO - Special cases for WebGL (not supported on WebGPU), overrides the check below
|
|
42
|
+
case 'unorm8':
|
|
43
|
+
if (components === 1) {
|
|
44
|
+
return 'unorm8';
|
|
45
|
+
}
|
|
46
|
+
if (components === 3) {
|
|
47
|
+
return 'unorm8x3-webgl';
|
|
48
|
+
}
|
|
49
|
+
return `${dataType}x${components}`;
|
|
50
|
+
case 'snorm8':
|
|
51
|
+
case 'uint8':
|
|
52
|
+
case 'sint8':
|
|
53
|
+
// WebGPU 8 bit formats must be aligned to 16 bit boundaries');
|
|
54
|
+
// fall through
|
|
55
|
+
case 'uint16':
|
|
56
|
+
case 'sint16':
|
|
57
|
+
case 'unorm16':
|
|
58
|
+
case 'snorm16':
|
|
59
|
+
case 'float16':
|
|
60
|
+
// WebGPU 16 bit formats must be aligned to 32 bit boundaries
|
|
61
|
+
if (components === 1 || components === 3) {
|
|
62
|
+
throw new Error(`size: ${components}`);
|
|
63
|
+
}
|
|
64
|
+
return `${dataType}x${components}`;
|
|
65
|
+
default:
|
|
66
|
+
return components === 1 ? dataType : `${dataType}x${components}`;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Get the vertex format for an attribute with TypedArray and size */
|
|
70
|
+
getVertexFormatFromAttribute(typedArray, size, normalized) {
|
|
71
|
+
if (!size || size > 4) {
|
|
72
|
+
throw new Error(`size ${size}`);
|
|
73
|
+
}
|
|
74
|
+
const components = size;
|
|
75
|
+
const signedDataType = dataTypeDecoder.getDataType(typedArray);
|
|
76
|
+
return this.makeVertexFormat(signedDataType, components, normalized);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Return a "default" vertex format for a certain shader data type
|
|
80
|
+
* The simplest vertex format that matches the shader attribute's data type
|
|
81
|
+
*/
|
|
82
|
+
getCompatibleVertexFormat(opts) {
|
|
83
|
+
let vertexType;
|
|
84
|
+
switch (opts.primitiveType) {
|
|
85
|
+
case 'f32':
|
|
86
|
+
vertexType = 'float32';
|
|
87
|
+
break;
|
|
88
|
+
case 'i32':
|
|
89
|
+
vertexType = 'sint32';
|
|
90
|
+
break;
|
|
91
|
+
case 'u32':
|
|
92
|
+
vertexType = 'uint32';
|
|
93
|
+
break;
|
|
94
|
+
case 'f16':
|
|
95
|
+
return opts.components <= 2 ? 'float16x2' : 'float16x4';
|
|
96
|
+
}
|
|
97
|
+
// TODO logic does not work for float16
|
|
98
|
+
if (opts.components === 1) {
|
|
99
|
+
return vertexType;
|
|
100
|
+
}
|
|
101
|
+
return `${vertexType}x${opts.components}`;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/** Decoder for luma.gl vertex types */
|
|
105
|
+
export const vertexFormatDecoder = new VertexFormatDecoder();
|
|
106
|
+
//# sourceMappingURL=vertex-format-decoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertex-format-decoder.js","sourceRoot":"","sources":["../../../src/shadertypes/vertex-types/vertex-format-decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { DataTypeIsIntegerT, DataTypeIsNormalizedT, DataTypeIsSignedT } from "../data-types/data-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Describes the **memory format** and interpretation (normalization) of a buffer that will be supplied to vertex attributes
|
|
4
|
+
* @note Must be compatible with the AttributeShaderType of the shaders, see documentation.
|
|
5
|
+
* @note This is a superset of WebGPU vertex formats to allow for some flexibility for WebGL only applications
|
|
6
|
+
* @todo Add device.isVertexFormatSupported() method?
|
|
7
|
+
*/
|
|
8
|
+
export type VertexFormat = 'uint8' | 'uint8x2' | 'uint8x4' | 'sint8' | 'sint8x2' | 'sint8x4' | 'unorm8' | 'unorm8x2' | 'unorm8x3-webgl' | 'unorm8x4' | 'unorm8x4-bgra' | 'unorm10-10-10-2' | 'snorm8' | 'snorm8x2' | 'snorm8x3-webgl' | 'snorm8x4' | 'uint16' | 'sint16' | 'unorm16' | 'snorm16' | 'uint16x2' | 'uint16x4' | 'sint16x2' | 'sint16x4' | 'unorm16x2' | 'unorm16x4' | 'snorm16x2' | 'snorm16x4' | 'uint32' | 'uint32x2' | 'uint32x3' | 'uint32x4' | 'sint32' | 'sint32x2' | 'sint32x3' | 'sint32x4' | 'float16' | 'float16x2' | 'float16x4' | 'float32' | 'float32x2' | 'float32x3' | 'float32x4';
|
|
9
|
+
/**
|
|
10
|
+
* @type Information about a vertex format
|
|
11
|
+
*/
|
|
12
|
+
export type VertexFormatInfo<T extends VertexFormat = VertexFormat> = {
|
|
13
|
+
/** Type of each component */
|
|
14
|
+
type: VertexFormatDataTypeT<T>;
|
|
15
|
+
/** Number of components per vertex / row */
|
|
16
|
+
components: VertexFormatComponentsT<T>;
|
|
17
|
+
/** Is this an integer format (normalized integer formats are not integer) */
|
|
18
|
+
integer: DataTypeIsIntegerT<VertexFormatDataTypeT<T>>;
|
|
19
|
+
/** Is this a signed format? */
|
|
20
|
+
signed: DataTypeIsSignedT<VertexFormatDataTypeT<T>>;
|
|
21
|
+
/** Is this a normalized format? */
|
|
22
|
+
normalized: DataTypeIsNormalizedT<VertexFormatDataTypeT<T>>;
|
|
23
|
+
/** Length in bytes */
|
|
24
|
+
byteLength: number;
|
|
25
|
+
/** Is this a bgra format? */
|
|
26
|
+
bgra?: boolean;
|
|
27
|
+
/** Is this a webgl only format? */
|
|
28
|
+
webglOnly?: boolean;
|
|
29
|
+
};
|
|
30
|
+
/** @type the NormalizedDataType of the components in a VertexFormat */
|
|
31
|
+
export type VertexFormatDataTypeT<T extends VertexFormat> = T extends VertexFormatUint8 ? 'uint8' : T extends VertexFormatSint8 ? 'sint8' : T extends VertexFormatUnorm8 ? 'unorm8' : T extends VertexFormatSnorm8 ? 'snorm8' : T extends VertexFormatUint16 ? 'uint16' : T extends VertexFormatSint16 ? 'sint16' : T extends VertexFormatUnorm16 ? 'unorm16' : T extends VertexFormatSnorm16 ? 'snorm16' : T extends VertexFormatUint32 ? 'uint32' : T extends VertexFormatSint32 ? 'sint32' : T extends VertexFormatFloat16 ? 'float16' : T extends VertexFormatFloat32 ? 'float32' : never;
|
|
32
|
+
/** @type number - the number of components in a VertexFormat */
|
|
33
|
+
export type VertexFormatComponentsT<T extends VertexFormat> = T extends VertexFormat2Components ? 2 : T extends VertexFormat3Components ? 3 : T extends VertexFormat4Components ? 4 : 1;
|
|
34
|
+
type VertexFormatUint8 = 'uint8' | 'uint8x2' | 'uint8x4';
|
|
35
|
+
type VertexFormatSint8 = 'sint8' | 'sint8x2' | 'sint8x4';
|
|
36
|
+
type VertexFormatUnorm8 = 'unorm8' | 'unorm8x2' | 'unorm8x3-webgl' | 'unorm8x4' | 'unorm8x4-bgra' | 'unorm10-10-10-2';
|
|
37
|
+
type VertexFormatSnorm8 = 'snorm8' | 'snorm8x2' | 'snorm8x3-webgl' | 'snorm8x4';
|
|
38
|
+
type VertexFormatUint16 = 'uint16' | 'uint16x2' | 'uint16x4';
|
|
39
|
+
type VertexFormatSint16 = 'sint16' | 'sint16x2' | 'sint16x4';
|
|
40
|
+
type VertexFormatUnorm16 = 'unorm16' | 'unorm16x2' | 'unorm16x4';
|
|
41
|
+
type VertexFormatSnorm16 = 'snorm16' | 'snorm16x2' | 'snorm16x4';
|
|
42
|
+
type VertexFormatUint32 = 'uint32' | 'uint32x2' | 'uint32x3' | 'uint32x4';
|
|
43
|
+
type VertexFormatSint32 = 'sint32' | 'sint32x2' | 'sint32x3' | 'sint32x4';
|
|
44
|
+
type VertexFormatFloat16 = 'float16' | 'float16x2' | 'float16x4';
|
|
45
|
+
type VertexFormatFloat32 = 'float32' | 'float32x2' | 'float32x3' | 'float32x4';
|
|
46
|
+
type VertexFormat2Components = 'uint8x2' | 'sint8x2' | 'unorm8x2' | 'snorm8x2' | 'uint16x2' | 'sint16x2' | 'unorm16x2' | 'snorm16x2' | 'uint32x2' | 'sint32x2' | 'float16x2' | 'float32x2';
|
|
47
|
+
type VertexFormat3Components = 'unorm8x3-webgl' | 'uint32x3' | 'sint32x3' | 'float32x3';
|
|
48
|
+
type VertexFormat4Components = 'uint8x4' | 'sint8x4' | 'unorm8x4' | 'unorm8x4-bgra' | 'unorm10-10-10-2' | 'snorm8x4' | 'uint16x4' | 'sint16x4' | 'unorm16x4' | 'snorm16x4' | 'uint32x4' | 'sint32x4' | 'float16x4' | 'float32x4';
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=vertex-formats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertex-formats.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/vertex-types/vertex-formats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertex-formats.js","sourceRoot":"","sources":["../../../src/shadertypes/vertex-types/vertex-formats.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luma.gl/core",
|
|
3
|
-
"version": "9.3.0-alpha.
|
|
3
|
+
"version": "9.3.0-alpha.8",
|
|
4
4
|
"description": "The luma.gl core Device API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"@probe.gl/stats": "^4.1.1",
|
|
47
47
|
"@types/offscreencanvas": "^2019.7.3"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "371f0979c1cd01563badc36118f314365a66e1a1"
|
|
50
50
|
}
|
|
@@ -8,7 +8,7 @@ import type {CanvasContext} from './canvas-context';
|
|
|
8
8
|
import {CanvasObserver} from './canvas-observer';
|
|
9
9
|
import type {PresentationContext} from './presentation-context';
|
|
10
10
|
import type {Framebuffer} from './resources/framebuffer';
|
|
11
|
-
import type {TextureFormatDepthStencil} from '../shadertypes/
|
|
11
|
+
import type {TextureFormatDepthStencil} from '../shadertypes/texture-types/texture-formats';
|
|
12
12
|
import {uid} from '../utils/uid';
|
|
13
13
|
import {withResolvers} from '../utils/promise-utils';
|
|
14
14
|
import {assertDefined} from '../utils/assert';
|
package/src/adapter/device.ts
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
import {StatsManager, lumaStats} from '../utils/stats-manager';
|
|
6
6
|
import {log} from '../utils/log';
|
|
7
7
|
import {uid} from '../utils/uid';
|
|
8
|
-
import type {VertexFormat, VertexFormatInfo} from '../shadertypes/vertex-
|
|
8
|
+
import type {VertexFormat, VertexFormatInfo} from '../shadertypes/vertex-types/vertex-formats';
|
|
9
9
|
import type {
|
|
10
10
|
TextureFormat,
|
|
11
11
|
TextureFormatInfo,
|
|
12
12
|
CompressedTextureFormat
|
|
13
|
-
} from '../shadertypes/
|
|
13
|
+
} from '../shadertypes/texture-types/texture-formats';
|
|
14
14
|
import type {CanvasContext, CanvasContextProps} from './canvas-context';
|
|
15
15
|
import type {PresentationContext, PresentationContextProps} from './presentation-context';
|
|
16
16
|
import type {BufferProps} from './resources/buffer';
|
|
@@ -31,12 +31,13 @@ import type {VertexArray, VertexArrayProps} from './resources/vertex-array';
|
|
|
31
31
|
import type {TransformFeedback, TransformFeedbackProps} from './resources/transform-feedback';
|
|
32
32
|
import type {QuerySet, QuerySetProps} from './resources/query-set';
|
|
33
33
|
import type {Fence} from './resources/fence';
|
|
34
|
+
import type {Bindings, ComputeShaderLayout, ShaderLayout} from './types/shader-layout';
|
|
34
35
|
|
|
35
|
-
import {
|
|
36
|
-
import {textureFormatDecoder} from '../shadertypes/
|
|
37
|
-
import {
|
|
38
|
-
import
|
|
39
|
-
import {
|
|
36
|
+
import {vertexFormatDecoder} from '../shadertypes/vertex-types/vertex-format-decoder';
|
|
37
|
+
import {textureFormatDecoder} from '../shadertypes/texture-types/texture-format-decoder';
|
|
38
|
+
import type {ExternalImage} from '../shadertypes/image-types/image-types';
|
|
39
|
+
import {isExternalImage, getExternalImageSize} from '../shadertypes/image-types/image-types';
|
|
40
|
+
import {getTextureFormatTable} from '../shadertypes/texture-types/texture-format-table';
|
|
40
41
|
|
|
41
42
|
/**
|
|
42
43
|
* Identifies the GPU vendor and driver.
|
|
@@ -125,6 +126,84 @@ export abstract class DeviceLimits {
|
|
|
125
126
|
abstract maxComputeWorkgroupsPerDimension: number;
|
|
126
127
|
}
|
|
127
128
|
|
|
129
|
+
function formatErrorLogArguments(context: unknown, args: unknown[]): unknown[] {
|
|
130
|
+
const formattedContext = formatErrorLogValue(context);
|
|
131
|
+
const formattedArgs = args.map(formatErrorLogValue).filter(arg => arg !== undefined);
|
|
132
|
+
return [formattedContext, ...formattedArgs].filter(arg => arg !== undefined);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function formatErrorLogValue(value: unknown): unknown {
|
|
136
|
+
if (value === undefined) {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
if (
|
|
140
|
+
value === null ||
|
|
141
|
+
typeof value === 'string' ||
|
|
142
|
+
typeof value === 'number' ||
|
|
143
|
+
typeof value === 'boolean'
|
|
144
|
+
) {
|
|
145
|
+
return value;
|
|
146
|
+
}
|
|
147
|
+
if (value instanceof Error) {
|
|
148
|
+
return value.message;
|
|
149
|
+
}
|
|
150
|
+
if (Array.isArray(value)) {
|
|
151
|
+
return value.map(formatErrorLogValue);
|
|
152
|
+
}
|
|
153
|
+
if (typeof value === 'object') {
|
|
154
|
+
if (hasCustomToString(value)) {
|
|
155
|
+
const stringValue = String(value);
|
|
156
|
+
if (stringValue !== '[object Object]') {
|
|
157
|
+
return stringValue;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (looksLikeGPUCompilationMessage(value)) {
|
|
162
|
+
return formatGPUCompilationMessage(value);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return value.constructor?.name || 'Object';
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return String(value);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function hasCustomToString(value: object): boolean {
|
|
172
|
+
return (
|
|
173
|
+
'toString' in value &&
|
|
174
|
+
typeof value.toString === 'function' &&
|
|
175
|
+
value.toString !== Object.prototype.toString
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
function looksLikeGPUCompilationMessage(value: object): value is {
|
|
180
|
+
message?: unknown;
|
|
181
|
+
type?: unknown;
|
|
182
|
+
lineNum?: unknown;
|
|
183
|
+
linePos?: unknown;
|
|
184
|
+
} {
|
|
185
|
+
return 'message' in value && 'type' in value;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
function formatGPUCompilationMessage(value: {
|
|
189
|
+
message?: unknown;
|
|
190
|
+
type?: unknown;
|
|
191
|
+
lineNum?: unknown;
|
|
192
|
+
linePos?: unknown;
|
|
193
|
+
}): string {
|
|
194
|
+
const type = typeof value.type === 'string' ? value.type : 'message';
|
|
195
|
+
const message = typeof value.message === 'string' ? value.message : '';
|
|
196
|
+
const lineNum = typeof value.lineNum === 'number' ? value.lineNum : null;
|
|
197
|
+
const linePos = typeof value.linePos === 'number' ? value.linePos : null;
|
|
198
|
+
const location =
|
|
199
|
+
lineNum !== null && linePos !== null
|
|
200
|
+
? ` @ ${lineNum}:${linePos}`
|
|
201
|
+
: lineNum !== null
|
|
202
|
+
? ` @ ${lineNum}`
|
|
203
|
+
: '';
|
|
204
|
+
return `${type}${location}: ${message}`.trim();
|
|
205
|
+
}
|
|
206
|
+
|
|
128
207
|
/** Set-like class for features (lets apps check for WebGL / WebGPU extensions) */
|
|
129
208
|
export class DeviceFeatures {
|
|
130
209
|
protected features: Set<DeviceFeature>;
|
|
@@ -318,6 +397,10 @@ export type DeviceProps = {
|
|
|
318
397
|
_handle?: unknown; // WebGL2RenderingContext | GPUDevice | null;
|
|
319
398
|
};
|
|
320
399
|
|
|
400
|
+
type DeviceFactories = {
|
|
401
|
+
bindGroupFactory?: unknown;
|
|
402
|
+
};
|
|
403
|
+
|
|
321
404
|
/** WebGL independent copy of WebGLContextAttributes */
|
|
322
405
|
type WebGLContextProps = {
|
|
323
406
|
/** indicates if the canvas contains an alpha buffer. */
|
|
@@ -428,6 +511,8 @@ export abstract class Device {
|
|
|
428
511
|
userData: {[key: string]: unknown} = {};
|
|
429
512
|
/** stats */
|
|
430
513
|
readonly statsManager: StatsManager = lumaStats;
|
|
514
|
+
/** Internal per-device factory storage */
|
|
515
|
+
_factories: DeviceFactories = {};
|
|
431
516
|
/** An abstract timestamp used for change tracking */
|
|
432
517
|
timestamp: number = 0;
|
|
433
518
|
|
|
@@ -463,8 +548,10 @@ export abstract class Device {
|
|
|
463
548
|
|
|
464
549
|
abstract destroy(): void;
|
|
465
550
|
|
|
551
|
+
// TODO - just expose the shadertypes decoders?
|
|
552
|
+
|
|
466
553
|
getVertexFormatInfo(format: VertexFormat): VertexFormatInfo {
|
|
467
|
-
return getVertexFormatInfo(format);
|
|
554
|
+
return vertexFormatDecoder.getVertexFormatInfo(format);
|
|
468
555
|
}
|
|
469
556
|
|
|
470
557
|
isVertexFormatSupported(format: VertexFormat): boolean {
|
|
@@ -593,13 +680,13 @@ export abstract class Device {
|
|
|
593
680
|
// Call the error handler
|
|
594
681
|
const isHandled = this.props.onError(error, context);
|
|
595
682
|
if (!isHandled) {
|
|
683
|
+
const logArguments = formatErrorLogArguments(context, args);
|
|
596
684
|
// Note: Returns a function that must be called: `device.reportError(...)()`
|
|
597
685
|
return log.error(
|
|
598
686
|
this.type === 'webgl' ? '%cWebGL' : '%cWebGPU',
|
|
599
687
|
'color: white; background: red; padding: 2px 6px; border-radius: 3px;',
|
|
600
688
|
error.message,
|
|
601
|
-
|
|
602
|
-
...args
|
|
689
|
+
...logArguments
|
|
603
690
|
);
|
|
604
691
|
}
|
|
605
692
|
return () => {};
|
|
@@ -706,6 +793,24 @@ or create a device with the 'debug: true' prop.`;
|
|
|
706
793
|
throw new Error('_createSharedRenderPipelineWebGL() not implemented');
|
|
707
794
|
}
|
|
708
795
|
|
|
796
|
+
/** Internal WebGPU-only helper for retrieving the native bind-group layout for a pipeline group. */
|
|
797
|
+
_createBindGroupLayoutWebGPU(
|
|
798
|
+
_pipeline: RenderPipeline | ComputePipeline,
|
|
799
|
+
_group: number
|
|
800
|
+
): unknown {
|
|
801
|
+
throw new Error('_createBindGroupLayoutWebGPU() not implemented');
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
/** Internal WebGPU-only helper for creating a native bind group. */
|
|
805
|
+
_createBindGroupWebGPU(
|
|
806
|
+
_bindGroupLayout: unknown,
|
|
807
|
+
_shaderLayout: ShaderLayout | ComputeShaderLayout,
|
|
808
|
+
_bindings: Bindings,
|
|
809
|
+
_group: number
|
|
810
|
+
): unknown {
|
|
811
|
+
throw new Error('_createBindGroupWebGPU() not implemented');
|
|
812
|
+
}
|
|
813
|
+
|
|
709
814
|
/**
|
|
710
815
|
* Internal helper that returns `true` when timestamp-query GPU timing should be
|
|
711
816
|
* collected for this device.
|