@luma.gl/engine 9.0.0-beta.4 → 9.0.0-beta.5

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.
Files changed (78) hide show
  1. package/dist/animation/key-frames.js +54 -54
  2. package/dist/animation/timeline.js +95 -100
  3. package/dist/animation-loop/animation-loop-template.js +17 -5
  4. package/dist/animation-loop/animation-loop.js +425 -356
  5. package/dist/animation-loop/animation-props.js +0 -1
  6. package/dist/animation-loop/make-animation-loop.js +27 -25
  7. package/dist/debug/copy-texture-to-image.js +39 -43
  8. package/dist/debug/debug-framebuffer.js +43 -39
  9. package/dist/debug/debug-shader-layout.js +24 -25
  10. package/dist/debug/pixel-data-utils.js +33 -36
  11. package/dist/dist.dev.js +3784 -8643
  12. package/dist/geometries/cone-geometry.js +12 -18
  13. package/dist/geometries/cube-geometry.js +189 -62
  14. package/dist/geometries/cylinder-geometry.js +10 -15
  15. package/dist/geometries/ico-sphere-geometry.js +142 -161
  16. package/dist/geometries/plane-geometry.js +94 -112
  17. package/dist/geometries/sphere-geometry.js +77 -96
  18. package/dist/geometries/truncated-cone-geometry.js +100 -118
  19. package/dist/geometry/geometry-table.js +0 -1
  20. package/dist/geometry/geometry-utils.js +35 -32
  21. package/dist/geometry/geometry.js +77 -71
  22. package/dist/geometry/gpu-geometry.js +80 -99
  23. package/dist/geometry/gpu-table.js +41 -1
  24. package/dist/index.cjs +80 -127
  25. package/dist/index.cjs.map +7 -0
  26. package/dist/index.js +27 -24
  27. package/dist/lib/clip-space.js +25 -30
  28. package/dist/lib/pipeline-factory.d.ts +1 -5
  29. package/dist/lib/pipeline-factory.d.ts.map +1 -1
  30. package/dist/lib/pipeline-factory.js +61 -68
  31. package/dist/model/model.d.ts +2 -2
  32. package/dist/model/model.d.ts.map +1 -1
  33. package/dist/model/model.js +539 -413
  34. package/dist/scenegraph/group-node.js +69 -84
  35. package/dist/scenegraph/model-node.js +32 -25
  36. package/dist/scenegraph/scenegraph-node.js +136 -124
  37. package/dist/shader-inputs.js +96 -58
  38. package/dist/transform/buffer-transform.js +65 -58
  39. package/dist/transform/texture-transform.d.ts.map +1 -1
  40. package/dist/transform/texture-transform.js +108 -115
  41. package/dist.min.js +2 -272
  42. package/package.json +10 -9
  43. package/src/lib/pipeline-factory.ts +8 -21
  44. package/src/model/model.ts +5 -5
  45. package/src/transform/buffer-transform.ts +3 -3
  46. package/src/transform/texture-transform.ts +0 -2
  47. package/dist/animation/key-frames.js.map +0 -1
  48. package/dist/animation/timeline.js.map +0 -1
  49. package/dist/animation-loop/animation-loop-template.js.map +0 -1
  50. package/dist/animation-loop/animation-loop.js.map +0 -1
  51. package/dist/animation-loop/animation-props.js.map +0 -1
  52. package/dist/animation-loop/make-animation-loop.js.map +0 -1
  53. package/dist/debug/copy-texture-to-image.js.map +0 -1
  54. package/dist/debug/debug-framebuffer.js.map +0 -1
  55. package/dist/debug/debug-shader-layout.js.map +0 -1
  56. package/dist/debug/pixel-data-utils.js.map +0 -1
  57. package/dist/geometries/cone-geometry.js.map +0 -1
  58. package/dist/geometries/cube-geometry.js.map +0 -1
  59. package/dist/geometries/cylinder-geometry.js.map +0 -1
  60. package/dist/geometries/ico-sphere-geometry.js.map +0 -1
  61. package/dist/geometries/plane-geometry.js.map +0 -1
  62. package/dist/geometries/sphere-geometry.js.map +0 -1
  63. package/dist/geometries/truncated-cone-geometry.js.map +0 -1
  64. package/dist/geometry/geometry-table.js.map +0 -1
  65. package/dist/geometry/geometry-utils.js.map +0 -1
  66. package/dist/geometry/geometry.js.map +0 -1
  67. package/dist/geometry/gpu-geometry.js.map +0 -1
  68. package/dist/geometry/gpu-table.js.map +0 -1
  69. package/dist/index.js.map +0 -1
  70. package/dist/lib/clip-space.js.map +0 -1
  71. package/dist/lib/pipeline-factory.js.map +0 -1
  72. package/dist/model/model.js.map +0 -1
  73. package/dist/scenegraph/group-node.js.map +0 -1
  74. package/dist/scenegraph/model-node.js.map +0 -1
  75. package/dist/scenegraph/scenegraph-node.js.map +0 -1
  76. package/dist/shader-inputs.js.map +0 -1
  77. package/dist/transform/buffer-transform.js.map +0 -1
  78. package/dist/transform/texture-transform.js.map +0 -1
@@ -1,76 +1,69 @@
1
1
  import { RenderPipeline } from '@luma.gl/core';
2
+ /**
3
+ * Efficiently creates / caches pipelines
4
+ */
2
5
  export class PipelineFactory {
3
- static getDefaultPipelineFactory(device) {
4
- device._lumaData.defaultPipelineFactory = device._lumaData.defaultPipelineFactory || new PipelineFactory(device);
5
- return device._lumaData.defaultPipelineFactory;
6
- }
7
- constructor(device) {
8
- this.device = void 0;
9
- this._hashCounter = 0;
10
- this._hashes = {};
11
- this._useCounts = {};
12
- this._pipelineCache = {};
13
- this.device = device;
14
- }
15
- createRenderPipeline(options) {
16
- const props = {
17
- ...PipelineFactory.defaultProps,
18
- ...options
19
- };
20
- const hash = this._hashRenderPipeline({
21
- ...props
22
- });
23
- if (!this._pipelineCache[hash]) {
24
- const pipeline = this.device.createRenderPipeline({
25
- ...props,
26
- vs: this.device.createShader({
27
- stage: 'vertex',
28
- source: props.vs
29
- }),
30
- fs: props.fs ? this.device.createShader({
31
- stage: 'fragment',
32
- source: props.fs
33
- }) : null
34
- });
35
- pipeline.hash = hash;
36
- this._pipelineCache[hash] = pipeline;
37
- this._useCounts[hash] = 0;
6
+ static defaultProps = { ...RenderPipeline.defaultProps };
7
+ device;
8
+ _hashCounter = 0;
9
+ _hashes = {};
10
+ _useCounts = {};
11
+ _pipelineCache = {};
12
+ static getDefaultPipelineFactory(device) {
13
+ device._lumaData.defaultPipelineFactory =
14
+ device._lumaData.defaultPipelineFactory || new PipelineFactory(device);
15
+ return device._lumaData.defaultPipelineFactory;
38
16
  }
39
- this._useCounts[hash]++;
40
- return this._pipelineCache[hash];
41
- }
42
- release(pipeline) {
43
- const hash = pipeline.hash;
44
- this._useCounts[hash]--;
45
- if (this._useCounts[hash] === 0) {
46
- this._pipelineCache[hash].destroy();
47
- delete this._pipelineCache[hash];
48
- delete this._useCounts[hash];
17
+ constructor(device) {
18
+ this.device = device;
49
19
  }
50
- }
51
- _hashRenderPipeline(props) {
52
- const vsHash = this._getHash(props.vs);
53
- const fsHash = props.fs ? this._getHash(props.fs) : 0;
54
- const varyingHash = '-';
55
- switch (this.device.info.type) {
56
- case 'webgpu':
57
- const parameterHash = this._getHash(JSON.stringify(props.parameters));
20
+ createRenderPipeline(options) {
21
+ const props = { ...PipelineFactory.defaultProps, ...options };
22
+ const hash = this._hashRenderPipeline({ ...props });
23
+ if (!this._pipelineCache[hash]) {
24
+ const pipeline = this.device.createRenderPipeline({ ...props });
25
+ pipeline.hash = hash;
26
+ this._pipelineCache[hash] = pipeline;
27
+ this._useCounts[hash] = 0;
28
+ }
29
+ this._useCounts[hash]++;
30
+ return this._pipelineCache[hash];
31
+ }
32
+ release(pipeline) {
33
+ const hash = pipeline.hash;
34
+ this._useCounts[hash]--;
35
+ if (this._useCounts[hash] === 0) {
36
+ this._pipelineCache[hash].destroy();
37
+ delete this._pipelineCache[hash];
38
+ delete this._useCounts[hash];
39
+ }
40
+ }
41
+ // PRIVATE
42
+ /** Calculate a hash based on all the inputs for a render pipeline */
43
+ _hashRenderPipeline(props) {
44
+ const vsHash = this._getHash(props.vs.source);
45
+ const fsHash = props.fs ? this._getHash(props.fs.source) : 0;
46
+ // WebGL specific
47
+ // const {varyings = [], bufferMode = {}} = props;
48
+ // const varyingHashes = varyings.map((v) => this._getHash(v));
49
+ const varyingHash = '-'; // `${varyingHashes.join('/')}B${bufferMode}`
58
50
  const bufferLayoutHash = this._getHash(JSON.stringify(props.bufferLayout));
59
- return `${vsHash}/${fsHash}V${varyingHash}T${props.topology}P${parameterHash}BL${bufferLayoutHash}}`;
60
- default:
61
- return `${vsHash}/${fsHash}V${varyingHash}`;
51
+ switch (this.device.info.type) {
52
+ case 'webgpu':
53
+ // On WebGPU we need to rebuild the pipeline if topology, parameters or bufferLayout change
54
+ const parameterHash = this._getHash(JSON.stringify(props.parameters));
55
+ // TODO - Can json.stringify() generate different strings for equivalent objects if order of params is different?
56
+ // create a deepHash() to deduplicate?
57
+ return `${vsHash}/${fsHash}V${varyingHash}T${props.topology}P${parameterHash}BL${bufferLayoutHash}`;
58
+ default:
59
+ // WebGL is more dynamic
60
+ return `${vsHash}/${fsHash}V${varyingHash}BL${bufferLayoutHash}`;
61
+ }
62
62
  }
63
- }
64
- _getHash(key) {
65
- if (this._hashes[key] === undefined) {
66
- this._hashes[key] = this._hashCounter++;
63
+ _getHash(key) {
64
+ if (this._hashes[key] === undefined) {
65
+ this._hashes[key] = this._hashCounter++;
66
+ }
67
+ return this._hashes[key];
67
68
  }
68
- return this._hashes[key];
69
- }
70
69
  }
71
- PipelineFactory.defaultProps = {
72
- ...RenderPipeline.defaultProps,
73
- vs: undefined,
74
- fs: undefined
75
- };
76
- //# sourceMappingURL=pipeline-factory.js.map
@@ -41,7 +41,7 @@ export type ModelProps = Omit<RenderPipelineProps, 'vs' | 'fs'> & {
41
41
  attributes?: Record<string, Buffer>;
42
42
  /** */
43
43
  constantAttributes?: Record<string, TypedArray>;
44
- /** @internal For use with {@link TransformFeedback}, WebGL 2 only. */
44
+ /** @internal For use with {@link TransformFeedback}, WebGL only. */
45
45
  varyings?: string[];
46
46
  transformFeedback?: TransformFeedback;
47
47
  /** Mapped uniforms for shadertool modules */
@@ -172,7 +172,7 @@ export declare class Model {
172
172
  */
173
173
  setIndexBuffer(indexBuffer: Buffer | null): void;
174
174
  /**
175
- * Updates optional transform feedback. WebGL 2 only.
175
+ * Updates optional transform feedback. WebGL only.
176
176
  */
177
177
  setTransformFeedback(transformFeedback: TransformFeedback | null): void;
178
178
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}