@luma.gl/engine 9.1.0-alpha.2 → 9.1.0-beta.1
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/key-frames.js +1 -0
- package/dist/animation/key-frames.js.map +1 -0
- package/dist/animation/timeline.js +1 -0
- package/dist/animation/timeline.js.map +1 -0
- package/dist/animation-loop/animation-loop-template.js +1 -0
- package/dist/animation-loop/animation-loop-template.js.map +1 -0
- package/dist/animation-loop/animation-loop.d.ts +2 -0
- package/dist/animation-loop/animation-loop.d.ts.map +1 -1
- package/dist/animation-loop/animation-loop.js +24 -6
- package/dist/animation-loop/animation-loop.js.map +1 -0
- package/dist/animation-loop/animation-props.js +1 -0
- package/dist/animation-loop/animation-props.js.map +1 -0
- package/dist/animation-loop/make-animation-loop.d.ts +5 -1
- package/dist/animation-loop/make-animation-loop.d.ts.map +1 -1
- package/dist/animation-loop/make-animation-loop.js +3 -1
- package/dist/animation-loop/make-animation-loop.js.map +1 -0
- package/dist/animation-loop/request-animation-frame.d.ts +4 -2
- package/dist/animation-loop/request-animation-frame.d.ts.map +1 -1
- package/dist/animation-loop/request-animation-frame.js +5 -3
- package/dist/animation-loop/request-animation-frame.js.map +1 -0
- package/dist/application-utils/load-file.d.ts +1 -1
- package/dist/application-utils/load-file.d.ts.map +1 -1
- package/dist/application-utils/load-file.js +2 -2
- package/dist/application-utils/load-file.js.map +1 -0
- package/dist/application-utils/random.js +1 -0
- package/dist/application-utils/random.js.map +1 -0
- package/dist/async-texture/async-texture.d.ts +14 -2
- package/dist/async-texture/async-texture.d.ts.map +1 -1
- package/dist/async-texture/async-texture.js +40 -3
- package/dist/async-texture/async-texture.js.map +1 -0
- package/dist/compute/buffer-transform.d.ts +41 -0
- package/dist/compute/buffer-transform.d.ts.map +1 -0
- package/dist/{transform → compute}/buffer-transform.js +19 -12
- package/dist/compute/buffer-transform.js.map +1 -0
- package/dist/{computation.d.ts → compute/computation.d.ts} +3 -3
- package/dist/compute/computation.d.ts.map +1 -0
- package/dist/{computation.js → compute/computation.js} +7 -8
- package/dist/compute/computation.js.map +1 -0
- package/dist/compute/swap.d.ts +48 -0
- package/dist/compute/swap.d.ts.map +1 -0
- package/dist/compute/swap.js +91 -0
- package/dist/compute/swap.js.map +1 -0
- package/dist/{transform → compute}/texture-transform.d.ts +0 -6
- package/dist/compute/texture-transform.d.ts.map +1 -0
- package/dist/{transform → compute}/texture-transform.js +10 -15
- package/dist/compute/texture-transform.js.map +1 -0
- package/dist/debug/copy-texture-to-image.js +1 -0
- package/dist/debug/copy-texture-to-image.js.map +1 -0
- package/dist/debug/debug-framebuffer.js +2 -1
- package/dist/debug/debug-framebuffer.js.map +1 -0
- package/dist/debug/debug-shader-layout.js +2 -1
- package/dist/debug/debug-shader-layout.js.map +1 -0
- package/dist/debug/pixel-data-utils.js +1 -0
- package/dist/debug/pixel-data-utils.js.map +1 -0
- package/dist/dist.dev.js +2952 -5816
- package/dist/dist.min.js +422 -91
- package/dist/{lib → factories}/pipeline-factory.d.ts +11 -1
- package/dist/factories/pipeline-factory.d.ts.map +1 -0
- package/dist/factories/pipeline-factory.js +181 -0
- package/dist/factories/pipeline-factory.js.map +1 -0
- package/dist/{lib → factories}/shader-factory.d.ts +5 -1
- package/dist/factories/shader-factory.d.ts.map +1 -0
- package/dist/{lib → factories}/shader-factory.js +39 -4
- package/dist/factories/shader-factory.js.map +1 -0
- package/dist/geometries/cone-geometry.js +1 -0
- package/dist/geometries/cone-geometry.js.map +1 -0
- package/dist/geometries/cube-geometry.js +1 -0
- package/dist/geometries/cube-geometry.js.map +1 -0
- package/dist/geometries/cylinder-geometry.js +1 -0
- package/dist/geometries/cylinder-geometry.js.map +1 -0
- package/dist/geometries/ico-sphere-geometry.js +1 -0
- package/dist/geometries/ico-sphere-geometry.js.map +1 -0
- package/dist/geometries/plane-geometry.js +1 -0
- package/dist/geometries/plane-geometry.js.map +1 -0
- package/dist/geometries/sphere-geometry.js +1 -0
- package/dist/geometries/sphere-geometry.js.map +1 -0
- package/dist/geometries/truncated-cone-geometry.js +1 -0
- package/dist/geometries/truncated-cone-geometry.js.map +1 -0
- package/dist/geometry/geometry-table.js +1 -0
- package/dist/geometry/geometry-table.js.map +1 -0
- package/dist/geometry/geometry-utils.js +1 -0
- package/dist/geometry/geometry-utils.js.map +1 -0
- package/dist/geometry/geometry.js +1 -0
- package/dist/geometry/geometry.js.map +1 -0
- package/dist/geometry/gpu-geometry.js +1 -0
- package/dist/geometry/gpu-geometry.js.map +1 -0
- package/dist/geometry/gpu-table.js +1 -0
- package/dist/geometry/gpu-table.js.map +1 -0
- package/dist/index.cjs +1440 -217
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +23 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -9
- package/dist/index.js.map +1 -0
- package/dist/model/model.d.ts +11 -10
- package/dist/model/model.d.ts.map +1 -1
- package/dist/model/model.js +92 -69
- package/dist/model/model.js.map +1 -0
- package/dist/model/split-uniforms-and-bindings.d.ts +1 -1
- package/dist/model/split-uniforms-and-bindings.d.ts.map +1 -1
- package/dist/model/split-uniforms-and-bindings.js +2 -1
- package/dist/model/split-uniforms-and-bindings.js.map +1 -0
- package/dist/models/billboard-texture-model.d.ts +23 -0
- package/dist/models/billboard-texture-model.d.ts.map +1 -0
- package/dist/models/billboard-texture-model.js +78 -0
- package/dist/models/billboard-texture-model.js.map +1 -0
- package/dist/models/billboard-texture-module.d.ts +10 -0
- package/dist/models/billboard-texture-module.d.ts.map +1 -0
- package/dist/models/billboard-texture-module.js +37 -0
- package/dist/models/billboard-texture-module.js.map +1 -0
- package/dist/{lib → models}/clip-space.d.ts +3 -1
- package/dist/models/clip-space.d.ts.map +1 -0
- package/dist/models/clip-space.js +77 -0
- package/dist/models/clip-space.js.map +1 -0
- package/dist/modules/picking/color-picking.d.ts +28 -0
- package/dist/modules/picking/color-picking.d.ts.map +1 -0
- package/dist/modules/picking/color-picking.js +177 -0
- package/dist/modules/picking/color-picking.js.map +1 -0
- package/dist/modules/picking/index-picking.d.ts +32 -0
- package/dist/modules/picking/index-picking.d.ts.map +1 -0
- package/dist/modules/picking/index-picking.js +148 -0
- package/dist/modules/picking/index-picking.js.map +1 -0
- package/dist/modules/picking/legacy-picking-manager.d.ts +27 -0
- package/dist/modules/picking/legacy-picking-manager.d.ts.map +1 -0
- package/dist/modules/picking/legacy-picking-manager.js +76 -0
- package/dist/modules/picking/legacy-picking-manager.js.map +1 -0
- package/dist/modules/picking/picking-manager.d.ts +45 -0
- package/dist/modules/picking/picking-manager.d.ts.map +1 -0
- package/dist/modules/picking/picking-manager.js +101 -0
- package/dist/modules/picking/picking-manager.js.map +1 -0
- package/dist/modules/picking/picking-uniforms.d.ts +79 -0
- package/dist/modules/picking/picking-uniforms.d.ts.map +1 -0
- package/dist/modules/picking/picking-uniforms.js +109 -0
- package/dist/modules/picking/picking-uniforms.js.map +1 -0
- package/dist/passes/get-fragment-shader.d.ts +12 -0
- package/dist/passes/get-fragment-shader.d.ts.map +1 -0
- package/dist/passes/get-fragment-shader.js +117 -0
- package/dist/passes/get-fragment-shader.js.map +1 -0
- package/dist/passes/shader-pass-renderer.d.ts +63 -0
- package/dist/passes/shader-pass-renderer.d.ts.map +1 -0
- package/dist/passes/shader-pass-renderer.js +197 -0
- package/dist/passes/shader-pass-renderer.js.map +1 -0
- package/dist/scenegraph/group-node.js +1 -0
- package/dist/scenegraph/group-node.js.map +1 -0
- package/dist/scenegraph/model-node.js +1 -0
- package/dist/scenegraph/model-node.js.map +1 -0
- package/dist/scenegraph/scenegraph-node.js +1 -0
- package/dist/scenegraph/scenegraph-node.js.map +1 -0
- package/dist/shader-inputs.d.ts +8 -19
- package/dist/shader-inputs.d.ts.map +1 -1
- package/dist/shader-inputs.js +28 -18
- package/dist/shader-inputs.js.map +1 -0
- package/dist/utils/deep-equal.js +1 -0
- package/dist/utils/deep-equal.js.map +1 -0
- package/dist/utils/uid.js +1 -0
- package/dist/utils/uid.js.map +1 -0
- package/package.json +6 -6
- package/src/animation-loop/animation-loop.ts +27 -6
- package/src/animation-loop/make-animation-loop.ts +8 -3
- package/src/animation-loop/request-animation-frame.ts +4 -3
- package/src/application-utils/load-file.ts +2 -4
- package/src/async-texture/async-texture.ts +48 -10
- package/src/{transform → compute}/buffer-transform.ts +30 -14
- package/src/{computation.ts → compute/computation.ts} +14 -8
- package/src/compute/swap.ts +116 -0
- package/src/{transform → compute}/texture-transform.ts +9 -18
- package/src/debug/debug-framebuffer.ts +1 -1
- package/src/debug/debug-shader-layout.ts +1 -1
- package/src/factories/pipeline-factory.ts +222 -0
- package/src/{lib → factories}/shader-factory.ts +41 -5
- package/src/index.ts +35 -16
- package/src/model/model.ts +132 -77
- package/src/model/split-uniforms-and-bindings.ts +4 -4
- package/src/models/billboard-texture-model.ts +98 -0
- package/src/models/billboard-texture-module.ts +49 -0
- package/src/models/clip-space.ts +88 -0
- package/src/modules/picking/README.md +88 -0
- package/src/modules/picking/color-picking.ts +190 -0
- package/src/modules/picking/index-picking.ts +156 -0
- package/src/modules/picking/legacy-picking-manager.ts +99 -0
- package/src/modules/picking/picking-manager.ts +137 -0
- package/src/modules/picking/picking-uniforms.ts +179 -0
- package/src/passes/get-fragment-shader.ts +129 -0
- package/src/passes/shader-pass-renderer.ts +252 -0
- package/src/shader-inputs.ts +44 -59
- package/dist/computation.d.ts.map +0 -1
- package/dist/lib/clip-space.d.ts.map +0 -1
- package/dist/lib/clip-space.js +0 -46
- package/dist/lib/pipeline-factory.d.ts.map +0 -1
- package/dist/lib/pipeline-factory.js +0 -98
- package/dist/lib/shader-factory.d.ts.map +0 -1
- package/dist/transform/buffer-transform.d.ts +0 -35
- package/dist/transform/buffer-transform.d.ts.map +0 -1
- package/dist/transform/texture-transform.d.ts.map +0 -1
- package/src/lib/clip-space.ts +0 -53
- package/src/lib/pipeline-factory.ts +0 -126
package/dist/index.d.ts
CHANGED
|
@@ -8,13 +8,16 @@ export type { MakeAnimationLoopProps } from "./animation-loop/make-animation-loo
|
|
|
8
8
|
export { makeAnimationLoop } from "./animation-loop/make-animation-loop.js";
|
|
9
9
|
export type { ModelProps } from "./model/model.js";
|
|
10
10
|
export { Model } from "./model/model.js";
|
|
11
|
-
export type { BufferTransformProps } from "./
|
|
12
|
-
export { BufferTransform } from "./
|
|
13
|
-
export type { TextureTransformProps } from "./
|
|
14
|
-
export { TextureTransform } from "./
|
|
15
|
-
export { PipelineFactory } from "./
|
|
16
|
-
export { ShaderFactory } from "./
|
|
17
|
-
export {
|
|
11
|
+
export type { BufferTransformProps } from "./compute/buffer-transform.js";
|
|
12
|
+
export { BufferTransform } from "./compute/buffer-transform.js";
|
|
13
|
+
export type { TextureTransformProps } from "./compute/texture-transform.js";
|
|
14
|
+
export { TextureTransform } from "./compute/texture-transform.js";
|
|
15
|
+
export { PipelineFactory } from "./factories/pipeline-factory.js";
|
|
16
|
+
export { ShaderFactory } from "./factories/shader-factory.js";
|
|
17
|
+
export type { ClipSpaceProps } from "./models/clip-space.js";
|
|
18
|
+
export { ClipSpace } from "./models/clip-space.js";
|
|
19
|
+
export type { BackgroundTextureModelProps } from "./models/billboard-texture-model.js";
|
|
20
|
+
export { BackgroundTextureModel } from "./models/billboard-texture-model.js";
|
|
18
21
|
export { ScenegraphNode } from "./scenegraph/scenegraph-node.js";
|
|
19
22
|
export { GroupNode } from "./scenegraph/group-node.js";
|
|
20
23
|
export type { ModelNodeProps } from "./scenegraph/model-node.js";
|
|
@@ -37,13 +40,21 @@ export type { SphereGeometryProps } from "./geometries/sphere-geometry.js";
|
|
|
37
40
|
export { SphereGeometry } from "./geometries/sphere-geometry.js";
|
|
38
41
|
export type { TruncatedConeGeometryProps } from "./geometries/truncated-cone-geometry.js";
|
|
39
42
|
export { TruncatedConeGeometry } from "./geometries/truncated-cone-geometry.js";
|
|
43
|
+
export { ShaderInputs } from "./shader-inputs.js";
|
|
40
44
|
export { makeRandomGenerator } from "./application-utils/random.js";
|
|
41
45
|
export { setPathPrefix, loadImage, loadImageBitmap } from "./application-utils/load-file.js";
|
|
42
|
-
export type {
|
|
43
|
-
export {
|
|
44
|
-
export
|
|
45
|
-
export {
|
|
46
|
-
export {
|
|
46
|
+
export type { ShaderPassRendererProps } from "./passes/shader-pass-renderer.js";
|
|
47
|
+
export { ShaderPassRenderer } from "./passes/shader-pass-renderer.js";
|
|
48
|
+
export { Swap } from "./compute/swap.js";
|
|
49
|
+
export { SwapBuffers } from "./compute/swap.js";
|
|
50
|
+
export { SwapFramebuffers } from "./compute/swap.js";
|
|
51
|
+
export type { ComputationProps } from "./compute/computation.js";
|
|
52
|
+
export { Computation } from "./compute/computation.js";
|
|
47
53
|
export type { AsyncTextureProps } from "./async-texture/async-texture.js";
|
|
48
54
|
export { AsyncTexture } from "./async-texture/async-texture.js";
|
|
55
|
+
export { PickingManager } from "./modules/picking/picking-manager.js";
|
|
56
|
+
export { picking as indexPicking } from "./modules/picking/index-picking.js";
|
|
57
|
+
export { picking as colorPicking } from "./modules/picking/color-picking.js";
|
|
58
|
+
export { requestAnimationFramePolyfill, cancelAnimationFramePolyfill } from "./animation-loop/request-animation-frame.js";
|
|
59
|
+
export { LegacyPickingManager } from "./modules/picking/legacy-picking-manager.js";
|
|
49
60
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,QAAQ,EAAC,gCAA6B;AAC9C,OAAO,EAAC,SAAS,EAAC,kCAA+B;AACjD,YAAY,EAAC,cAAc,EAAC,4CAAyC;AAErE,OAAO,EAAC,qBAAqB,EAAC,oDAAiD;AAE/E,YAAY,EAAC,kBAAkB,EAAC,2CAAwC;AACxE,OAAO,EAAC,aAAa,EAAC,2CAAwC;AAE9D,YAAY,EAAC,sBAAsB,EAAC,gDAA6C;AACjF,OAAO,EAAC,iBAAiB,EAAC,gDAA6C;AAEvE,YAAY,EAAC,UAAU,EAAC,yBAAsB;AAC9C,OAAO,EAAC,KAAK,EAAC,yBAAsB;AAGpC,YAAY,EAAC,oBAAoB,EAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9,12 +9,12 @@ export { AnimationLoopTemplate } from "./animation-loop/animation-loop-template.
|
|
|
9
9
|
export { AnimationLoop } from "./animation-loop/animation-loop.js";
|
|
10
10
|
export { makeAnimationLoop } from "./animation-loop/make-animation-loop.js";
|
|
11
11
|
export { Model } from "./model/model.js";
|
|
12
|
-
export { BufferTransform } from "./
|
|
13
|
-
export { TextureTransform } from "./
|
|
14
|
-
export { PipelineFactory } from "./
|
|
15
|
-
export { ShaderFactory } from "./
|
|
16
|
-
|
|
17
|
-
export {
|
|
12
|
+
export { BufferTransform } from "./compute/buffer-transform.js";
|
|
13
|
+
export { TextureTransform } from "./compute/texture-transform.js";
|
|
14
|
+
export { PipelineFactory } from "./factories/pipeline-factory.js";
|
|
15
|
+
export { ShaderFactory } from "./factories/shader-factory.js";
|
|
16
|
+
export { ClipSpace } from "./models/clip-space.js";
|
|
17
|
+
export { BackgroundTextureModel } from "./models/billboard-texture-model.js";
|
|
18
18
|
// Scenegraph Core nodes
|
|
19
19
|
export { ScenegraphNode } from "./scenegraph/scenegraph-node.js";
|
|
20
20
|
export { GroupNode } from "./scenegraph/group-node.js";
|
|
@@ -28,10 +28,20 @@ export { IcoSphereGeometry } from "./geometries/ico-sphere-geometry.js";
|
|
|
28
28
|
export { PlaneGeometry } from "./geometries/plane-geometry.js";
|
|
29
29
|
export { SphereGeometry } from "./geometries/sphere-geometry.js";
|
|
30
30
|
export { TruncatedConeGeometry } from "./geometries/truncated-cone-geometry.js";
|
|
31
|
+
export { ShaderInputs } from "./shader-inputs.js";
|
|
31
32
|
// Application Utilities
|
|
32
33
|
export { makeRandomGenerator } from "./application-utils/random.js";
|
|
33
34
|
export { setPathPrefix, loadImage, loadImageBitmap } from "./application-utils/load-file.js";
|
|
34
|
-
export {
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
35
|
+
export { ShaderPassRenderer } from "./passes/shader-pass-renderer.js";
|
|
36
|
+
export { Swap } from "./compute/swap.js";
|
|
37
|
+
export { SwapBuffers } from "./compute/swap.js";
|
|
38
|
+
export { SwapFramebuffers } from "./compute/swap.js";
|
|
39
|
+
export { Computation } from "./compute/computation.js";
|
|
37
40
|
export { AsyncTexture } from "./async-texture/async-texture.js";
|
|
41
|
+
export { PickingManager } from "./modules/picking/picking-manager.js";
|
|
42
|
+
export { picking as indexPicking } from "./modules/picking/index-picking.js";
|
|
43
|
+
export { picking as colorPicking } from "./modules/picking/color-picking.js";
|
|
44
|
+
export { requestAnimationFramePolyfill, cancelAnimationFramePolyfill } from "./animation-loop/request-animation-frame.js";
|
|
45
|
+
// DEPRECATED
|
|
46
|
+
export { LegacyPickingManager } from "./modules/picking/legacy-picking-manager.js";
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,qBAAqB;AAErB,YAAY;AACZ,OAAO,EAAC,QAAQ,EAAC,gCAA6B;AAC9C,OAAO,EAAC,SAAS,EAAC,kCAA+B;AAGjD,OAAO,EAAC,qBAAqB,EAAC,oDAAiD;AAG/E,OAAO,EAAC,aAAa,EAAC,2CAAwC;AAG9D,OAAO,EAAC,iBAAiB,EAAC,gDAA6C;AAGvE,OAAO,EAAC,KAAK,EAAC,yBAAsB;AAIpC,OAAO,EAAC,eAAe,EAAC,sCAAmC;AAE3D,OAAO,EAAC,gBAAgB,EAAC,uCAAoC;AAE7D,OAAO,EAAC,eAAe,EAAC,wCAAqC;AAC7D,OAAO,EAAC,aAAa,EAAC,sCAAmC;AAIzD,OAAO,EAAC,SAAS,EAAC,+BAA4B;AAE9C,OAAO,EAAC,sBAAsB,EAAC,4CAAyC;AAExE,wBAAwB;AACxB,OAAO,EAAC,cAAc,EAAC,wCAAqC;AAC5D,OAAO,EAAC,SAAS,EAAC,mCAAgC;AAElD,OAAO,EAAC,SAAS,EAAC,mCAAgC;AAIlD,OAAO,EAAC,QAAQ,EAAC,+BAA4B;AAE7C,OAAO,EAAC,WAAW,EAAC,mCAAgC;AAIpD,OAAO,EAAC,YAAY,EAAC,sCAAmC;AAExD,OAAO,EAAC,YAAY,EAAC,sCAAmC;AAExD,OAAO,EAAC,gBAAgB,EAAC,0CAAuC;AAEhE,OAAO,EAAC,iBAAiB,EAAC,4CAAyC;AAEnE,OAAO,EAAC,aAAa,EAAC,uCAAoC;AAE1D,OAAO,EAAC,cAAc,EAAC,wCAAqC;AAE5D,OAAO,EAAC,qBAAqB,EAAC,gDAA6C;AAE3E,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAE7C,wBAAwB;AACxB,OAAO,EAAC,mBAAmB,EAAC,sCAAmC;AAC/D,OAAO,EAAC,aAAa,EAAE,SAAS,EAAE,eAAe,EAAC,yCAAsC;AAIxF,OAAO,EAAC,kBAAkB,EAAC,yCAAsC;AAEjE,OAAO,EAAC,IAAI,EAAC,0BAAuB;AACpC,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,gBAAgB,EAAC,0BAAuB;AAGhD,OAAO,EAAC,WAAW,EAAC,iCAA8B;AAGlD,OAAO,EAAC,YAAY,EAAC,yCAAsC;AAE3D,OAAO,EAAC,cAAc,EAAC,6CAA0C;AACjE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,2CAAwC;AACxE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,2CAAwC;AAExE,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC7B,oDAAiD;AAElD,aAAa;AAEb,OAAO,EAAC,oBAAoB,EAAC,oDAAiD"}
|
package/dist/model/model.d.ts
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import type { TypedArray } from '@math.gl/types';
|
|
2
|
-
import type { RenderPipelineProps, RenderPipelineParameters } from '@luma.gl/core';
|
|
3
|
-
import
|
|
4
|
-
import type { AttributeInfo, Binding, UniformValue, PrimitiveTopology } from '@luma.gl/core';
|
|
5
|
-
import { Device, Buffer } from '@luma.gl/core';
|
|
6
|
-
import { RenderPipeline, RenderPass, UniformStore } from '@luma.gl/core';
|
|
2
|
+
import type { RenderPipelineProps, RenderPipelineParameters, BufferLayout, VertexArray, TransformFeedback, AttributeInfo, Binding, UniformValue, PrimitiveTopology } from '@luma.gl/core';
|
|
3
|
+
import { Device, Buffer, RenderPipeline, RenderPass, UniformStore } from '@luma.gl/core';
|
|
7
4
|
import type { ShaderModule, PlatformInfo } from '@luma.gl/shadertools';
|
|
8
5
|
import { ShaderAssembler } from '@luma.gl/shadertools';
|
|
9
6
|
import type { Geometry } from "../geometry/geometry.js";
|
|
10
7
|
import { GPUGeometry } from "../geometry/gpu-geometry.js";
|
|
11
|
-
import { PipelineFactory } from "../
|
|
12
|
-
import { ShaderFactory } from "../
|
|
8
|
+
import { PipelineFactory } from "../factories/pipeline-factory.js";
|
|
9
|
+
import { ShaderFactory } from "../factories/shader-factory.js";
|
|
13
10
|
import { ShaderInputs } from "../shader-inputs.js";
|
|
14
11
|
import { AsyncTexture } from "../async-texture/async-texture.js";
|
|
15
12
|
export type ModelProps = Omit<RenderPipelineProps, 'vs' | 'fs' | 'bindings'> & {
|
|
@@ -119,6 +116,8 @@ export declare class Model {
|
|
|
119
116
|
private _destroyed;
|
|
120
117
|
/** "Time" of last draw. Monotonically increasing timestamp */
|
|
121
118
|
_lastDrawTimestamp: number;
|
|
119
|
+
get [Symbol.toStringTag](): string;
|
|
120
|
+
toString(): string;
|
|
122
121
|
constructor(device: Device, props: ModelProps);
|
|
123
122
|
destroy(): void;
|
|
124
123
|
/** Query redraw status. Clears the status. */
|
|
@@ -199,12 +198,14 @@ export declare class Model {
|
|
|
199
198
|
* @deprecated WebGL only, use uniform buffers for portability
|
|
200
199
|
* @param uniforms
|
|
201
200
|
*/
|
|
202
|
-
|
|
201
|
+
setUniformsWebGL(uniforms: Record<string, UniformValue>): void;
|
|
203
202
|
/**
|
|
204
203
|
* @deprecated Updates shader module settings (which results in uniforms being set)
|
|
205
204
|
*/
|
|
206
|
-
|
|
207
|
-
/**
|
|
205
|
+
updateModuleSettingsWebGL(props: Record<string, any>): void;
|
|
206
|
+
/** Check that bindings are loaded. Returns id of first binding that is still loading. */
|
|
207
|
+
_areBindingsLoading(): string | false;
|
|
208
|
+
/** Extracts texture view from loaded async textures. Returns null if any textures have not yet been loaded. */
|
|
208
209
|
_getBindings(): Record<string, Binding>;
|
|
209
210
|
/** Get the timestamp of the latest updated bound GPU memory resource (buffer/texture). */
|
|
210
211
|
_getBindingsUpdateTimestamp(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
|
package/dist/model/model.js
CHANGED
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
// luma.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { Buffer, Texture, TextureView, Sampler } from '@luma.gl/core';
|
|
5
|
-
import { RenderPipeline, UniformStore } from '@luma.gl/core';
|
|
6
|
-
import { log } from '@luma.gl/core';
|
|
7
|
-
import { getTypedArrayFromDataType, getAttributeInfosFromLayouts } from '@luma.gl/core';
|
|
4
|
+
import { Buffer, Texture, TextureView, Sampler, RenderPipeline, UniformStore, log, getTypedArrayFromDataType, getAttributeInfosFromLayouts, _BufferLayoutHelper } from '@luma.gl/core';
|
|
8
5
|
import { ShaderAssembler, getShaderLayoutFromWGSL } from '@luma.gl/shadertools';
|
|
9
6
|
import { makeGPUGeometry } from "../geometry/gpu-geometry.js";
|
|
10
|
-
import { PipelineFactory } from "../
|
|
11
|
-
import { ShaderFactory } from "../
|
|
7
|
+
import { PipelineFactory } from "../factories/pipeline-factory.js";
|
|
8
|
+
import { ShaderFactory } from "../factories/shader-factory.js";
|
|
12
9
|
import { getDebugTableForShaderLayout } from "../debug/debug-shader-layout.js";
|
|
13
10
|
import { debugFramebuffer } from "../debug/debug-framebuffer.js";
|
|
14
11
|
import { deepEqual } from "../utils/deep-equal.js";
|
|
15
12
|
import { uid } from "../utils/uid.js";
|
|
16
|
-
import { splitUniformsAndBindings } from "./split-uniforms-and-bindings.js";
|
|
17
13
|
import { ShaderInputs } from "../shader-inputs.js";
|
|
18
14
|
// import type {AsyncTextureProps} from '../async-texture/async-texture';
|
|
19
15
|
import { AsyncTexture } from "../async-texture/async-texture.js";
|
|
16
|
+
import { splitUniformsAndBindings } from "./split-uniforms-and-bindings.js";
|
|
20
17
|
const LOG_DRAW_PRIORITY = 2;
|
|
21
18
|
const LOG_DRAW_TIMEOUT = 10000;
|
|
22
19
|
/**
|
|
@@ -114,6 +111,12 @@ export class Model {
|
|
|
114
111
|
_destroyed = false;
|
|
115
112
|
/** "Time" of last draw. Monotonically increasing timestamp */
|
|
116
113
|
_lastDrawTimestamp = -1;
|
|
114
|
+
get [Symbol.toStringTag]() {
|
|
115
|
+
return 'Model';
|
|
116
|
+
}
|
|
117
|
+
toString() {
|
|
118
|
+
return `Model(${this.id})`;
|
|
119
|
+
}
|
|
117
120
|
constructor(device, props) {
|
|
118
121
|
this.props = { ...Model.defaultProps, ...props };
|
|
119
122
|
props = this.props;
|
|
@@ -174,7 +177,8 @@ export class Model {
|
|
|
174
177
|
// @note order is important
|
|
175
178
|
this.pipeline = this._updatePipeline();
|
|
176
179
|
this.vertexArray = device.createVertexArray({
|
|
177
|
-
|
|
180
|
+
shaderLayout: this.pipeline.shaderLayout,
|
|
181
|
+
bufferLayout: this.pipeline.bufferLayout
|
|
178
182
|
});
|
|
179
183
|
// Now we can apply geometry attributes
|
|
180
184
|
if (this._gpuGeometry) {
|
|
@@ -203,11 +207,11 @@ export class Model {
|
|
|
203
207
|
this.setBindings(props.bindings);
|
|
204
208
|
}
|
|
205
209
|
if (props.uniforms) {
|
|
206
|
-
this.
|
|
210
|
+
this.setUniformsWebGL(props.uniforms);
|
|
207
211
|
}
|
|
208
212
|
if (props.moduleSettings) {
|
|
209
213
|
// log.warn('Model.props.moduleSettings is deprecated. Use Model.shaderInputs.setProps()')();
|
|
210
|
-
this.
|
|
214
|
+
this.updateModuleSettingsWebGL(props.moduleSettings);
|
|
211
215
|
}
|
|
212
216
|
if (props.transformFeedback) {
|
|
213
217
|
this.transformFeedback = props.transformFeedback;
|
|
@@ -216,17 +220,19 @@ export class Model {
|
|
|
216
220
|
Object.seal(this);
|
|
217
221
|
}
|
|
218
222
|
destroy() {
|
|
219
|
-
if (this._destroyed)
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
if (!this._destroyed) {
|
|
224
|
+
// Release pipeline before we destroy the shaders used by the pipeline
|
|
225
|
+
this.pipelineFactory.release(this.pipeline);
|
|
226
|
+
// Release the shaders
|
|
227
|
+
this.shaderFactory.release(this.pipeline.vs);
|
|
228
|
+
if (this.pipeline.fs) {
|
|
229
|
+
this.shaderFactory.release(this.pipeline.fs);
|
|
230
|
+
}
|
|
231
|
+
this._uniformStore.destroy();
|
|
232
|
+
// TODO - mark resource as managed and destroyIfManaged() ?
|
|
233
|
+
this._gpuGeometry?.destroy();
|
|
234
|
+
this._destroyed = true;
|
|
225
235
|
}
|
|
226
|
-
this._uniformStore.destroy();
|
|
227
|
-
// TODO - mark resource as managed and destroyIfManaged() ?
|
|
228
|
-
this._gpuGeometry?.destroy();
|
|
229
|
-
this._destroyed = true;
|
|
230
236
|
}
|
|
231
237
|
// Draw call
|
|
232
238
|
/** Query redraw status. Clears the status. */
|
|
@@ -250,9 +256,21 @@ export class Model {
|
|
|
250
256
|
this.pipeline = this._updatePipeline();
|
|
251
257
|
}
|
|
252
258
|
draw(renderPass) {
|
|
253
|
-
this.
|
|
259
|
+
const loadingBinding = this._areBindingsLoading();
|
|
260
|
+
if (loadingBinding) {
|
|
261
|
+
log.info(LOG_DRAW_PRIORITY, `>>> DRAWING ABORTED ${this.id}: ${loadingBinding} not loaded`)();
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
try {
|
|
265
|
+
renderPass.pushDebugGroup(`${this}.predraw(${renderPass})`);
|
|
266
|
+
this.predraw();
|
|
267
|
+
}
|
|
268
|
+
finally {
|
|
269
|
+
renderPass.popDebugGroup();
|
|
270
|
+
}
|
|
254
271
|
let drawSuccess;
|
|
255
272
|
try {
|
|
273
|
+
renderPass.pushDebugGroup(`${this}.draw(${renderPass})`);
|
|
256
274
|
this._logDrawCallStart();
|
|
257
275
|
// Update the pipeline if invalidated
|
|
258
276
|
// TODO - inside RenderPass is likely the worst place to do this from performance perspective.
|
|
@@ -288,6 +306,7 @@ export class Model {
|
|
|
288
306
|
});
|
|
289
307
|
}
|
|
290
308
|
finally {
|
|
309
|
+
renderPass.popDebugGroup();
|
|
291
310
|
this._logDrawCallEnd();
|
|
292
311
|
}
|
|
293
312
|
this._logFramebuffer(renderPass);
|
|
@@ -312,7 +331,8 @@ export class Model {
|
|
|
312
331
|
const gpuGeometry = geometry && makeGPUGeometry(this.device, geometry);
|
|
313
332
|
if (gpuGeometry) {
|
|
314
333
|
this.setTopology(gpuGeometry.topology || 'triangle-list');
|
|
315
|
-
|
|
334
|
+
const bufferLayoutHelper = new _BufferLayoutHelper(this.bufferLayout);
|
|
335
|
+
this.bufferLayout = bufferLayoutHelper.mergeBufferLayouts(gpuGeometry.bufferLayout, this.bufferLayout);
|
|
316
336
|
if (this.vertexArray) {
|
|
317
337
|
this._setGeometryAttributes(gpuGeometry);
|
|
318
338
|
}
|
|
@@ -334,8 +354,9 @@ export class Model {
|
|
|
334
354
|
* @note Triggers a pipeline rebuild / pipeline cache fetch
|
|
335
355
|
*/
|
|
336
356
|
setBufferLayout(bufferLayout) {
|
|
357
|
+
const bufferLayoutHelper = new _BufferLayoutHelper(this.bufferLayout);
|
|
337
358
|
this.bufferLayout = this._gpuGeometry
|
|
338
|
-
? mergeBufferLayouts(bufferLayout, this._gpuGeometry.bufferLayout)
|
|
359
|
+
? bufferLayoutHelper.mergeBufferLayouts(bufferLayout, this._gpuGeometry.bufferLayout)
|
|
339
360
|
: bufferLayout;
|
|
340
361
|
this._setPipelineNeedsUpdate('bufferLayout');
|
|
341
362
|
// Recreate the pipeline
|
|
@@ -343,7 +364,8 @@ export class Model {
|
|
|
343
364
|
// vertex array needs to be updated if we update buffer layout,
|
|
344
365
|
// but not if we update parameters
|
|
345
366
|
this.vertexArray = this.device.createVertexArray({
|
|
346
|
-
|
|
367
|
+
shaderLayout: this.pipeline.shaderLayout,
|
|
368
|
+
bufferLayout: this.pipeline.bufferLayout
|
|
347
369
|
});
|
|
348
370
|
// Reapply geometry attributes to the new vertex array
|
|
349
371
|
if (this._gpuGeometry) {
|
|
@@ -387,16 +409,19 @@ export class Model {
|
|
|
387
409
|
setShaderInputs(shaderInputs) {
|
|
388
410
|
this.shaderInputs = shaderInputs;
|
|
389
411
|
this._uniformStore = new UniformStore(this.shaderInputs.modules);
|
|
390
|
-
// Create uniform buffer bindings for all modules
|
|
391
|
-
for (const moduleName of Object.
|
|
392
|
-
|
|
393
|
-
|
|
412
|
+
// Create uniform buffer bindings for all modules that actually have uniforms
|
|
413
|
+
for (const [moduleName, module] of Object.entries(this.shaderInputs.modules)) {
|
|
414
|
+
if (shaderModuleHasUniforms(module)) {
|
|
415
|
+
const uniformBuffer = this._uniformStore.getManagedUniformBuffer(this.device, moduleName);
|
|
416
|
+
this.bindings[`${moduleName}Uniforms`] = uniformBuffer;
|
|
417
|
+
}
|
|
394
418
|
}
|
|
395
419
|
this.setNeedsRedraw('shaderInputs');
|
|
396
420
|
}
|
|
397
421
|
/** Update uniform buffers from the model's shader inputs */
|
|
398
422
|
updateShaderInputs() {
|
|
399
423
|
this._uniformStore.setUniforms(this.shaderInputs.getUniformValues());
|
|
424
|
+
this.setBindings(this.shaderInputs.getBindingValues());
|
|
400
425
|
// TODO - this is already tracked through buffer/texture update times?
|
|
401
426
|
this.setNeedsRedraw('shaderInputs');
|
|
402
427
|
}
|
|
@@ -427,17 +452,22 @@ export class Model {
|
|
|
427
452
|
* @note Overrides any attributes previously set with the same name
|
|
428
453
|
*/
|
|
429
454
|
setAttributes(buffers, options) {
|
|
455
|
+
const disableWarnings = options?.disableWarnings ?? this.props.disableWarnings;
|
|
430
456
|
if (buffers.indices) {
|
|
431
457
|
log.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`)();
|
|
432
458
|
}
|
|
459
|
+
const bufferLayoutHelper = new _BufferLayoutHelper(this.bufferLayout);
|
|
460
|
+
// Check if all buffers have a layout
|
|
433
461
|
for (const [bufferName, buffer] of Object.entries(buffers)) {
|
|
434
|
-
const bufferLayout =
|
|
462
|
+
const bufferLayout = bufferLayoutHelper.getBufferLayout(bufferName);
|
|
435
463
|
if (!bufferLayout) {
|
|
436
|
-
|
|
464
|
+
if (!disableWarnings) {
|
|
465
|
+
log.warn(`Model(${this.id}): Missing layout for buffer "${bufferName}".`)();
|
|
466
|
+
}
|
|
437
467
|
continue; // eslint-disable-line no-continue
|
|
438
468
|
}
|
|
439
469
|
// For an interleaved attribute we may need to set multiple attributes
|
|
440
|
-
const attributeNames =
|
|
470
|
+
const attributeNames = bufferLayoutHelper.getAttributeNamesForBuffer(bufferLayout);
|
|
441
471
|
let set = false;
|
|
442
472
|
for (const attributeName of attributeNames) {
|
|
443
473
|
const attributeInfo = this._attributeInfos[attributeName];
|
|
@@ -446,7 +476,7 @@ export class Model {
|
|
|
446
476
|
set = true;
|
|
447
477
|
}
|
|
448
478
|
}
|
|
449
|
-
if (!set && !
|
|
479
|
+
if (!set && !disableWarnings) {
|
|
450
480
|
log.warn(`Model(${this.id}): Ignoring buffer "${buffer.id}" for unknown attribute "${bufferName}"`)();
|
|
451
481
|
}
|
|
452
482
|
}
|
|
@@ -478,7 +508,7 @@ export class Model {
|
|
|
478
508
|
* @deprecated WebGL only, use uniform buffers for portability
|
|
479
509
|
* @param uniforms
|
|
480
510
|
*/
|
|
481
|
-
|
|
511
|
+
setUniformsWebGL(uniforms) {
|
|
482
512
|
if (!isObjectEmpty(uniforms)) {
|
|
483
513
|
this.pipeline.setUniformsWebGL(uniforms);
|
|
484
514
|
Object.assign(this.uniforms, uniforms);
|
|
@@ -488,7 +518,7 @@ export class Model {
|
|
|
488
518
|
/**
|
|
489
519
|
* @deprecated Updates shader module settings (which results in uniforms being set)
|
|
490
520
|
*/
|
|
491
|
-
|
|
521
|
+
updateModuleSettingsWebGL(props) {
|
|
492
522
|
// log.warn('Model.updateModuleSettings is deprecated. Use Model.shaderInputs.setProps()')();
|
|
493
523
|
const { bindings, uniforms } = splitUniformsAndBindings(this._getModuleUniforms(props));
|
|
494
524
|
Object.assign(this.bindings, bindings);
|
|
@@ -496,20 +526,30 @@ export class Model {
|
|
|
496
526
|
this.setNeedsRedraw('moduleSettings');
|
|
497
527
|
}
|
|
498
528
|
// Internal methods
|
|
499
|
-
/**
|
|
529
|
+
/** Check that bindings are loaded. Returns id of first binding that is still loading. */
|
|
530
|
+
_areBindingsLoading() {
|
|
531
|
+
for (const binding of Object.values(this.bindings)) {
|
|
532
|
+
if (binding instanceof AsyncTexture && !binding.isReady) {
|
|
533
|
+
return binding.id;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
return false;
|
|
537
|
+
}
|
|
538
|
+
/** Extracts texture view from loaded async textures. Returns null if any textures have not yet been loaded. */
|
|
500
539
|
_getBindings() {
|
|
501
|
-
|
|
502
|
-
|
|
540
|
+
const validBindings = {};
|
|
541
|
+
for (const [name, binding] of Object.entries(this.bindings)) {
|
|
503
542
|
if (binding instanceof AsyncTexture) {
|
|
543
|
+
// Check that async textures are loaded
|
|
504
544
|
if (binding.isReady) {
|
|
505
|
-
|
|
545
|
+
validBindings[name] = binding.texture;
|
|
506
546
|
}
|
|
507
547
|
}
|
|
508
548
|
else {
|
|
509
|
-
|
|
549
|
+
validBindings[name] = binding;
|
|
510
550
|
}
|
|
511
|
-
|
|
512
|
-
|
|
551
|
+
}
|
|
552
|
+
return validBindings;
|
|
513
553
|
}
|
|
514
554
|
/** Get the timestamp of the latest updated bound GPU memory resource (buffer/texture). */
|
|
515
555
|
_getBindingsUpdateTimestamp() {
|
|
@@ -574,7 +614,7 @@ export class Model {
|
|
|
574
614
|
id: `${this.id}-vertex`,
|
|
575
615
|
stage: 'vertex',
|
|
576
616
|
source: this.source || this.vs,
|
|
577
|
-
|
|
617
|
+
debugShaders: this.props.debugShaders
|
|
578
618
|
});
|
|
579
619
|
let fs = null;
|
|
580
620
|
if (this.source) {
|
|
@@ -585,7 +625,7 @@ export class Model {
|
|
|
585
625
|
id: `${this.id}-fragment`,
|
|
586
626
|
stage: 'fragment',
|
|
587
627
|
source: this.source || this.fs,
|
|
588
|
-
|
|
628
|
+
debugShaders: this.props.debugShaders
|
|
589
629
|
});
|
|
590
630
|
}
|
|
591
631
|
this.pipeline = this.pipelineFactory.createRenderPipeline({
|
|
@@ -641,10 +681,11 @@ export class Model {
|
|
|
641
681
|
}
|
|
642
682
|
_drawCount = 0;
|
|
643
683
|
_logFramebuffer(renderPass) {
|
|
644
|
-
const debugFramebuffers =
|
|
684
|
+
const debugFramebuffers = this.device.props.debugFramebuffers;
|
|
645
685
|
this._drawCount++;
|
|
646
686
|
// Update first 3 frames and then every 60 frames
|
|
647
|
-
if (!debugFramebuffers
|
|
687
|
+
if (!debugFramebuffers) {
|
|
688
|
+
// } || (this._drawCount++ > 3 && this._drawCount % 60)) {
|
|
648
689
|
return;
|
|
649
690
|
}
|
|
650
691
|
// TODO - display framebuffer output in debug window
|
|
@@ -686,21 +727,10 @@ export class Model {
|
|
|
686
727
|
return typedArray.toString();
|
|
687
728
|
}
|
|
688
729
|
}
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
function mergeBufferLayouts(layouts1, layouts2) {
|
|
692
|
-
const layouts = [...layouts1];
|
|
693
|
-
for (const attribute of layouts2) {
|
|
694
|
-
const index = layouts.findIndex(attribute2 => attribute2.name === attribute.name);
|
|
695
|
-
if (index < 0) {
|
|
696
|
-
layouts.push(attribute);
|
|
697
|
-
}
|
|
698
|
-
else {
|
|
699
|
-
layouts[index] = attribute;
|
|
700
|
-
}
|
|
701
|
-
}
|
|
702
|
-
return layouts;
|
|
730
|
+
function shaderModuleHasUniforms(module) {
|
|
731
|
+
return Boolean(module.uniformTypes && !isObjectEmpty(module.uniformTypes));
|
|
703
732
|
}
|
|
733
|
+
// HELPERS
|
|
704
734
|
/** Create a shadertools platform info from the Device */
|
|
705
735
|
export function getPlatformInfo(device) {
|
|
706
736
|
return {
|
|
@@ -712,20 +742,13 @@ export function getPlatformInfo(device) {
|
|
|
712
742
|
features: device.features
|
|
713
743
|
};
|
|
714
744
|
}
|
|
715
|
-
/** Get attribute names from a BufferLayout */
|
|
716
|
-
function getAttributeNames(bufferLayout) {
|
|
717
|
-
return bufferLayout.attributes
|
|
718
|
-
? bufferLayout.attributes?.map(layout => layout.attribute)
|
|
719
|
-
: [bufferLayout.name];
|
|
720
|
-
}
|
|
721
745
|
/** Returns true if given object is empty, false otherwise. */
|
|
722
746
|
function isObjectEmpty(obj) {
|
|
723
|
-
let isEmpty = true;
|
|
724
747
|
// @ts-ignore key is unused
|
|
725
748
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
726
749
|
for (const key in obj) {
|
|
727
|
-
|
|
728
|
-
break;
|
|
750
|
+
return false;
|
|
729
751
|
}
|
|
730
|
-
return
|
|
752
|
+
return true;
|
|
731
753
|
}
|
|
754
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { UniformValue, Binding } from '@luma.gl/core';
|
|
2
|
-
export declare function isUniformValue(value: unknown):
|
|
2
|
+
export declare function isUniformValue(value: unknown): value is UniformValue;
|
|
3
3
|
type UniformsAndBindings = {
|
|
4
4
|
bindings: Record<string, Binding>;
|
|
5
5
|
uniforms: Record<string, UniformValue>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-uniforms-and-bindings.d.ts","sourceRoot":"","sources":["../../src/model/split-uniforms-and-bindings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAGzD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"split-uniforms-and-bindings.d.ts","sourceRoot":"","sources":["../../src/model/split-uniforms-and-bindings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAGzD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACxC,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC,GAC/C,mBAAmB,CAYrB"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { isNumericArray } from '@math.gl/types';
|
|
5
5
|
export function isUniformValue(value) {
|
|
6
|
-
return isNumericArray(value)
|
|
6
|
+
return isNumericArray(value) || typeof value === 'number' || typeof value === 'boolean';
|
|
7
7
|
}
|
|
8
8
|
export function splitUniformsAndBindings(uniforms) {
|
|
9
9
|
const result = { bindings: {}, uniforms: {} };
|
|
@@ -18,3 +18,4 @@ export function splitUniformsAndBindings(uniforms) {
|
|
|
18
18
|
});
|
|
19
19
|
return result;
|
|
20
20
|
}
|
|
21
|
+
//# sourceMappingURL=split-uniforms-and-bindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-uniforms-and-bindings.js","sourceRoot":"","sources":["../../src/model/split-uniforms-and-bindings.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AAC1F,CAAC;AAOD,MAAM,UAAU,wBAAwB,CACtC,QAAgD;IAEhD,MAAM,MAAM,GAAwB,EAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC;IACjE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|