@luma.gl/core 9.1.9 → 9.2.0-alpha.3
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/adapter.d.ts +14 -1
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/adapter/adapter.js +27 -0
- package/dist/adapter/adapter.js.map +1 -1
- package/dist/adapter/canvas-context.d.ts +101 -48
- package/dist/adapter/canvas-context.d.ts.map +1 -1
- package/dist/adapter/canvas-context.js +255 -153
- package/dist/adapter/canvas-context.js.map +1 -1
- package/dist/adapter/device.d.ts +112 -42
- package/dist/adapter/device.d.ts.map +1 -1
- package/dist/adapter/device.js +153 -56
- package/dist/adapter/device.js.map +1 -1
- package/dist/adapter/luma.d.ts +24 -22
- package/dist/adapter/luma.d.ts.map +1 -1
- package/dist/adapter/luma.js +76 -92
- package/dist/adapter/luma.js.map +1 -1
- package/dist/adapter/resources/buffer.d.ts +18 -12
- package/dist/adapter/resources/buffer.d.ts.map +1 -1
- package/dist/adapter/resources/buffer.js +14 -18
- package/dist/adapter/resources/buffer.js.map +1 -1
- package/dist/adapter/resources/command-buffer.d.ts +1 -1
- package/dist/adapter/resources/command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/command-buffer.js +3 -3
- package/dist/adapter/resources/command-buffer.js.map +1 -1
- package/dist/adapter/resources/command-encoder.d.ts +9 -2
- package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/command-encoder.js +7 -4
- package/dist/adapter/resources/command-encoder.js.map +1 -1
- package/dist/adapter/resources/compute-pass.d.ts +2 -2
- package/dist/adapter/resources/compute-pass.d.ts.map +1 -1
- package/dist/adapter/resources/compute-pass.js +3 -3
- package/dist/adapter/resources/compute-pass.js.map +1 -1
- package/dist/adapter/resources/compute-pipeline.d.ts +1 -1
- package/dist/adapter/resources/compute-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/compute-pipeline.js +7 -7
- package/dist/adapter/resources/compute-pipeline.js.map +1 -1
- package/dist/adapter/resources/external-texture.d.ts +1 -1
- package/dist/adapter/resources/external-texture.d.ts.map +1 -1
- package/dist/adapter/resources/external-texture.js +5 -5
- package/dist/adapter/resources/external-texture.js.map +1 -1
- package/dist/adapter/resources/framebuffer.d.ts +4 -4
- package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/framebuffer.js +8 -9
- package/dist/adapter/resources/framebuffer.js.map +1 -1
- package/dist/adapter/resources/pipeline-layout.d.ts.map +1 -1
- package/dist/adapter/resources/pipeline-layout.js +3 -0
- package/dist/adapter/resources/pipeline-layout.js.map +1 -1
- package/dist/adapter/resources/query-set.d.ts +1 -1
- package/dist/adapter/resources/query-set.d.ts.map +1 -1
- package/dist/adapter/resources/query-set.js +5 -5
- package/dist/adapter/resources/query-set.js.map +1 -1
- package/dist/adapter/resources/render-pass.d.ts +2 -2
- package/dist/adapter/resources/render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/render-pass.js +10 -13
- package/dist/adapter/resources/render-pass.js.map +1 -1
- package/dist/adapter/resources/render-pipeline.d.ts +7 -9
- package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/render-pipeline.js +17 -29
- package/dist/adapter/resources/render-pipeline.js.map +1 -1
- package/dist/adapter/resources/resource.d.ts +1 -0
- package/dist/adapter/resources/resource.d.ts.map +1 -1
- package/dist/adapter/resources/resource.js.map +1 -1
- package/dist/adapter/resources/sampler.d.ts.map +1 -1
- package/dist/adapter/resources/sampler.js +1 -3
- package/dist/adapter/resources/sampler.js.map +1 -1
- package/dist/adapter/resources/shader.d.ts +2 -2
- package/dist/adapter/resources/shader.d.ts.map +1 -1
- package/dist/adapter/resources/shader.js +14 -14
- package/dist/adapter/resources/shader.js.map +1 -1
- package/dist/adapter/resources/texture-view.d.ts +2 -2
- package/dist/adapter/resources/texture-view.d.ts.map +1 -1
- package/dist/adapter/resources/texture-view.js +7 -7
- package/dist/adapter/resources/texture-view.js.map +1 -1
- package/dist/adapter/resources/texture.d.ts +84 -135
- package/dist/adapter/resources/texture.d.ts.map +1 -1
- package/dist/adapter/resources/texture.js +136 -152
- package/dist/adapter/resources/texture.js.map +1 -1
- package/dist/adapter/resources/vertex-array.d.ts +4 -2
- package/dist/adapter/resources/vertex-array.d.ts.map +1 -1
- package/dist/adapter/resources/vertex-array.js +4 -7
- package/dist/adapter/resources/vertex-array.js.map +1 -1
- package/dist/adapter/types/attachments.d.ts +3 -3
- 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 +7 -3
- package/dist/adapter/types/parameters.d.ts.map +1 -1
- package/dist/adapter/types/parameters.js.map +1 -1
- package/dist/adapter/types/shader-layout.d.ts +5 -5
- package/dist/adapter/types/shader-layout.d.ts.map +1 -1
- package/dist/adapter-utils/format-compiler-log.d.ts.map +1 -1
- package/dist/adapter-utils/format-compiler-log.js +8 -0
- package/dist/adapter-utils/format-compiler-log.js.map +1 -1
- package/dist/adapter-utils/get-attribute-from-layouts.d.ts +6 -5
- package/dist/adapter-utils/get-attribute-from-layouts.d.ts.map +1 -1
- package/dist/adapter-utils/get-attribute-from-layouts.js +8 -7
- package/dist/adapter-utils/get-attribute-from-layouts.js.map +1 -1
- package/dist/dist.dev.js +1162 -851
- package/dist/dist.min.js +7 -6
- package/dist/image-utils/image-types.d.ts +19 -0
- package/dist/image-utils/image-types.d.ts.map +1 -0
- package/dist/image-utils/image-types.js +34 -0
- package/dist/image-utils/image-types.js.map +1 -0
- package/dist/index.cjs +1129 -819
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +17 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -12
- package/dist/index.js.map +1 -1
- package/dist/portable/uniform-block.d.ts +2 -2
- package/dist/portable/uniform-block.d.ts.map +1 -1
- package/dist/portable/uniform-buffer-layout.d.ts +4 -3
- package/dist/portable/uniform-buffer-layout.d.ts.map +1 -1
- package/dist/portable/uniform-buffer-layout.js +3 -2
- package/dist/portable/uniform-buffer-layout.js.map +1 -1
- package/dist/portable/uniform-store.d.ts +2 -2
- package/dist/portable/uniform-store.d.ts.map +1 -1
- package/dist/shadertypes/data-types/data-types.d.ts +32 -0
- package/dist/shadertypes/data-types/data-types.d.ts.map +1 -0
- package/dist/{gpu-type-utils/texture-formats.js → shadertypes/data-types/data-types.js} +1 -1
- package/dist/shadertypes/data-types/data-types.js.map +1 -0
- package/dist/shadertypes/data-types/decode-data-types.d.ts +16 -0
- package/dist/shadertypes/data-types/decode-data-types.d.ts.map +1 -0
- package/dist/shadertypes/data-types/decode-data-types.js +74 -0
- package/dist/shadertypes/data-types/decode-data-types.js.map +1 -0
- package/dist/shadertypes/data-types/decode-shader-types.d.ts +17 -0
- package/dist/shadertypes/data-types/decode-shader-types.d.ts.map +1 -0
- package/dist/shadertypes/data-types/decode-shader-types.js +171 -0
- package/dist/shadertypes/data-types/decode-shader-types.js.map +1 -0
- package/dist/shadertypes/data-types/shader-types.d.ts +45 -0
- package/dist/shadertypes/data-types/shader-types.d.ts.map +1 -0
- package/dist/shadertypes/data-types/shader-types.js.map +1 -0
- package/dist/shadertypes/textures/pixel-utils.d.ts +112 -0
- package/dist/shadertypes/textures/pixel-utils.d.ts.map +1 -0
- package/dist/shadertypes/textures/pixel-utils.js +193 -0
- package/dist/shadertypes/textures/pixel-utils.js.map +1 -0
- package/dist/shadertypes/textures/texture-format-decoder.d.ts +18 -0
- package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +1 -0
- package/dist/{gpu-type-utils/decode-texture-format.js → shadertypes/textures/texture-format-decoder.js} +52 -13
- package/dist/shadertypes/textures/texture-format-decoder.js.map +1 -0
- package/dist/shadertypes/textures/texture-format-generics.d.ts +33 -0
- package/dist/shadertypes/textures/texture-format-generics.d.ts.map +1 -0
- package/dist/{gpu-type-utils/texture-features.js → shadertypes/textures/texture-format-generics.js} +1 -1
- package/dist/shadertypes/textures/texture-format-generics.js.map +1 -0
- package/dist/{gpu-type-utils → shadertypes/textures}/texture-format-table.d.ts +2 -3
- package/dist/shadertypes/textures/texture-format-table.d.ts.map +1 -0
- package/dist/{gpu-type-utils → shadertypes/textures}/texture-format-table.js +42 -43
- package/dist/shadertypes/textures/texture-format-table.js.map +1 -0
- package/dist/shadertypes/textures/texture-formats.d.ts +90 -0
- package/dist/shadertypes/textures/texture-formats.d.ts.map +1 -0
- package/dist/shadertypes/textures/texture-formats.js +58 -0
- package/dist/shadertypes/textures/texture-formats.js.map +1 -0
- package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts +18 -0
- package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts.map +1 -0
- package/dist/shadertypes/vertex-arrays/decode-vertex-format.js +100 -0
- package/dist/shadertypes/vertex-arrays/decode-vertex-format.js.map +1 -0
- package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts +27 -0
- package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts.map +1 -0
- package/dist/shadertypes/vertex-arrays/vertex-formats.js.map +1 -0
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/promise-utils.d.ts +6 -0
- package/dist/utils/promise-utils.d.ts.map +1 -0
- package/dist/utils/promise-utils.js +15 -0
- package/dist/utils/promise-utils.js.map +1 -0
- package/package.json +2 -2
- package/src/adapter/adapter.ts +36 -1
- package/src/adapter/canvas-context.ts +321 -198
- package/src/adapter/device.ts +261 -110
- package/src/adapter/luma.ts +97 -113
- package/src/adapter/resources/buffer.ts +45 -28
- package/src/adapter/resources/command-buffer.ts +4 -4
- package/src/adapter/resources/command-encoder.ts +15 -6
- package/src/adapter/resources/compute-pass.ts +11 -11
- package/src/adapter/resources/compute-pipeline.ts +8 -8
- package/src/adapter/resources/external-texture.ts +6 -6
- package/src/adapter/resources/framebuffer.ts +14 -15
- package/src/adapter/resources/pipeline-layout.ts +4 -0
- package/src/adapter/resources/query-set.ts +6 -6
- package/src/adapter/resources/render-pass.ts +20 -23
- package/src/adapter/resources/render-pipeline.ts +36 -42
- package/src/adapter/resources/resource.ts +1 -0
- package/src/adapter/resources/sampler.ts +1 -4
- package/src/adapter/resources/shader.ts +15 -15
- package/src/adapter/resources/texture-view.ts +12 -12
- package/src/adapter/resources/texture.ts +206 -300
- package/src/adapter/resources/vertex-array.ts +9 -10
- package/src/adapter/types/attachments.ts +5 -5
- package/src/adapter/types/buffer-layout.ts +1 -1
- package/src/adapter/types/parameters.ts +16 -11
- package/src/adapter/types/shader-layout.ts +8 -5
- package/src/adapter-utils/format-compiler-log.ts +8 -0
- package/src/adapter-utils/get-attribute-from-layouts.ts +17 -12
- package/src/image-utils/image-types.ts +59 -0
- package/src/index.ts +67 -47
- package/src/portable/uniform-block.ts +2 -2
- package/src/portable/uniform-buffer-layout.ts +7 -5
- package/src/portable/uniform-store.ts +2 -2
- package/src/shadertypes/data-types/data-types.ts +96 -0
- package/src/shadertypes/data-types/decode-data-types.ts +91 -0
- package/src/shadertypes/data-types/decode-shader-types.ts +211 -0
- package/src/shadertypes/data-types/shader-types.ts +87 -0
- package/src/shadertypes/textures/pixel-utils.ts +239 -0
- package/src/{gpu-type-utils/decode-texture-format.ts → shadertypes/textures/texture-format-decoder.ts} +71 -20
- package/src/shadertypes/textures/texture-format-generics.ts +190 -0
- package/src/{gpu-type-utils → shadertypes/textures}/texture-format-table.ts +63 -56
- package/src/shadertypes/textures/texture-formats.ts +334 -0
- package/src/shadertypes/vertex-arrays/decode-vertex-format.ts +124 -0
- package/src/shadertypes/vertex-arrays/vertex-formats.ts +91 -0
- package/src/types.ts +12 -5
- package/src/utils/promise-utils.ts +19 -0
- package/dist/adapter-utils/buffer-layout-helper.d.ts +0 -12
- package/dist/adapter-utils/buffer-layout-helper.d.ts.map +0 -1
- package/dist/adapter-utils/buffer-layout-helper.js +0 -41
- package/dist/adapter-utils/buffer-layout-helper.js.map +0 -1
- package/dist/adapter-utils/buffer-layout-order.d.ts +0 -4
- package/dist/adapter-utils/buffer-layout-order.d.ts.map +0 -1
- package/dist/adapter-utils/buffer-layout-order.js +0 -16
- package/dist/adapter-utils/buffer-layout-order.js.map +0 -1
- package/dist/gpu-type-utils/decode-attribute-type.d.ts +0 -20
- package/dist/gpu-type-utils/decode-attribute-type.d.ts.map +0 -1
- package/dist/gpu-type-utils/decode-attribute-type.js +0 -68
- package/dist/gpu-type-utils/decode-attribute-type.js.map +0 -1
- package/dist/gpu-type-utils/decode-data-type.d.ts +0 -16
- package/dist/gpu-type-utils/decode-data-type.d.ts.map +0 -1
- package/dist/gpu-type-utils/decode-data-type.js +0 -48
- package/dist/gpu-type-utils/decode-data-type.js.map +0 -1
- package/dist/gpu-type-utils/decode-shader-types.d.ts +0 -9
- package/dist/gpu-type-utils/decode-shader-types.d.ts.map +0 -1
- package/dist/gpu-type-utils/decode-shader-types.js +0 -42
- package/dist/gpu-type-utils/decode-shader-types.js.map +0 -1
- package/dist/gpu-type-utils/decode-texture-format.d.ts +0 -11
- package/dist/gpu-type-utils/decode-texture-format.d.ts.map +0 -1
- package/dist/gpu-type-utils/decode-texture-format.js.map +0 -1
- package/dist/gpu-type-utils/decode-vertex-format.d.ts +0 -22
- package/dist/gpu-type-utils/decode-vertex-format.d.ts.map +0 -1
- package/dist/gpu-type-utils/decode-vertex-format.js +0 -34
- package/dist/gpu-type-utils/decode-vertex-format.js.map +0 -1
- package/dist/gpu-type-utils/shader-types.d.ts +0 -21
- package/dist/gpu-type-utils/shader-types.d.ts.map +0 -1
- package/dist/gpu-type-utils/shader-types.js.map +0 -1
- package/dist/gpu-type-utils/texture-features.d.ts +0 -6
- package/dist/gpu-type-utils/texture-features.d.ts.map +0 -1
- package/dist/gpu-type-utils/texture-features.js.map +0 -1
- package/dist/gpu-type-utils/texture-format-capabilities.d.ts +0 -21
- package/dist/gpu-type-utils/texture-format-capabilities.d.ts.map +0 -1
- package/dist/gpu-type-utils/texture-format-capabilities.js +0 -27
- package/dist/gpu-type-utils/texture-format-capabilities.js.map +0 -1
- package/dist/gpu-type-utils/texture-format-info.d.ts +0 -38
- package/dist/gpu-type-utils/texture-format-info.d.ts.map +0 -1
- package/dist/gpu-type-utils/texture-format-info.js +0 -5
- package/dist/gpu-type-utils/texture-format-info.js.map +0 -1
- package/dist/gpu-type-utils/texture-format-table.d.ts.map +0 -1
- package/dist/gpu-type-utils/texture-format-table.js.map +0 -1
- package/dist/gpu-type-utils/texture-formats.d.ts +0 -11
- package/dist/gpu-type-utils/texture-formats.d.ts.map +0 -1
- package/dist/gpu-type-utils/texture-formats.js.map +0 -1
- package/dist/gpu-type-utils/vertex-format-from-attribute.d.ts +0 -10
- package/dist/gpu-type-utils/vertex-format-from-attribute.d.ts.map +0 -1
- package/dist/gpu-type-utils/vertex-format-from-attribute.js +0 -91
- package/dist/gpu-type-utils/vertex-format-from-attribute.js.map +0 -1
- package/dist/gpu-type-utils/vertex-formats.d.ts +0 -14
- package/dist/gpu-type-utils/vertex-formats.d.ts.map +0 -1
- package/dist/gpu-type-utils/vertex-formats.js.map +0 -1
- package/dist/gpu-type-utils/wgsl-utils.d.ts +0 -4
- package/dist/gpu-type-utils/wgsl-utils.d.ts.map +0 -1
- package/dist/gpu-type-utils/wgsl-utils.js +0 -20
- package/dist/gpu-type-utils/wgsl-utils.js.map +0 -1
- package/src/adapter-utils/buffer-layout-helper.ts +0 -52
- package/src/adapter-utils/buffer-layout-order.ts +0 -27
- package/src/gpu-type-utils/decode-attribute-type.ts +0 -96
- package/src/gpu-type-utils/decode-data-type.ts +0 -66
- package/src/gpu-type-utils/decode-shader-types.ts +0 -49
- package/src/gpu-type-utils/decode-vertex-format.ts +0 -53
- package/src/gpu-type-utils/shader-types.ts +0 -78
- package/src/gpu-type-utils/texture-features.ts +0 -23
- package/src/gpu-type-utils/texture-format-capabilities.ts +0 -53
- package/src/gpu-type-utils/texture-format-info.ts +0 -42
- package/src/gpu-type-utils/texture-formats.ts +0 -161
- package/src/gpu-type-utils/vertex-format-from-attribute.ts +0 -114
- package/src/gpu-type-utils/vertex-formats.ts +0 -90
- package/src/gpu-type-utils/wgsl-utils.ts +0 -22
- /package/dist/{gpu-type-utils → shadertypes/data-types}/shader-types.js +0 -0
- /package/dist/{gpu-type-utils → shadertypes/vertex-arrays}/vertex-formats.js +0 -0
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// luma.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
|
|
5
|
-
import {TextureFormat} from './texture-formats';
|
|
6
|
-
import {VertexType} from './vertex-formats';
|
|
7
|
-
|
|
8
|
-
/** Information about the structure of a texture format */
|
|
9
|
-
export type TextureFormatInfo = {
|
|
10
|
-
/** The format that is described */
|
|
11
|
-
format: TextureFormat;
|
|
12
|
-
/** Color or depth stencil attachment formats */
|
|
13
|
-
attachment?: 'color' | 'depth' | 'stencil' | 'depth-stencil';
|
|
14
|
-
/** String describing which channels this texture has */
|
|
15
|
-
channels: 'r' | 'rg' | 'rgb' | 'rgba' | 'bgra';
|
|
16
|
-
/** Number of components (corresponds to channels string) */
|
|
17
|
-
components: 1 | 2 | 3 | 4;
|
|
18
|
-
/** What is the data type of each component */
|
|
19
|
-
dataType?: VertexType;
|
|
20
|
-
/** If this is a packed data type */
|
|
21
|
-
packed?: boolean;
|
|
22
|
-
/** Number of bytes per pixel */
|
|
23
|
-
bytesPerPixel?: number;
|
|
24
|
-
/** Number of bits per channel (may be unreliable for packed formats) */
|
|
25
|
-
bitsPerChannel: [number, number, number, number];
|
|
26
|
-
/** SRGB texture format? */
|
|
27
|
-
srgb?: boolean;
|
|
28
|
-
/** WebGL specific texture format? */
|
|
29
|
-
webgl?: boolean;
|
|
30
|
-
/** Is this an integer or floating point format? */
|
|
31
|
-
integer: boolean;
|
|
32
|
-
/** Is this a signed or unsigned format? */
|
|
33
|
-
signed: boolean;
|
|
34
|
-
/** Is this a normalized integer format? */
|
|
35
|
-
normalized: boolean;
|
|
36
|
-
/** Is this a compressed texture format */
|
|
37
|
-
compressed?: boolean;
|
|
38
|
-
/** Compressed formats only: Block size for ASTC formats (texture width must be a multiple of this value) */
|
|
39
|
-
blockWidth?: number;
|
|
40
|
-
/** Compressed formats only: Block size for ASTC formats (texture height must be a multiple of this value) */
|
|
41
|
-
blockHeight?: number;
|
|
42
|
-
};
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
// luma.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
|
|
5
|
-
/** Texture formats */
|
|
6
|
-
export type TextureFormat = ColorTextureFormat | DepthStencilTextureFormat;
|
|
7
|
-
|
|
8
|
-
/** Depth and stencil texture formats */
|
|
9
|
-
export type DepthStencilTextureFormat =
|
|
10
|
-
| 'stencil8'
|
|
11
|
-
| 'depth16unorm'
|
|
12
|
-
| 'depth24plus'
|
|
13
|
-
| 'depth24plus-stencil8'
|
|
14
|
-
| 'depth32float'
|
|
15
|
-
// device.features.has('depth32float-stencil8')
|
|
16
|
-
| 'depth32float-stencil8';
|
|
17
|
-
|
|
18
|
-
/** Texture formats for color attachments */
|
|
19
|
-
export type ColorTextureFormat =
|
|
20
|
-
| WebGPUColorTextureFormat
|
|
21
|
-
| WebGL2ColorTextureFormat
|
|
22
|
-
| CompressedTextureFormat;
|
|
23
|
-
|
|
24
|
-
export type WebGPUColorTextureFormat =
|
|
25
|
-
// 8-bit formats
|
|
26
|
-
| 'r8unorm'
|
|
27
|
-
| 'r8snorm'
|
|
28
|
-
| 'r8uint'
|
|
29
|
-
| 'r8sint'
|
|
30
|
-
|
|
31
|
-
// 16-bit formats
|
|
32
|
-
| 'r16uint'
|
|
33
|
-
| 'r16sint'
|
|
34
|
-
| 'r16float'
|
|
35
|
-
| 'rg8unorm'
|
|
36
|
-
| 'rg8snorm'
|
|
37
|
-
| 'rg8uint'
|
|
38
|
-
| 'rg8sint'
|
|
39
|
-
|
|
40
|
-
// 32-bit formats
|
|
41
|
-
| 'r32uint'
|
|
42
|
-
| 'r32sint'
|
|
43
|
-
| 'r32float'
|
|
44
|
-
| 'rg16uint'
|
|
45
|
-
| 'rg16sint'
|
|
46
|
-
| 'rg16float'
|
|
47
|
-
| 'rgba8unorm'
|
|
48
|
-
| 'rgba8unorm-srgb'
|
|
49
|
-
| 'rgba8snorm'
|
|
50
|
-
| 'rgba8uint'
|
|
51
|
-
| 'rgba8sint'
|
|
52
|
-
| 'bgra8unorm'
|
|
53
|
-
| 'bgra8unorm-srgb'
|
|
54
|
-
// Packed 32-bit formats
|
|
55
|
-
| 'rgb9e5ufloat'
|
|
56
|
-
| 'rgb10a2unorm'
|
|
57
|
-
| 'rg11b10ufloat'
|
|
58
|
-
|
|
59
|
-
// 64-bit formats
|
|
60
|
-
| 'rg32uint'
|
|
61
|
-
| 'rg32sint'
|
|
62
|
-
| 'rg32float'
|
|
63
|
-
| 'rgba16uint'
|
|
64
|
-
| 'rgba16sint'
|
|
65
|
-
| 'rgba16float'
|
|
66
|
-
|
|
67
|
-
// 128-bit formats
|
|
68
|
-
| 'rgba32uint'
|
|
69
|
-
| 'rgba32sint'
|
|
70
|
-
| 'rgba32float';
|
|
71
|
-
|
|
72
|
-
export type CompressedTextureFormat =
|
|
73
|
-
// BC compressed formats usable if 'texture-compression-bc' is both
|
|
74
|
-
// supported by the device/user agent and enabled in requestDevice.
|
|
75
|
-
| 'bc1-rgba-unorm'
|
|
76
|
-
| 'bc1-rgba-unorm-srgb'
|
|
77
|
-
| 'bc2-rgba-unorm'
|
|
78
|
-
| 'bc2-rgba-unorm-srgb'
|
|
79
|
-
| 'bc3-rgba-unorm'
|
|
80
|
-
| 'bc3-rgba-unorm-srgb'
|
|
81
|
-
| 'bc4-r-unorm'
|
|
82
|
-
| 'bc4-r-snorm'
|
|
83
|
-
| 'bc5-rg-unorm'
|
|
84
|
-
| 'bc5-rg-snorm'
|
|
85
|
-
| 'bc6h-rgb-ufloat'
|
|
86
|
-
| 'bc6h-rgb-float'
|
|
87
|
-
| 'bc7-rgba-unorm'
|
|
88
|
-
| 'bc7-rgba-unorm-srgb'
|
|
89
|
-
|
|
90
|
-
// ETC2 compressed formats usable if "texture-compression-etc2" is both
|
|
91
|
-
// supported by the device/user agent and enabled in requestDevice.
|
|
92
|
-
| 'etc2-rgb8unorm'
|
|
93
|
-
| 'etc2-rgb8unorm-srgb'
|
|
94
|
-
| 'etc2-rgb8a1unorm'
|
|
95
|
-
| 'etc2-rgb8a1unorm-srgb'
|
|
96
|
-
| 'etc2-rgba8unorm'
|
|
97
|
-
| 'etc2-rgba8unorm-srgb'
|
|
98
|
-
| 'eac-r11unorm'
|
|
99
|
-
| 'eac-r11snorm'
|
|
100
|
-
| 'eac-rg11unorm'
|
|
101
|
-
| 'eac-rg11snorm'
|
|
102
|
-
|
|
103
|
-
// ASTC compressed formats usable if "texture-compression-astc" is both
|
|
104
|
-
// supported by the device/user agent and enabled in requestDevice.
|
|
105
|
-
// Textures must be multiple of block size (encoded in format string).
|
|
106
|
-
| 'astc-4x4-unorm'
|
|
107
|
-
| 'astc-4x4-unorm-srgb'
|
|
108
|
-
| 'astc-5x4-unorm'
|
|
109
|
-
| 'astc-5x4-unorm-srgb'
|
|
110
|
-
| 'astc-5x5-unorm'
|
|
111
|
-
| 'astc-5x5-unorm-srgb'
|
|
112
|
-
| 'astc-6x5-unorm'
|
|
113
|
-
| 'astc-6x5-unorm-srgb'
|
|
114
|
-
| 'astc-6x6-unorm'
|
|
115
|
-
| 'astc-6x6-unorm-srgb'
|
|
116
|
-
| 'astc-8x5-unorm'
|
|
117
|
-
| 'astc-8x5-unorm-srgb'
|
|
118
|
-
| 'astc-8x6-unorm'
|
|
119
|
-
| 'astc-8x6-unorm-srgb'
|
|
120
|
-
| 'astc-8x8-unorm'
|
|
121
|
-
| 'astc-8x8-unorm-srgb'
|
|
122
|
-
| 'astc-10x5-unorm'
|
|
123
|
-
| 'astc-10x5-unorm-srgb'
|
|
124
|
-
| 'astc-10x6-unorm'
|
|
125
|
-
| 'astc-10x6-unorm-srgb'
|
|
126
|
-
| 'astc-10x8-unorm'
|
|
127
|
-
| 'astc-10x8-unorm-srgb'
|
|
128
|
-
| 'astc-10x10-unorm'
|
|
129
|
-
| 'astc-10x10-unorm-srgb'
|
|
130
|
-
| 'astc-12x10-unorm'
|
|
131
|
-
| 'astc-12x10-unorm-srgb'
|
|
132
|
-
| 'astc-12x12-unorm'
|
|
133
|
-
| 'astc-12x12-unorm-srgb';
|
|
134
|
-
|
|
135
|
-
/** Sized formats in WebGL 2 that are not (yet?) supported by WebGPU */
|
|
136
|
-
export type WebGL2ColorTextureFormat =
|
|
137
|
-
| 'r16unorm-webgl'
|
|
138
|
-
| 'r16snorm-webgl'
|
|
139
|
-
| 'rgba4unorm-webgl'
|
|
140
|
-
| 'rgb565unorm-webgl'
|
|
141
|
-
| 'rgb5a1unorm-webgl'
|
|
142
|
-
| 'rgb8unorm-webgl'
|
|
143
|
-
| 'rgb8snorm-webgl'
|
|
144
|
-
| 'rg16unorm-webgl'
|
|
145
|
-
| 'rg16snorm-webgl'
|
|
146
|
-
| 'rgb10a2uint-webgl'
|
|
147
|
-
| 'rgb16unorm-webgl'
|
|
148
|
-
| 'rgb16snorm-webgl'
|
|
149
|
-
| 'rgba16unorm-webgl'
|
|
150
|
-
| 'rgba16snorm-webgl'
|
|
151
|
-
| 'rgb32float-webgl'
|
|
152
|
-
| 'bc1-rgb-unorm-webgl'
|
|
153
|
-
| 'bc1-rgb-unorm-srgb-webgl'
|
|
154
|
-
| 'pvrtc-rgb4unorm-webgl'
|
|
155
|
-
| 'pvrtc-rgba4unorm-webgl'
|
|
156
|
-
| 'pvrtc-rbg2unorm-webgl'
|
|
157
|
-
| 'pvrtc-rgba2unorm-webgl'
|
|
158
|
-
| 'etc1-rbg-unorm-webgl'
|
|
159
|
-
| 'atc-rgb-unorm-webgl'
|
|
160
|
-
| 'atc-rgba-unorm-webgl'
|
|
161
|
-
| 'atc-rgbai-unorm-webgl';
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
// luma.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
|
|
5
|
-
import {TypedArray, TypedArrayConstructor} from '../types';
|
|
6
|
-
import {VertexFormat} from './vertex-formats';
|
|
7
|
-
|
|
8
|
-
// import {DataType} from '../types/vertex-formats';
|
|
9
|
-
// type Omit<DataType, 'float16'> unfortunately breaks Typescript inferance
|
|
10
|
-
type DataType = 'uint8' | 'sint8' | 'uint16' | 'sint16' | 'uint32' | 'sint32' | 'float32';
|
|
11
|
-
type DataTypeNorm = 'unorm8' | 'snorm8' | 'unorm16' | 'snorm16';
|
|
12
|
-
|
|
13
|
-
export function getDataTypeFromTypedArray(
|
|
14
|
-
arrayOrType: TypedArray | TypedArrayConstructor
|
|
15
|
-
): DataType {
|
|
16
|
-
const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
|
|
17
|
-
switch (type) {
|
|
18
|
-
case Float32Array:
|
|
19
|
-
return 'float32';
|
|
20
|
-
case Uint16Array:
|
|
21
|
-
return 'uint16';
|
|
22
|
-
case Uint32Array:
|
|
23
|
-
return 'uint32';
|
|
24
|
-
case Uint8Array:
|
|
25
|
-
case Uint8ClampedArray:
|
|
26
|
-
return 'uint8';
|
|
27
|
-
case Int8Array:
|
|
28
|
-
return 'sint8';
|
|
29
|
-
case Int16Array:
|
|
30
|
-
return 'sint16';
|
|
31
|
-
case Int32Array:
|
|
32
|
-
return 'sint32';
|
|
33
|
-
default:
|
|
34
|
-
// Failed to deduce data type from typed array
|
|
35
|
-
throw new Error(type.constructor.name);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function getTypedArrayFromDataType(
|
|
40
|
-
dataType: DataType | DataTypeNorm
|
|
41
|
-
): TypedArrayConstructor {
|
|
42
|
-
switch (dataType) {
|
|
43
|
-
case 'float32':
|
|
44
|
-
return Float32Array;
|
|
45
|
-
case 'uint32':
|
|
46
|
-
return Uint32Array;
|
|
47
|
-
case 'sint32':
|
|
48
|
-
return Int32Array;
|
|
49
|
-
case 'uint16':
|
|
50
|
-
case 'unorm16':
|
|
51
|
-
return Uint16Array;
|
|
52
|
-
case 'sint16':
|
|
53
|
-
case 'snorm16':
|
|
54
|
-
return Int16Array;
|
|
55
|
-
case 'uint8':
|
|
56
|
-
case 'unorm8':
|
|
57
|
-
return Uint8Array;
|
|
58
|
-
case 'sint8':
|
|
59
|
-
case 'snorm8':
|
|
60
|
-
return Int8Array;
|
|
61
|
-
default:
|
|
62
|
-
// Failed to deduce typed array from data type
|
|
63
|
-
throw new Error(dataType);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/** Get the vertex format for an attribute with TypedArray and size */
|
|
68
|
-
export function getVertexFormatFromAttribute(
|
|
69
|
-
typedArray: TypedArray,
|
|
70
|
-
size: number,
|
|
71
|
-
normalized?: boolean
|
|
72
|
-
): VertexFormat {
|
|
73
|
-
if (!size || size > 4) {
|
|
74
|
-
throw new Error(`size ${size}`);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
const components = size as 1 | 2 | 3 | 4;
|
|
78
|
-
let dataType: DataType | DataTypeNorm = getDataTypeFromTypedArray(typedArray);
|
|
79
|
-
|
|
80
|
-
// TODO - Special cases for WebGL (not supported on WebGPU), overrides the check below
|
|
81
|
-
if (dataType === 'uint8' && normalized && components === 1) {
|
|
82
|
-
return 'unorm8-webgl';
|
|
83
|
-
}
|
|
84
|
-
if (dataType === 'uint8' && normalized && components === 3) {
|
|
85
|
-
return 'unorm8x3-webgl';
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (dataType === 'uint8' || dataType === 'sint8') {
|
|
89
|
-
if (components === 1 || components === 3) {
|
|
90
|
-
// WebGPU 8 bit formats must be aligned to 16 bit boundaries');
|
|
91
|
-
throw new Error(`size: ${size}`);
|
|
92
|
-
}
|
|
93
|
-
if (normalized) {
|
|
94
|
-
dataType = dataType.replace('int', 'norm') as 'unorm8' | 'snorm8';
|
|
95
|
-
}
|
|
96
|
-
return `${dataType}x${components}`;
|
|
97
|
-
}
|
|
98
|
-
if (dataType === 'uint16' || dataType === 'sint16') {
|
|
99
|
-
if (components === 1 || components === 3) {
|
|
100
|
-
// WebGPU 16 bit formats must be aligned to 32 bit boundaries
|
|
101
|
-
throw new Error(`size: ${size}`);
|
|
102
|
-
}
|
|
103
|
-
if (normalized) {
|
|
104
|
-
dataType = dataType.replace('int', 'norm') as 'unorm16' | 'snorm16';
|
|
105
|
-
}
|
|
106
|
-
return `${dataType}x${components}`;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (components === 1) {
|
|
110
|
-
return dataType;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return `${dataType}x${components}`;
|
|
114
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// luma.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
|
|
5
|
-
/** Basic data types signed and unsigned integers, and floats, of varying sizes */
|
|
6
|
-
export type DataType =
|
|
7
|
-
| 'uint8'
|
|
8
|
-
| 'sint8'
|
|
9
|
-
| 'uint16'
|
|
10
|
-
| 'sint16'
|
|
11
|
-
| 'uint32'
|
|
12
|
-
| 'sint32'
|
|
13
|
-
| 'float16'
|
|
14
|
-
| 'float32';
|
|
15
|
-
|
|
16
|
-
/** Vertex and Pixel data types. Include normalized integers */
|
|
17
|
-
export type NormalizedDataType =
|
|
18
|
-
| 'uint8'
|
|
19
|
-
| 'sint8'
|
|
20
|
-
| 'unorm8'
|
|
21
|
-
| 'snorm8'
|
|
22
|
-
| 'uint16'
|
|
23
|
-
| 'sint16'
|
|
24
|
-
| 'unorm16'
|
|
25
|
-
| 'snorm16'
|
|
26
|
-
| 'uint32'
|
|
27
|
-
| 'sint32'
|
|
28
|
-
// WebGPU does not support normalized 32 bit integer attributes...
|
|
29
|
-
// | 'unorm32'
|
|
30
|
-
// | 'snorm32'
|
|
31
|
-
| 'float32'
|
|
32
|
-
| 'float16';
|
|
33
|
-
|
|
34
|
-
/** Describes the type (without number of components) of a vertex format */
|
|
35
|
-
export type VertexType = NormalizedDataType;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Describes the memory format of a buffer that will be supplied to vertex attributes
|
|
39
|
-
* @note Must be compatible with the ShaderAttributeType of the shaders, see documentation.
|
|
40
|
-
* @note This is a superset of WebGPU vertex formats to allow foe some flexibility for WebGL only applications
|
|
41
|
-
* @todo Add device.isTextureFormatSupported() method?
|
|
42
|
-
*/
|
|
43
|
-
export type VertexFormat =
|
|
44
|
-
// 8 bit integers, note that only 16 bit aligned formats are supported in WebGPU (x2 and x4)
|
|
45
|
-
| 'uint8x2'
|
|
46
|
-
| 'uint8x4'
|
|
47
|
-
| 'sint8x2'
|
|
48
|
-
| 'sint8x4'
|
|
49
|
-
| 'unorm8-webgl'
|
|
50
|
-
| 'unorm8x2'
|
|
51
|
-
| 'unorm8x3-webgl'
|
|
52
|
-
| 'unorm8x4'
|
|
53
|
-
| 'snorm8-webgl'
|
|
54
|
-
| 'snorm8x2'
|
|
55
|
-
| 'snorm8x3-webgl'
|
|
56
|
-
| 'snorm8x4'
|
|
57
|
-
// 16 bit integers, note that only 32 bit aligned formats are supported in WebGPU (x2 and x4)
|
|
58
|
-
| 'uint16x2'
|
|
59
|
-
| 'uint16x4'
|
|
60
|
-
| 'sint16x2'
|
|
61
|
-
| 'sint16x4'
|
|
62
|
-
| 'unorm16x2'
|
|
63
|
-
| 'unorm16x4'
|
|
64
|
-
| 'snorm16x2'
|
|
65
|
-
| 'snorm16x4'
|
|
66
|
-
// 32 bit integers
|
|
67
|
-
| 'uint32'
|
|
68
|
-
| 'uint32x2'
|
|
69
|
-
| 'uint32x3'
|
|
70
|
-
| 'uint32x4'
|
|
71
|
-
| 'sint32'
|
|
72
|
-
| 'sint32x2'
|
|
73
|
-
| 'sint32x3'
|
|
74
|
-
| 'sint32x4'
|
|
75
|
-
// No normalized 32 bit integers in WebGPU...
|
|
76
|
-
// | 'unorm32'
|
|
77
|
-
// | 'unorm32x2'
|
|
78
|
-
// | 'unorm32x3'
|
|
79
|
-
// | 'unorm32x4'
|
|
80
|
-
// | 'snorm32'
|
|
81
|
-
// | 'snorm32x2'
|
|
82
|
-
// | 'snorm32x3'
|
|
83
|
-
// | 'snorm32x4'
|
|
84
|
-
// floats
|
|
85
|
-
| 'float16x2'
|
|
86
|
-
| 'float16x4'
|
|
87
|
-
| 'float32'
|
|
88
|
-
| 'float32x2'
|
|
89
|
-
| 'float32x3'
|
|
90
|
-
| 'float32x4';
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
// luma.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright (c) vis.gl contributors
|
|
4
|
-
|
|
5
|
-
import {ShaderAttributeType} from './shader-types';
|
|
6
|
-
|
|
7
|
-
/** Predeclared aliases @see https://www.w3.org/TR/WGSL/#vector-types */
|
|
8
|
-
export const WGSL_TYPE_ALIAS_MAP: Record<string, ShaderAttributeType> = {
|
|
9
|
-
vec2i: 'vec2<i32>',
|
|
10
|
-
vec3i: 'vec3<i32>',
|
|
11
|
-
vec4i: 'vec4<i32>',
|
|
12
|
-
vec2u: 'vec2<u32>',
|
|
13
|
-
vec3u: 'vec3<u32>',
|
|
14
|
-
vec4u: 'vec4<u32>',
|
|
15
|
-
vec2f: 'vec2<f32>',
|
|
16
|
-
vec3f: 'vec3<f32>',
|
|
17
|
-
vec4f: 'vec4<f32>',
|
|
18
|
-
// Requires the f16 extension.
|
|
19
|
-
vec2h: 'vec2<f16>',
|
|
20
|
-
vec3h: 'vec3<f16>',
|
|
21
|
-
vec4h: 'vec4<f16>'
|
|
22
|
-
};
|
|
File without changes
|
|
File without changes
|