@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
|
@@ -2,43 +2,40 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { Resource } from "./resource.js";
|
|
5
|
+
import { Sampler } from "./sampler.js";
|
|
6
|
+
import { log } from "../../utils/log.js";
|
|
7
|
+
const BASE_DIMENSIONS = {
|
|
8
|
+
'1d': '1d',
|
|
9
|
+
'2d': '2d',
|
|
10
|
+
'2d-array': '2d',
|
|
11
|
+
cube: '2d',
|
|
12
|
+
'cube-array': '2d',
|
|
13
|
+
'3d': '3d'
|
|
14
|
+
};
|
|
5
15
|
/**
|
|
6
16
|
* Abstract Texture interface
|
|
7
17
|
* Texture Object
|
|
8
18
|
* https://gpuweb.github.io/gpuweb/#gputexture
|
|
9
19
|
*/
|
|
10
20
|
export class Texture extends Resource {
|
|
21
|
+
/** The texture can be bound for use as a sampled texture in a shader */
|
|
22
|
+
static SAMPLE = 0x04;
|
|
23
|
+
/** The texture can be bound for use as a storage texture in a shader */
|
|
24
|
+
static STORAGE = 0x08;
|
|
25
|
+
/** The texture can be used as a color or depth/stencil attachment in a render pass */
|
|
26
|
+
static RENDER = 0x10;
|
|
27
|
+
/** The texture can be used as the source of a copy operation */
|
|
11
28
|
static COPY_SRC = 0x01;
|
|
29
|
+
/** he texture can be used as the destination of a copy or write operation */
|
|
12
30
|
static COPY_DST = 0x02;
|
|
31
|
+
/** @deprecated Use Texture.SAMPLE */
|
|
13
32
|
static TEXTURE = 0x04;
|
|
14
|
-
|
|
33
|
+
/** @deprecated Use Texture.RENDER */
|
|
15
34
|
static RENDER_ATTACHMENT = 0x10;
|
|
16
|
-
static CubeFaces = ['+X', '-X', '+Y', '-Y', '+Z', '-Z'];
|
|
17
|
-
static defaultProps = {
|
|
18
|
-
...Resource.defaultProps,
|
|
19
|
-
data: null,
|
|
20
|
-
dimension: '2d',
|
|
21
|
-
format: 'rgba8unorm',
|
|
22
|
-
width: undefined,
|
|
23
|
-
height: undefined,
|
|
24
|
-
depth: 1,
|
|
25
|
-
mipmaps: false,
|
|
26
|
-
compressed: false,
|
|
27
|
-
usage: 0,
|
|
28
|
-
mipLevels: undefined,
|
|
29
|
-
samples: undefined,
|
|
30
|
-
sampler: {},
|
|
31
|
-
view: undefined,
|
|
32
|
-
flipY: undefined
|
|
33
|
-
};
|
|
34
|
-
get [Symbol.toStringTag]() {
|
|
35
|
-
return 'Texture';
|
|
36
|
-
}
|
|
37
|
-
toString() {
|
|
38
|
-
return `Texture(${this.id},${this.format},${this.width}x${this.height})`;
|
|
39
|
-
}
|
|
40
35
|
/** dimension of this texture */
|
|
41
36
|
dimension;
|
|
37
|
+
/** base dimension of this texture */
|
|
38
|
+
baseDimension;
|
|
42
39
|
/** format of this texture */
|
|
43
40
|
format;
|
|
44
41
|
/** width in pixels of this texture */
|
|
@@ -51,147 +48,151 @@ export class Texture extends Resource {
|
|
|
51
48
|
mipLevels;
|
|
52
49
|
/** "Time" of last update. Monotonically increasing timestamp. TODO move to AsyncTexture? */
|
|
53
50
|
updateTimestamp;
|
|
51
|
+
get [Symbol.toStringTag]() {
|
|
52
|
+
return 'Texture';
|
|
53
|
+
}
|
|
54
|
+
toString() {
|
|
55
|
+
return `Texture(${this.id},${this.format},${this.width}x${this.height})`;
|
|
56
|
+
}
|
|
54
57
|
/** Do not use directly. Create with device.createTexture() */
|
|
55
58
|
constructor(device, props) {
|
|
56
59
|
props = Texture.normalizeProps(device, props);
|
|
57
60
|
super(device, props, Texture.defaultProps);
|
|
58
61
|
this.dimension = this.props.dimension;
|
|
62
|
+
this.baseDimension = BASE_DIMENSIONS[this.dimension];
|
|
59
63
|
this.format = this.props.format;
|
|
60
64
|
// Size
|
|
61
65
|
this.width = this.props.width;
|
|
62
66
|
this.height = this.props.height;
|
|
63
67
|
this.depth = this.props.depth;
|
|
68
|
+
this.mipLevels = this.props.mipLevels;
|
|
64
69
|
// Calculate size, if not provided
|
|
65
70
|
if (this.props.width === undefined || this.props.height === undefined) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
if (device.isExternalImage(props.data)) {
|
|
72
|
+
const size = device.getExternalImageSize(props.data);
|
|
73
|
+
this.width = size?.width || 1;
|
|
74
|
+
this.height = size?.height || 1;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.width = 1;
|
|
78
|
+
this.height = 1;
|
|
79
|
+
if (this.props.width === undefined || this.props.height === undefined) {
|
|
80
|
+
log.warn(`${this} created with undefined width or height. This is deprecated. Use AsyncTexture instead.`)();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
75
83
|
}
|
|
76
|
-
// Auto-calculate the number of mip levels as a convenience
|
|
77
|
-
// TODO - Should we clamp to 1-getMipLevelCount?
|
|
78
|
-
this.mipLevels =
|
|
79
|
-
this.props.mipLevels === 'pyramid'
|
|
80
|
-
? Texture.getMipLevelCount(this.width, this.height)
|
|
81
|
-
: this.props.mipLevels || 1;
|
|
82
84
|
// TODO - perhaps this should be set on async write completion?
|
|
83
85
|
this.updateTimestamp = device.incrementTimestamp();
|
|
84
86
|
}
|
|
87
|
+
/** Set sampler props associated with this texture */
|
|
88
|
+
setSampler(sampler) {
|
|
89
|
+
this.sampler = sampler instanceof Sampler ? sampler : this.device.createSampler(sampler);
|
|
90
|
+
}
|
|
85
91
|
/**
|
|
86
|
-
* Create a new texture with the same parameters and optionally
|
|
92
|
+
* Create a new texture with the same parameters and optionally a different size
|
|
87
93
|
* @note Textures are immutable and cannot be resized after creation, but we can create a similar texture with the same parameters but a new size.
|
|
88
94
|
* @note Does not copy contents of the texture
|
|
89
95
|
*/
|
|
90
96
|
clone(size) {
|
|
91
97
|
return this.device.createTexture({ ...this.props, ...size });
|
|
92
98
|
}
|
|
93
|
-
/**
|
|
94
|
-
static
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
(typeof HTMLCanvasElement !== 'undefined' && data instanceof HTMLCanvasElement) ||
|
|
101
|
-
(typeof OffscreenCanvas !== 'undefined' && data instanceof OffscreenCanvas));
|
|
102
|
-
}
|
|
103
|
-
/** Determine size (width and height) of provided image data */
|
|
104
|
-
static getExternalImageSize(data) {
|
|
105
|
-
if ((typeof ImageData !== 'undefined' && data instanceof ImageData) ||
|
|
106
|
-
(typeof ImageBitmap !== 'undefined' && data instanceof ImageBitmap) ||
|
|
107
|
-
(typeof HTMLCanvasElement !== 'undefined' && data instanceof HTMLCanvasElement) ||
|
|
108
|
-
(typeof OffscreenCanvas !== 'undefined' && data instanceof OffscreenCanvas)) {
|
|
109
|
-
return { width: data.width, height: data.height };
|
|
110
|
-
}
|
|
111
|
-
if (typeof HTMLImageElement !== 'undefined' && data instanceof HTMLImageElement) {
|
|
112
|
-
return { width: data.naturalWidth, height: data.naturalHeight };
|
|
113
|
-
}
|
|
114
|
-
if (typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement) {
|
|
115
|
-
return { width: data.videoWidth, height: data.videoHeight };
|
|
116
|
-
}
|
|
117
|
-
if (typeof VideoFrame !== 'undefined' && data instanceof VideoFrame) {
|
|
118
|
-
// TODO: is this the right choice for width and height?
|
|
119
|
-
return { width: data.displayWidth, height: data.displayHeight };
|
|
120
|
-
}
|
|
121
|
-
throw new Error('Unknown image type');
|
|
122
|
-
}
|
|
123
|
-
/** Check if texture data is a typed array */
|
|
124
|
-
static isTextureLevelData(data) {
|
|
125
|
-
const typedArray = data?.data;
|
|
126
|
-
return ArrayBuffer.isView(typedArray);
|
|
127
|
-
}
|
|
128
|
-
/** Get the size of the texture described by the provided TextureData */
|
|
129
|
-
static getTextureDataSize(data) {
|
|
130
|
-
if (!data) {
|
|
131
|
-
return null;
|
|
132
|
-
}
|
|
133
|
-
if (ArrayBuffer.isView(data)) {
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
// Recurse into arrays (array of miplevels)
|
|
137
|
-
if (Array.isArray(data)) {
|
|
138
|
-
return Texture.getTextureDataSize(data[0]);
|
|
139
|
-
}
|
|
140
|
-
if (Texture.isExternalImage(data)) {
|
|
141
|
-
return Texture.getExternalImageSize(data);
|
|
99
|
+
/** Ensure we have integer coordinates */
|
|
100
|
+
static normalizeProps(device, props) {
|
|
101
|
+
const newProps = { ...props };
|
|
102
|
+
// Ensure we have integer coordinates
|
|
103
|
+
const { width, height } = newProps;
|
|
104
|
+
if (typeof width === 'number') {
|
|
105
|
+
newProps.width = Math.max(1, Math.ceil(width));
|
|
142
106
|
}
|
|
143
|
-
if (
|
|
144
|
-
|
|
145
|
-
const untypedData = textureDataArray[0];
|
|
146
|
-
return { width: untypedData.width, height: untypedData.height };
|
|
107
|
+
if (typeof height === 'number') {
|
|
108
|
+
newProps.height = Math.max(1, Math.ceil(height));
|
|
147
109
|
}
|
|
148
|
-
|
|
110
|
+
return newProps;
|
|
149
111
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
112
|
+
// HELPERS
|
|
113
|
+
/** Initialize texture with supplied props */
|
|
114
|
+
// eslint-disable-next-line max-statements
|
|
115
|
+
_initializeData(data) {
|
|
116
|
+
// Store opts for accessors
|
|
117
|
+
if (this.device.isExternalImage(data)) {
|
|
118
|
+
this.copyExternalImage({
|
|
119
|
+
image: data,
|
|
120
|
+
width: this.width,
|
|
121
|
+
height: this.height,
|
|
122
|
+
depth: this.depth,
|
|
123
|
+
mipLevel: 0,
|
|
124
|
+
x: 0,
|
|
125
|
+
y: 0,
|
|
126
|
+
z: 0,
|
|
127
|
+
aspect: 'all',
|
|
128
|
+
colorSpace: 'srgb',
|
|
129
|
+
premultipliedAlpha: false,
|
|
130
|
+
flipY: false
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
else if (data) {
|
|
134
|
+
this.copyImageData({
|
|
135
|
+
data,
|
|
136
|
+
// width: this.width,
|
|
137
|
+
// height: this.height,
|
|
138
|
+
// depth: this.depth,
|
|
139
|
+
mipLevel: 0,
|
|
140
|
+
x: 0,
|
|
141
|
+
y: 0,
|
|
142
|
+
z: 0,
|
|
143
|
+
aspect: 'all'
|
|
144
|
+
});
|
|
174
145
|
}
|
|
175
|
-
return lodArray;
|
|
176
146
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
147
|
+
_normalizeCopyImageDataOptions(options_) {
|
|
148
|
+
const { width, height, depth } = this;
|
|
149
|
+
const options = { ...Texture.defaultCopyDataOptions, width, height, depth, ...options_ };
|
|
150
|
+
const info = this.device.getTextureFormatInfo(this.format);
|
|
151
|
+
if (!options_.bytesPerRow && !info.bytesPerPixel) {
|
|
152
|
+
throw new Error(`bytesPerRow must be provided for texture format ${this.format}`);
|
|
153
|
+
}
|
|
154
|
+
options.bytesPerRow = options_.bytesPerRow || width * (info.bytesPerPixel || 4);
|
|
155
|
+
options.rowsPerImage = options_.rowsPerImage || height;
|
|
156
|
+
// WebGL will error if we try to copy outside the bounds of the texture
|
|
157
|
+
// options.width = Math.min(options.width, this.width - options.x);
|
|
158
|
+
// options.height = Math.min(options.height, this.height - options.y);
|
|
159
|
+
return options;
|
|
180
160
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
case '-Y': return 3;
|
|
189
|
-
case '+Z': return 4;
|
|
190
|
-
case '-Z': return 5;
|
|
191
|
-
default: throw new Error(face);
|
|
192
|
-
}
|
|
161
|
+
_normalizeCopyExternalImageOptions(options_) {
|
|
162
|
+
const size = this.device.getExternalImageSize(options_.image);
|
|
163
|
+
const options = { ...Texture.defaultCopyExternalImageOptions, ...size, ...options_ };
|
|
164
|
+
// WebGL will error if we try to copy outside the bounds of the texture
|
|
165
|
+
options.width = Math.min(options.width, this.width - options.x);
|
|
166
|
+
options.height = Math.min(options.height, this.height - options.y);
|
|
167
|
+
return options;
|
|
193
168
|
}
|
|
194
169
|
/** Default options */
|
|
170
|
+
static defaultProps = {
|
|
171
|
+
...Resource.defaultProps,
|
|
172
|
+
data: null,
|
|
173
|
+
dimension: '2d',
|
|
174
|
+
format: 'rgba8unorm',
|
|
175
|
+
usage: Texture.TEXTURE | Texture.RENDER_ATTACHMENT | Texture.COPY_DST,
|
|
176
|
+
width: undefined,
|
|
177
|
+
height: undefined,
|
|
178
|
+
depth: 1,
|
|
179
|
+
mipLevels: 1,
|
|
180
|
+
samples: undefined,
|
|
181
|
+
sampler: {},
|
|
182
|
+
view: undefined
|
|
183
|
+
};
|
|
184
|
+
static defaultCopyDataOptions = {
|
|
185
|
+
data: undefined,
|
|
186
|
+
byteOffset: 0,
|
|
187
|
+
bytesPerRow: undefined,
|
|
188
|
+
rowsPerImage: undefined,
|
|
189
|
+
mipLevel: 0,
|
|
190
|
+
x: 0,
|
|
191
|
+
y: 0,
|
|
192
|
+
z: 0,
|
|
193
|
+
aspect: 'all'
|
|
194
|
+
};
|
|
195
|
+
/** Default options */
|
|
195
196
|
static defaultCopyExternalImageOptions = {
|
|
196
197
|
image: undefined,
|
|
197
198
|
sourceX: 0,
|
|
@@ -208,22 +209,5 @@ export class Texture extends Resource {
|
|
|
208
209
|
premultipliedAlpha: false,
|
|
209
210
|
flipY: false
|
|
210
211
|
};
|
|
211
|
-
/** Ensure we have integer coordinates */
|
|
212
|
-
static normalizeProps(device, props) {
|
|
213
|
-
const newProps = { ...props };
|
|
214
|
-
// Allow device to override props (e.g. props.mipmaps)
|
|
215
|
-
const overriddenDefaultProps = device?.props?._resourceDefaults?.texture || {};
|
|
216
|
-
// TODO - Type issue with props.data circumvented with Object.assign
|
|
217
|
-
Object.assign(newProps, overriddenDefaultProps);
|
|
218
|
-
// Ensure we have integer coordinates
|
|
219
|
-
const { width, height } = newProps;
|
|
220
|
-
if (typeof width === 'number') {
|
|
221
|
-
newProps.width = Math.max(1, Math.ceil(width));
|
|
222
|
-
}
|
|
223
|
-
if (typeof height === 'number') {
|
|
224
|
-
newProps.height = Math.max(1, Math.ceil(height));
|
|
225
|
-
}
|
|
226
|
-
return newProps;
|
|
227
|
-
}
|
|
228
212
|
}
|
|
229
213
|
//# sourceMappingURL=texture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/texture.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAMpC,OAAO,EAAC,QAAQ,EAAgB,sBAAmB;
|
|
1
|
+
{"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/texture.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,13 @@ import { AttributeInfo } from "../../adapter-utils/get-attribute-from-layouts.js
|
|
|
3
3
|
import type { Device } from "../device.js";
|
|
4
4
|
import type { Buffer } from "./buffer.js";
|
|
5
5
|
import type { RenderPass } from "./render-pass.js";
|
|
6
|
-
import type { RenderPipeline } from "./render-pipeline.js";
|
|
7
6
|
import { Resource, ResourceProps } from "./resource.js";
|
|
7
|
+
import { ShaderLayout } from "../types/shader-layout.js";
|
|
8
|
+
import { BufferLayout } from "../types/buffer-layout.js";
|
|
8
9
|
/** Properties for initializing a VertexArray */
|
|
9
10
|
export type VertexArrayProps = ResourceProps & {
|
|
10
|
-
|
|
11
|
+
shaderLayout: ShaderLayout;
|
|
12
|
+
bufferLayout: BufferLayout[];
|
|
11
13
|
};
|
|
12
14
|
/**
|
|
13
15
|
* Stores attribute bindings.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vertex-array.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/vertex-array.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,uBAAoB;AAC5C,OAAO,EACL,aAAa,EAEd,0DAAuD;AACxD,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,KAAK,EAAC,MAAM,EAAC,oBAAiB;AACrC,OAAO,KAAK,EAAC,UAAU,EAAC,yBAAsB;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"vertex-array.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/vertex-array.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,uBAAoB;AAC5C,OAAO,EACL,aAAa,EAEd,0DAAuD;AACxD,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,KAAK,EAAC,MAAM,EAAC,oBAAiB;AACrC,OAAO,KAAK,EAAC,UAAU,EAAC,yBAAsB;AAC9C,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,sBAAmB;AACnD,OAAO,EAAC,YAAY,EAAC,kCAA+B;AACpD,OAAO,EAAC,YAAY,EAAC,kCAA+B;AAEpD,gDAAgD;AAChD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,8BAAsB,WAAY,SAAQ,QAAQ,CAAC,gBAAgB,CAAC;IAClE,OAAgB,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAItD;IAEF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,sCAAsC;IACtC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,8EAA8E;IAC9E,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC;IAEnD,mBAAmB;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,wCAAwC;IACxC,UAAU,EAAE,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;gBAE/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;IAWnD,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IACrD,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAEnE,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IACvD,QAAQ,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxD,uDAAuD;IACvD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;CAGnE"}
|
|
@@ -13,7 +13,8 @@ import { Resource } from "./resource.js";
|
|
|
13
13
|
export class VertexArray extends Resource {
|
|
14
14
|
static defaultProps = {
|
|
15
15
|
...Resource.defaultProps,
|
|
16
|
-
|
|
16
|
+
shaderLayout: undefined,
|
|
17
|
+
bufferLayout: []
|
|
17
18
|
};
|
|
18
19
|
get [Symbol.toStringTag]() {
|
|
19
20
|
return 'VertexArray';
|
|
@@ -30,16 +31,12 @@ export class VertexArray extends Resource {
|
|
|
30
31
|
super(device, props, VertexArray.defaultProps);
|
|
31
32
|
this.maxVertexAttributes = device.limits.maxVertexAttributes;
|
|
32
33
|
this.attributes = new Array(this.maxVertexAttributes).fill(null);
|
|
33
|
-
|
|
34
|
-
if (!shaderLayout || !bufferLayout) {
|
|
35
|
-
throw new Error('VertexArray');
|
|
36
|
-
}
|
|
37
|
-
this.attributeInfos = getAttributeInfosByLocation(shaderLayout, bufferLayout, this.maxVertexAttributes);
|
|
34
|
+
this.attributeInfos = getAttributeInfosByLocation(props.shaderLayout, props.bufferLayout, this.maxVertexAttributes);
|
|
38
35
|
}
|
|
39
36
|
// DEPRECATED METHODS
|
|
40
37
|
/** @deprecated Set constant attributes (WebGL only) */
|
|
41
38
|
setConstantWebGL(location, value) {
|
|
42
|
-
this.device.reportError(new Error('constant attributes not supported'));
|
|
39
|
+
this.device.reportError(new Error('constant attributes not supported'), this)();
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
42
|
//# sourceMappingURL=vertex-array.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vertex-array.js","sourceRoot":"","sources":["../../../src/adapter/resources/vertex-array.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAEL,2BAA2B,EAC5B,0DAAuD;
|
|
1
|
+
{"version":3,"file":"vertex-array.js","sourceRoot":"","sources":["../../../src/adapter/resources/vertex-array.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAEL,2BAA2B,EAC5B,0DAAuD;AAIxD,OAAO,EAAC,QAAQ,EAAgB,sBAAmB;AAUnD;;;;;;GAMG;AACH,MAAM,OAAgB,WAAY,SAAQ,QAA0B;IAClE,MAAM,CAAU,YAAY,GAA+B;QACzD,GAAG,QAAQ,CAAC,YAAY;QACxB,YAAY,EAAE,SAAU;QACxB,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,sCAAsC;IAC7B,mBAAmB,CAAS;IACrC,8EAA8E;IAC3D,cAAc,CAAkB;IAEnD,mBAAmB;IACnB,WAAW,GAAkB,IAAI,CAAC;IAClC,wCAAwC;IACxC,UAAU,CAAiC;IAE3C,YAAY,MAAc,EAAE,KAAuB;QACjD,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,2BAA2B,CAC/C,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,IAAI,CAAC,mBAAmB,CACzB,CAAC;IACJ,CAAC;IAUD,qBAAqB;IAErB,uDAAuD;IACvD,gBAAgB,CAAC,QAAgB,EAAE,KAAwB;QACzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;IAClF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TextureFormatColor, TextureFormatDepthStencil, TextureFormat } from "../../shadertypes/textures/texture-formats.js";
|
|
2
2
|
import type { Texture } from "../resources/texture.js";
|
|
3
3
|
import type { TextureView } from "../resources/texture-view.js";
|
|
4
4
|
/** Describes a buffer binding layout */
|
|
@@ -38,7 +38,7 @@ export type ColorAttachment = {
|
|
|
38
38
|
/** Describes the texture subresource that will be output to for this color attachment. */
|
|
39
39
|
texture?: TextureView | Texture;
|
|
40
40
|
/** Format of the texture resource. Used to auto create texture if not supplied */
|
|
41
|
-
format?:
|
|
41
|
+
format?: TextureFormatColor;
|
|
42
42
|
/** Value to clear to prior to executing the render pass. Default: [0, 0, 0, 0]. Ignored if loadOp is not "clear". */
|
|
43
43
|
clearValue?: number[];
|
|
44
44
|
/** load operation to perform on texture prior to executing the render pass. Default: 'clear'. */
|
|
@@ -54,7 +54,7 @@ export type DepthStencilAttachment = {
|
|
|
54
54
|
/** Describes the texture subresource that will be output to and read from for this depth/stencil attachment. */
|
|
55
55
|
texture?: TextureView | Texture;
|
|
56
56
|
/** Format of the texture resource. Used to auto create texture if not supplied */
|
|
57
|
-
format?:
|
|
57
|
+
format?: TextureFormatDepthStencil;
|
|
58
58
|
/** Value to clear depth component to prior to executing the render pass, if depthLoadOp is "clear". 0.0-1.0. */
|
|
59
59
|
depthClearValue?: number;
|
|
60
60
|
/** Indicates load operation to perform on depth component prior to executing the render pass. Default 'clear'. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/attachments.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,aAAa,EACd,
|
|
1
|
+
{"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/attachments.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,aAAa,EACd,sDAAmD;AACpD,OAAO,KAAK,EAAC,OAAO,EAAC,gCAA6B;AAClD,OAAO,KAAK,EAAC,WAAW,EAAC,qCAAkC;AAM3D,wCAAwC;AACxC,KAAK,mBAAmB,GAAG;IACzB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,mBAAmB,CAAC;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,kCAAkC;AAClC,KAAK,oBAAoB,GAAG;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACxE,UAAU,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,0CAA0C;AAC1C,KAAK,2BAA2B,GAAG;IACjC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,GACnB,oBAAoB,GACpB,2BAA2B,CAAC;AAIhC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAI5B,qHAAqH;IACrH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,mGAAmG;IACnG,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,gHAAgH;IAChH,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,gHAAgH;IAChH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kHAAkH;IAClH,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,uGAAuG;IACvG,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,uDAAuD;IACvD,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qHAAqH;IACrH,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { VertexFormat } from "../../
|
|
1
|
+
import type { VertexFormat } from "../../shadertypes/vertex-arrays/vertex-formats.js";
|
|
2
2
|
/**
|
|
3
3
|
* Provides specific details about the memory layout of the actual buffers
|
|
4
4
|
* that will be provided to a `RenderPipeline`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/buffer-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC
|
|
1
|
+
{"version":3,"file":"buffer-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/buffer-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,0DAAuD;AAEjF;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;;;;;;;;IAuBI;AACJ,MAAM,MAAM,YAAY,GAAG;IACzB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACrC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,GAAG;IAClC,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,MAAM,EAAE,YAAY,CAAC;IACrB,+FAA+F;IAC/F,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NumberArray4, NumberArray6 } from '@math.gl/types';
|
|
2
|
-
import {
|
|
2
|
+
import { TextureFormatDepthStencil } from "../../shadertypes/textures/texture-formats.js";
|
|
3
3
|
export type CompareFunction = 'never' | 'less' | 'equal' | 'less-equal' | 'greater' | 'not-equal' | 'greater-equal' | 'always';
|
|
4
4
|
export type PrimitiveTopology = 'point-list' | 'line-list' | 'line-strip' | 'triangle-list' | 'triangle-strip';
|
|
5
5
|
export type IndexFormat = 'uint16' | 'uint32';
|
|
@@ -57,7 +57,7 @@ export type DepthStencilParameters = {
|
|
|
57
57
|
/** The comparison operation used to test fragment depths against existing depthStencilAttachment depth values. */
|
|
58
58
|
depthCompare?: CompareFunction;
|
|
59
59
|
/** The format of depthStencilAttachment this GPURenderPipeline will be compatible with. */
|
|
60
|
-
depthFormat?:
|
|
60
|
+
depthFormat?: TextureFormatDepthStencil;
|
|
61
61
|
/** Bitmask controlling which depthStencilAttachment stencil value bits are read when performing stencil comparison tests. */
|
|
62
62
|
stencilReadMask?: number;
|
|
63
63
|
/** Bitmask controlling which depthStencilAttachment stencil value bits are written to when performing stencil operations. */
|
|
@@ -72,9 +72,13 @@ export type DepthStencilParameters = {
|
|
|
72
72
|
stencilDepthFailOperation?: StencilOperation;
|
|
73
73
|
};
|
|
74
74
|
/** BlendFactor defines how either a source or destination blend factors is calculated */
|
|
75
|
-
export type BlendFactor = 'zero' | 'one' | 'src
|
|
75
|
+
export type BlendFactor = 'zero' | 'one' | 'src' | 'one-minus-src' | 'src-alpha' | 'one-minus-src-alpha' | 'dst' | 'one-minus-dst' | 'dst-alpha' | 'one-minus-dst-alpha' | 'src-alpha-saturated' | 'constant' | 'one-minus-constant' | 'src1' | 'one-minus-src1' | 'src1-alpha' | 'one-minus-src1-alpha';
|
|
76
76
|
/** BlendOperation defines the algorithm used to combine source and destination blend factors: */
|
|
77
77
|
export type BlendOperation = 'add' | 'subtract' | 'reverse-subtract' | 'min' | 'max';
|
|
78
|
+
/**
|
|
79
|
+
* Color parameters are set on the RenderPipeline
|
|
80
|
+
* @todo - this needs to be settable on a per-attachment basis, not just for first attachment
|
|
81
|
+
*/
|
|
78
82
|
export type ColorParameters = {
|
|
79
83
|
/** Enable blending */
|
|
80
84
|
blend?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/parameters.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAC,yBAAyB,EAAC,
|
|
1
|
+
{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/parameters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/adapter/types/parameters.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/adapter/types/parameters.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AA4MpC,+CAA+C;AAE/C,MAAM,CAAC,MAAM,kBAAkB,GAAyB;IACtD,2BAA2B;IAE3B,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,KAAK;IAEhB,mBAAmB;IAEnB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE,aAAa;IAE1B,SAAS,EAAE,CAAC;IACZ,mBAAmB,EAAE,CAAC;IACtB,cAAc,EAAE,CAAC;IAEjB,qBAAqB;IAErB,eAAe,EAAE,UAAU;IAC3B,gBAAgB,EAAE,UAAU;IAE5B,cAAc,EAAE,QAAQ;IACxB,oBAAoB,EAAE,MAAM;IAC5B,oBAAoB,EAAE,MAAM;IAC5B,yBAAyB,EAAE,MAAM;IAEjC,yBAAyB;IACzB,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,UAAU;IACtB,4BAA4B,EAAE,KAAK;IAEnC,6BAA6B;IAC7B,KAAK,EAAE,KAAK;IAEZ,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,MAAM;IAE3B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,MAAM;IAE3B,SAAS,EAAE,GAAG;IAEd,aAAa;IAEb,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,iBAAiB,EAAE,KAAK;IAExB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;CAC1B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { TextureFormat } from "../../
|
|
2
|
-
import type {
|
|
1
|
+
import type { TextureFormat } from "../../shadertypes/textures/texture-formats.js";
|
|
2
|
+
import type { VariableShaderType, AttributeShaderType } from "../../shadertypes/data-types/shader-types.js";
|
|
3
3
|
import type { Buffer } from "../resources/buffer.js";
|
|
4
4
|
import type { Sampler } from "../resources/sampler.js";
|
|
5
5
|
import type { Texture } from "../resources/texture.js";
|
|
@@ -49,7 +49,7 @@ export type AttributeDeclaration = {
|
|
|
49
49
|
/** The index into the GPU's vertex array buffer bank (usually between 0-15) */
|
|
50
50
|
location: number;
|
|
51
51
|
/** WebGPU-style shader type. The declared format of the attribute in the shader code. Buffer's vertex format needs to map to this. */
|
|
52
|
-
type:
|
|
52
|
+
type: AttributeShaderType;
|
|
53
53
|
/** Inferred from attribute name. @note Technically not part of static structure of shader */
|
|
54
54
|
stepMode?: 'vertex' | 'instance';
|
|
55
55
|
};
|
|
@@ -72,7 +72,7 @@ export type UniformBufferBindingLayout = {
|
|
|
72
72
|
};
|
|
73
73
|
export type UniformInfo = {
|
|
74
74
|
name: string;
|
|
75
|
-
format:
|
|
75
|
+
format: VariableShaderType;
|
|
76
76
|
type?: string;
|
|
77
77
|
arrayLength: number;
|
|
78
78
|
byteOffset: number;
|
|
@@ -144,7 +144,7 @@ export type Binding = TextureView | Texture | Sampler | Buffer | {
|
|
|
144
144
|
export type VaryingBinding = {
|
|
145
145
|
location: number;
|
|
146
146
|
name: string;
|
|
147
|
-
type:
|
|
147
|
+
type: AttributeShaderType;
|
|
148
148
|
size: number;
|
|
149
149
|
};
|
|
150
150
|
/** Describes a uniform block binding for a program */
|