@luma.gl/engine 9.2.5 → 9.3.0-alpha.10
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/animation-loop/animation-loop.d.ts +11 -5
- package/dist/animation-loop/animation-loop.d.ts.map +1 -1
- package/dist/animation-loop/animation-loop.js +83 -47
- package/dist/animation-loop/animation-loop.js.map +1 -1
- package/dist/animation-loop/make-animation-loop.js +7 -1
- package/dist/animation-loop/make-animation-loop.js.map +1 -1
- package/dist/animation-loop/request-animation-frame.d.ts.map +1 -1
- package/dist/animation-loop/request-animation-frame.js +23 -6
- package/dist/animation-loop/request-animation-frame.js.map +1 -1
- package/dist/compute/computation.d.ts +3 -7
- package/dist/compute/computation.d.ts.map +1 -1
- package/dist/compute/computation.js +16 -13
- package/dist/compute/computation.js.map +1 -1
- package/dist/compute/swap.d.ts +2 -0
- package/dist/compute/swap.d.ts.map +1 -1
- package/dist/compute/swap.js +10 -5
- package/dist/compute/swap.js.map +1 -1
- package/dist/dist.dev.js +2639 -1290
- package/dist/dist.min.js +325 -210
- package/dist/dynamic-texture/dynamic-texture.d.ts +102 -0
- package/dist/dynamic-texture/dynamic-texture.d.ts.map +1 -0
- package/dist/dynamic-texture/dynamic-texture.js +556 -0
- package/dist/dynamic-texture/dynamic-texture.js.map +1 -0
- package/dist/dynamic-texture/texture-data.d.ts +144 -0
- package/dist/dynamic-texture/texture-data.d.ts.map +1 -0
- package/dist/dynamic-texture/texture-data.js +208 -0
- package/dist/dynamic-texture/texture-data.js.map +1 -0
- package/dist/geometries/cone-geometry.d.ts +3 -1
- package/dist/geometries/cone-geometry.d.ts.map +1 -1
- package/dist/geometries/cone-geometry.js.map +1 -1
- package/dist/geometries/cylinder-geometry.d.ts +2 -1
- package/dist/geometries/cylinder-geometry.d.ts.map +1 -1
- package/dist/geometries/cylinder-geometry.js.map +1 -1
- package/dist/geometry/gpu-geometry.d.ts.map +1 -1
- package/dist/geometry/gpu-geometry.js +8 -3
- package/dist/geometry/gpu-geometry.js.map +1 -1
- package/dist/index.cjs +2497 -1212
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +20 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/material/material-factory.d.ts +73 -0
- package/dist/material/material-factory.d.ts.map +1 -0
- package/dist/material/material-factory.js +111 -0
- package/dist/material/material-factory.js.map +1 -0
- package/dist/material/material.d.ts +84 -0
- package/dist/material/material.d.ts.map +1 -0
- package/dist/material/material.js +176 -0
- package/dist/material/material.js.map +1 -0
- package/dist/model/model.d.ts +47 -16
- package/dist/model/model.d.ts.map +1 -1
- package/dist/model/model.js +113 -47
- package/dist/model/model.js.map +1 -1
- package/dist/model/split-uniforms-and-bindings.d.ts +4 -3
- package/dist/model/split-uniforms-and-bindings.d.ts.map +1 -1
- package/dist/model/split-uniforms-and-bindings.js +2 -2
- package/dist/model/split-uniforms-and-bindings.js.map +1 -1
- package/dist/models/billboard-texture-model.d.ts +8 -5
- package/dist/models/billboard-texture-model.d.ts.map +1 -1
- package/dist/models/billboard-texture-model.js +77 -23
- package/dist/models/billboard-texture-model.js.map +1 -1
- package/dist/models/billboard-texture-module.d.ts +1 -1
- package/dist/models/billboard-texture-module.js +1 -1
- package/dist/models/clip-space.js +7 -7
- package/dist/models/directional-light-model.d.ts +7 -0
- package/dist/models/directional-light-model.d.ts.map +1 -0
- package/dist/models/directional-light-model.js +23 -0
- package/dist/models/directional-light-model.js.map +1 -0
- package/dist/models/light-model-utils.d.ts +69 -0
- package/dist/models/light-model-utils.d.ts.map +1 -0
- package/dist/models/light-model-utils.js +395 -0
- package/dist/models/light-model-utils.js.map +1 -0
- package/dist/models/point-light-model.d.ts +7 -0
- package/dist/models/point-light-model.d.ts.map +1 -0
- package/dist/models/point-light-model.js +22 -0
- package/dist/models/point-light-model.js.map +1 -0
- package/dist/models/spot-light-model.d.ts +7 -0
- package/dist/models/spot-light-model.d.ts.map +1 -0
- package/dist/models/spot-light-model.js +23 -0
- package/dist/models/spot-light-model.js.map +1 -0
- package/dist/modules/picking/color-picking.d.ts +5 -9
- package/dist/modules/picking/color-picking.d.ts.map +1 -1
- package/dist/modules/picking/color-picking.js +122 -115
- package/dist/modules/picking/color-picking.js.map +1 -1
- package/dist/modules/picking/index-picking.d.ts +4 -4
- package/dist/modules/picking/index-picking.d.ts.map +1 -1
- package/dist/modules/picking/index-picking.js +36 -16
- package/dist/modules/picking/index-picking.js.map +1 -1
- package/dist/modules/picking/legacy-color-picking.d.ts +26 -0
- package/dist/modules/picking/legacy-color-picking.d.ts.map +1 -0
- package/dist/modules/picking/legacy-color-picking.js +7 -0
- package/dist/modules/picking/legacy-color-picking.js.map +1 -0
- package/dist/modules/picking/picking-manager.d.ts +29 -3
- package/dist/modules/picking/picking-manager.d.ts.map +1 -1
- package/dist/modules/picking/picking-manager.js +188 -41
- package/dist/modules/picking/picking-manager.js.map +1 -1
- package/dist/modules/picking/picking-uniforms.d.ts +13 -12
- package/dist/modules/picking/picking-uniforms.d.ts.map +1 -1
- package/dist/modules/picking/picking-uniforms.js +27 -14
- package/dist/modules/picking/picking-uniforms.js.map +1 -1
- package/dist/modules/picking/picking.d.ts +25 -0
- package/dist/modules/picking/picking.d.ts.map +1 -0
- package/dist/modules/picking/picking.js +18 -0
- package/dist/modules/picking/picking.js.map +1 -0
- package/dist/passes/get-fragment-shader.js +12 -27
- package/dist/passes/get-fragment-shader.js.map +1 -1
- package/dist/passes/shader-pass-renderer.d.ts +5 -7
- package/dist/passes/shader-pass-renderer.d.ts.map +1 -1
- package/dist/passes/shader-pass-renderer.js +16 -42
- package/dist/passes/shader-pass-renderer.js.map +1 -1
- package/dist/scenegraph/group-node.d.ts +5 -0
- package/dist/scenegraph/group-node.d.ts.map +1 -1
- package/dist/scenegraph/group-node.js +12 -0
- package/dist/scenegraph/group-node.js.map +1 -1
- package/dist/scenegraph/model-node.d.ts +2 -2
- package/dist/scenegraph/model-node.d.ts.map +1 -1
- package/dist/scenegraph/model-node.js.map +1 -1
- package/dist/scenegraph/scenegraph-node.d.ts +1 -1
- package/dist/scenegraph/scenegraph-node.d.ts.map +1 -1
- package/dist/scenegraph/scenegraph-node.js +23 -15
- package/dist/scenegraph/scenegraph-node.js.map +1 -1
- package/dist/shader-inputs.d.ts +9 -7
- package/dist/shader-inputs.d.ts.map +1 -1
- package/dist/shader-inputs.js +84 -4
- package/dist/shader-inputs.js.map +1 -1
- package/dist/utils/buffer-layout-order.d.ts.map +1 -1
- package/dist/utils/buffer-layout-order.js +12 -2
- package/dist/utils/buffer-layout-order.js.map +1 -1
- package/dist/utils/shader-module-utils.d.ts +7 -0
- package/dist/utils/shader-module-utils.d.ts.map +1 -0
- package/dist/utils/shader-module-utils.js +46 -0
- package/dist/utils/shader-module-utils.js.map +1 -0
- package/package.json +6 -6
- package/src/animation-loop/animation-loop.ts +89 -50
- package/src/animation-loop/make-animation-loop.ts +13 -5
- package/src/animation-loop/request-animation-frame.ts +32 -6
- package/src/compute/computation.ts +32 -17
- package/src/compute/swap.ts +13 -7
- package/src/dynamic-texture/dynamic-texture.ts +732 -0
- package/src/dynamic-texture/texture-data.ts +336 -0
- package/src/geometries/cone-geometry.ts +6 -1
- package/src/geometries/cylinder-geometry.ts +5 -1
- package/src/geometry/gpu-geometry.ts +8 -3
- package/src/index.ts +38 -8
- package/src/material/material-factory.ts +157 -0
- package/src/material/material.ts +254 -0
- package/src/model/model.ts +158 -67
- package/src/model/split-uniforms-and-bindings.ts +8 -6
- package/src/models/billboard-texture-model.ts +88 -27
- package/src/models/billboard-texture-module.ts +1 -1
- package/src/models/clip-space.ts +7 -7
- package/src/models/directional-light-model.ts +32 -0
- package/src/models/light-model-utils.ts +587 -0
- package/src/models/point-light-model.ts +31 -0
- package/src/models/spot-light-model.ts +32 -0
- package/src/modules/picking/color-picking.ts +123 -122
- package/src/modules/picking/index-picking.ts +36 -16
- package/src/modules/picking/legacy-color-picking.ts +8 -0
- package/src/modules/picking/picking-manager.ts +252 -50
- package/src/modules/picking/picking-uniforms.ts +39 -24
- package/src/modules/picking/picking.ts +22 -0
- package/src/passes/get-fragment-shader.ts +12 -27
- package/src/passes/shader-pass-renderer.ts +25 -48
- package/src/scenegraph/group-node.ts +16 -0
- package/src/scenegraph/model-node.ts +2 -2
- package/src/scenegraph/scenegraph-node.ts +27 -16
- package/src/shader-inputs.ts +165 -15
- package/src/utils/buffer-layout-order.ts +18 -2
- package/src/utils/shader-module-utils.ts +65 -0
- package/dist/async-texture/async-texture.d.ts +0 -166
- package/dist/async-texture/async-texture.d.ts.map +0 -1
- package/dist/async-texture/async-texture.js +0 -386
- package/dist/async-texture/async-texture.js.map +0 -1
- package/dist/factories/pipeline-factory.d.ts +0 -37
- package/dist/factories/pipeline-factory.d.ts.map +0 -1
- package/dist/factories/pipeline-factory.js +0 -181
- package/dist/factories/pipeline-factory.js.map +0 -1
- package/dist/factories/shader-factory.d.ts +0 -22
- package/dist/factories/shader-factory.d.ts.map +0 -1
- package/dist/factories/shader-factory.js +0 -88
- package/dist/factories/shader-factory.js.map +0 -1
- package/src/async-texture/async-texture.ts +0 -551
- package/src/factories/pipeline-factory.ts +0 -224
- package/src/factories/shader-factory.ts +0 -103
- /package/src/{async-texture/texture-setters.ts.disabled → dynamic-texture/texture-data.ts.disabled} +0 -0
package/dist/compute/swap.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { Device, Resource, Buffer, Framebuffer } from '@luma.gl/core';
|
|
|
7
7
|
* @note the two resources can be destroyed by calling `destroy()`
|
|
8
8
|
*/
|
|
9
9
|
export declare class Swap<T extends Resource<any>> {
|
|
10
|
+
id: string;
|
|
10
11
|
/** The current resource - usually the source for renders or computations */
|
|
11
12
|
current: T;
|
|
12
13
|
/** The next resource - usually the target/destination for transforms / computations */
|
|
@@ -14,6 +15,7 @@ export declare class Swap<T extends Resource<any>> {
|
|
|
14
15
|
constructor(props: {
|
|
15
16
|
current: T;
|
|
16
17
|
next: T;
|
|
18
|
+
id?: string;
|
|
17
19
|
});
|
|
18
20
|
/** Destroys the two managed resources */
|
|
19
21
|
destroy(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACjE,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAU,MAAM,eAAe,CAAC;AAE7E;;;;;GAKG;AACH,qBAAa,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC;IACvC,4EAA4E;IAC5E,OAAO,EAAE,CAAC,CAAC;IACX,uFAAuF;IACvF,IAAI,EAAE,CAAC,CAAC;gBAEI,KAAK,EAAE;QAAC,OAAO,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAC;
|
|
1
|
+
{"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACjE,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAU,MAAM,eAAe,CAAC;AAE7E;;;;;GAKG;AACH,qBAAa,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IAEX,4EAA4E;IAC5E,OAAO,EAAE,CAAC,CAAC;IACX,uFAAuF;IACvF,IAAI,EAAE,CAAC,CAAC;gBAEI,KAAK,EAAE;QAAC,OAAO,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAC;IAMrD,yCAAyC;IACzC,OAAO;IAKP,4GAA4G;IAC5G,IAAI;CAKL;AAED,uDAAuD;AACvD,qBAAa,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC;gBACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;IAoCnD;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO;CAcvD;AAED,sDAAsD;AACtD,qBAAa,WAAY,SAAQ,IAAI,CAAC,MAAM,CAAC;gBAC/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;IAI9C;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC;CAenC"}
|
package/dist/compute/swap.js
CHANGED
|
@@ -9,11 +9,13 @@ import { Texture } from '@luma.gl/core';
|
|
|
9
9
|
* @note the two resources can be destroyed by calling `destroy()`
|
|
10
10
|
*/
|
|
11
11
|
export class Swap {
|
|
12
|
+
id;
|
|
12
13
|
/** The current resource - usually the source for renders or computations */
|
|
13
14
|
current;
|
|
14
15
|
/** The next resource - usually the target/destination for transforms / computations */
|
|
15
16
|
next;
|
|
16
17
|
constructor(props) {
|
|
18
|
+
this.id = props.id || 'swap';
|
|
17
19
|
this.current = props.current;
|
|
18
20
|
this.next = props.next;
|
|
19
21
|
}
|
|
@@ -33,22 +35,25 @@ export class Swap {
|
|
|
33
35
|
export class SwapFramebuffers extends Swap {
|
|
34
36
|
constructor(device, props) {
|
|
35
37
|
props = { ...props };
|
|
38
|
+
const { width = 1, height = 1 } = props;
|
|
36
39
|
let colorAttachments = props.colorAttachments?.map(colorAttachment => typeof colorAttachment !== 'string'
|
|
37
40
|
? colorAttachment
|
|
38
41
|
: device.createTexture({
|
|
42
|
+
id: `${props.id}-texture-0`,
|
|
39
43
|
format: colorAttachment,
|
|
40
44
|
usage: Texture.SAMPLE | Texture.RENDER | Texture.COPY_SRC | Texture.COPY_DST,
|
|
41
|
-
width
|
|
42
|
-
height
|
|
45
|
+
width,
|
|
46
|
+
height
|
|
43
47
|
}));
|
|
44
48
|
const current = device.createFramebuffer({ ...props, colorAttachments });
|
|
45
49
|
colorAttachments = props.colorAttachments?.map(colorAttachment => typeof colorAttachment !== 'string'
|
|
46
50
|
? colorAttachment
|
|
47
51
|
: device.createTexture({
|
|
52
|
+
id: `${props.id}-texture-1`,
|
|
48
53
|
format: colorAttachment,
|
|
49
|
-
usage: Texture.
|
|
50
|
-
width
|
|
51
|
-
height
|
|
54
|
+
usage: Texture.SAMPLE | Texture.RENDER | Texture.COPY_SRC | Texture.COPY_DST,
|
|
55
|
+
width,
|
|
56
|
+
height
|
|
52
57
|
}));
|
|
53
58
|
const next = device.createFramebuffer({ ...props, colorAttachments });
|
|
54
59
|
super({ current, next });
|
package/dist/compute/swap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAwC,OAAO,EAAC,MAAM,eAAe,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,OAAO,IAAI;IACf,4EAA4E;IAC5E,OAAO,CAAI;IACX,uFAAuF;IACvF,IAAI,CAAI;IAER,YAAY,
|
|
1
|
+
{"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"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"}
|