@luma.gl/engine 9.1.0-beta.9 → 9.2.0-alpha.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.
Files changed (79) hide show
  1. package/README.md +5 -0
  2. package/dist/animation-loop/animation-loop.d.ts +11 -11
  3. package/dist/animation-loop/animation-loop.d.ts.map +1 -1
  4. package/dist/animation-loop/animation-loop.js +25 -49
  5. package/dist/animation-loop/animation-loop.js.map +1 -1
  6. package/dist/animation-loop/animation-props.d.ts +3 -4
  7. package/dist/animation-loop/animation-props.d.ts.map +1 -1
  8. package/dist/async-texture/async-texture.d.ts +106 -2
  9. package/dist/async-texture/async-texture.d.ts.map +1 -1
  10. package/dist/async-texture/async-texture.js +278 -5
  11. package/dist/async-texture/async-texture.js.map +1 -1
  12. package/dist/compute/computation.d.ts +1 -1
  13. package/dist/compute/computation.d.ts.map +1 -1
  14. package/dist/compute/swap.d.ts.map +1 -1
  15. package/dist/compute/swap.js +6 -2
  16. package/dist/compute/swap.js.map +1 -1
  17. package/dist/compute/texture-transform.d.ts.map +1 -1
  18. package/dist/compute/texture-transform.js +4 -2
  19. package/dist/compute/texture-transform.js.map +1 -1
  20. package/dist/debug/copy-texture-to-image.d.ts +23 -1
  21. package/dist/debug/copy-texture-to-image.d.ts.map +1 -1
  22. package/dist/debug/copy-texture-to-image.js +37 -1
  23. package/dist/debug/copy-texture-to-image.js.map +1 -1
  24. package/dist/dist.dev.js +466 -189
  25. package/dist/dist.min.js +26 -26
  26. package/dist/factories/pipeline-factory.d.ts +11 -1
  27. package/dist/factories/pipeline-factory.d.ts.map +1 -1
  28. package/dist/factories/pipeline-factory.js +104 -22
  29. package/dist/factories/pipeline-factory.js.map +1 -1
  30. package/dist/factories/shader-factory.d.ts +5 -1
  31. package/dist/factories/shader-factory.d.ts.map +1 -1
  32. package/dist/factories/shader-factory.js +38 -4
  33. package/dist/factories/shader-factory.js.map +1 -1
  34. package/dist/index.cjs +482 -208
  35. package/dist/index.cjs.map +4 -4
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/model/model.d.ts +4 -19
  40. package/dist/model/model.d.ts.map +1 -1
  41. package/dist/model/model.js +17 -56
  42. package/dist/model/model.js.map +1 -1
  43. package/dist/models/billboard-texture-model.d.ts.map +1 -1
  44. package/dist/models/billboard-texture-model.js +6 -4
  45. package/dist/models/billboard-texture-model.js.map +1 -1
  46. package/dist/modules/picking/legacy-picking-manager.d.ts +1 -1
  47. package/dist/modules/picking/legacy-picking-manager.d.ts.map +1 -1
  48. package/dist/modules/picking/legacy-picking-manager.js +1 -1
  49. package/dist/modules/picking/legacy-picking-manager.js.map +1 -1
  50. package/dist/modules/picking/picking-manager.d.ts +1 -1
  51. package/dist/modules/picking/picking-manager.d.ts.map +1 -1
  52. package/dist/modules/picking/picking-manager.js +1 -1
  53. package/dist/modules/picking/picking-manager.js.map +1 -1
  54. package/dist/passes/get-fragment-shader.js +2 -2
  55. package/dist/passes/shader-pass-renderer.d.ts +4 -4
  56. package/dist/passes/shader-pass-renderer.d.ts.map +1 -1
  57. package/dist/passes/shader-pass-renderer.js +15 -5
  58. package/dist/passes/shader-pass-renderer.js.map +1 -1
  59. package/dist/shader-inputs.js +1 -1
  60. package/dist/shader-inputs.js.map +1 -1
  61. package/package.json +4 -4
  62. package/src/animation-loop/animation-loop.ts +30 -58
  63. package/src/animation-loop/animation-props.ts +3 -5
  64. package/src/async-texture/async-texture.ts +382 -16
  65. package/src/async-texture/texture-setters.ts.disabled +296 -0
  66. package/src/compute/computation.ts +1 -1
  67. package/src/compute/swap.ts +7 -2
  68. package/src/compute/texture-transform.ts +4 -2
  69. package/src/debug/copy-texture-to-image.ts +52 -2
  70. package/src/factories/pipeline-factory.ts +119 -23
  71. package/src/factories/shader-factory.ts +41 -5
  72. package/src/index.ts +12 -0
  73. package/src/model/model.ts +21 -67
  74. package/src/models/billboard-texture-model.ts +6 -4
  75. package/src/modules/picking/legacy-picking-manager.ts +2 -2
  76. package/src/modules/picking/picking-manager.ts +2 -2
  77. package/src/passes/get-fragment-shader.ts +2 -2
  78. package/src/passes/shader-pass-renderer.ts +18 -8
  79. package/src/shader-inputs.ts +1 -1
@@ -21,9 +21,9 @@ export class ShaderPassRenderer {
21
21
  props.shaderPasses.map(shaderPass => initializeShaderModule(shaderPass));
22
22
  const modules = props.shaderPasses.reduce((object, shaderPass) => ({ ...object, [shaderPass.name]: shaderPass }), {});
23
23
  this.shaderInputs = props.shaderInputs || new ShaderInputs(modules);
24
- const size = device.getCanvasContext().getPixelSize();
24
+ const size = device.getCanvasContext().getDrawingBufferSize();
25
25
  this.swapFramebuffers = new SwapFramebuffers(device, {
26
- colorAttachments: ['rgba8unorm'],
26
+ colorAttachments: [device.preferredColorFormat],
27
27
  width: size[0],
28
28
  height: size[1]
29
29
  });
@@ -76,7 +76,16 @@ void main() {
76
76
  // source texture not yet loaded
77
77
  return false;
78
78
  }
79
- const renderPass = this.device.beginRenderPass({ clearColor: [0, 0, 0, 1], clearDepth: 1 });
79
+ const framebuffer = this.device
80
+ .getDefaultCanvasContext()
81
+ // @ts-expect-error TODO - remove after republish
82
+ .getCurrentFramebuffer({ depthStencilAttachment: false });
83
+ const renderPass = this.device.beginRenderPass({
84
+ id: 'shader-pass-renderer-to-screen',
85
+ framebuffer,
86
+ clearColor: [0, 0, 0, 1],
87
+ clearDepth: 1
88
+ });
80
89
  this.clipSpace.setBindings({ sourceTexture: outputTexture });
81
90
  this.clipSpace.draw(renderPass);
82
91
  renderPass.end();
@@ -96,6 +105,7 @@ void main() {
96
105
  });
97
106
  // Clear the current texture before we begin
98
107
  const clearTexturePass = this.device.beginRenderPass({
108
+ id: 'shader-pass-renderer-clear-texture',
99
109
  framebuffer: this.swapFramebuffers.current,
100
110
  clearColor: [0, 0, 0, 1]
101
111
  });
@@ -120,6 +130,7 @@ void main() {
120
130
  // texSize: [sourceTextures.width, sourceTextures.height]
121
131
  };
122
132
  const renderPass = this.device.beginRenderPass({
133
+ id: 'shader-pass-renderer-run-pass',
123
134
  framebuffer: this.swapFramebuffers.next,
124
135
  clearColor: [0, 0, 0, 1],
125
136
  clearDepth: 1
@@ -173,8 +184,7 @@ class SubPassRenderer {
173
184
  fs,
174
185
  modules: [shaderPass],
175
186
  parameters: {
176
- depthWriteEnabled: false,
177
- depthCompare: 'always'
187
+ depthWriteEnabled: false
178
188
  }
179
189
  });
180
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shader-pass-renderer.js","sourceRoot":"","sources":["../../src/passes/shader-pass-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shader-pass-renderer.js","sourceRoot":"","sources":["../../src/passes/shader-pass-renderer.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { log } from '@luma.gl/core';
5
- // import type {ShaderUniformType, UniformValue, UniformFormat, UniformInfoDevice, Texture, Sampler} from '@luma.gl/core';
5
+ // import type {VariableShaderType, UniformValue, UniformFormat, UniformInfoDevice, Texture, Sampler} from '@luma.gl/core';
6
6
  import { getShaderModuleDependencies } from '@luma.gl/shadertools';
7
7
  import { splitUniformsAndBindings } from "./model/split-uniforms-and-bindings.js";
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"shader-inputs.js","sourceRoot":"","sources":["../src/shader-inputs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shader-inputs.js","sourceRoot":"","sources":["../src/shader-inputs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/engine",
3
- "version": "9.1.0-beta.9",
3
+ "version": "9.2.0-alpha.1",
4
4
  "description": "3D Engine Components for luma.gl",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -40,8 +40,8 @@
40
40
  "prepublishOnly": "npm run build-minified-bundle && npm run build-dev-bundle"
41
41
  },
42
42
  "peerDependencies": {
43
- "@luma.gl/core": "^9.1.0-beta.1",
44
- "@luma.gl/shadertools": "^9.1.0-beta.1"
43
+ "@luma.gl/core": "9.2.0-alpha.0",
44
+ "@luma.gl/shadertools": "9.2.0-alpha.0"
45
45
  },
46
46
  "dependencies": {
47
47
  "@math.gl/core": "^4.1.0",
@@ -49,5 +49,5 @@
49
49
  "@probe.gl/log": "^4.0.8",
50
50
  "@probe.gl/stats": "^4.0.8"
51
51
  },
52
- "gitHead": "ce90c649e27184c399eaeab814ec21a46f45677b"
52
+ "gitHead": "d6d2f791f2ce96f4b5acb68e05faea62c35440fb"
53
53
  }
@@ -27,38 +27,30 @@ export type AnimationLoopProps = {
27
27
 
28
28
  // view parameters - TODO move to CanvasContext?
29
29
  autoResizeViewport?: boolean;
30
- autoResizeDrawingBuffer?: boolean;
31
- useDevicePixels?: number | boolean;
32
30
  };
33
31
 
34
32
  export type MutableAnimationLoopProps = {
35
33
  // view parameters
36
34
  autoResizeViewport?: boolean;
37
- autoResizeDrawingBuffer?: boolean;
38
- useDevicePixels?: number | boolean;
39
35
  };
40
36
 
41
- const DEFAULT_ANIMATION_LOOP_PROPS: Required<AnimationLoopProps> = {
42
- device: null!,
37
+ /** Convenient animation loop */
38
+ export class AnimationLoop {
39
+ static defaultAnimationLoopProps = {
40
+ device: null!,
43
41
 
44
- onAddHTML: () => '',
45
- onInitialize: async () => {
46
- return null;
47
- },
48
- onRender: () => {},
49
- onFinalize: () => {},
50
- onError: error => console.error(error), // eslint-disable-line no-console
42
+ onAddHTML: () => '',
43
+ onInitialize: async () => null,
44
+ onRender: () => {},
45
+ onFinalize: () => {},
46
+ onError: error => console.error(error), // eslint-disable-line no-console
51
47
 
52
- stats: luma.stats.get(`animation-loop-${statIdCounter++}`),
48
+ stats: luma.stats.get(`animation-loop-${statIdCounter++}`),
53
49
 
54
- // view parameters
55
- useDevicePixels: true,
56
- autoResizeViewport: false,
57
- autoResizeDrawingBuffer: false
58
- };
50
+ // view parameters
51
+ autoResizeViewport: false
52
+ } as const satisfies Readonly<Required<AnimationLoopProps>>;
59
53
 
60
- /** Convenient animation loop */
61
- export class AnimationLoop {
62
54
  device: Device | null = null;
63
55
  canvas: HTMLCanvasElement | OffscreenCanvas | null = null;
64
56
 
@@ -88,26 +80,20 @@ export class AnimationLoop {
88
80
  * @param {HTMLCanvasElement} canvas - if provided, width and height will be passed to context
89
81
  */
90
82
  constructor(props: AnimationLoopProps) {
91
- this.props = {...DEFAULT_ANIMATION_LOOP_PROPS, ...props};
83
+ this.props = {...AnimationLoop.defaultAnimationLoopProps, ...props};
92
84
  props = this.props;
93
85
 
94
86
  if (!props.device) {
95
87
  throw new Error('No device provided');
96
88
  }
97
89
 
98
- const {useDevicePixels = true} = this.props;
99
-
100
90
  // state
101
91
  this.stats = props.stats || new Stats({id: 'animation-loop-stats'});
102
92
  this.cpuTime = this.stats.get('CPU Time');
103
93
  this.gpuTime = this.stats.get('GPU Time');
104
94
  this.frameRate = this.stats.get('Frame Rate');
105
95
 
106
- this.setProps({
107
- autoResizeViewport: props.autoResizeViewport,
108
- autoResizeDrawingBuffer: props.autoResizeDrawingBuffer,
109
- useDevicePixels
110
- });
96
+ this.setProps({autoResizeViewport: props.autoResizeViewport});
111
97
 
112
98
  // Bind methods
113
99
  this.start = this.start.bind(this);
@@ -130,7 +116,7 @@ export class AnimationLoop {
130
116
  setError(error: Error): void {
131
117
  this.props.onError(error);
132
118
  this._error = Error();
133
- const canvas = this.device?.canvasContext?.canvas;
119
+ const canvas = this.device?.getDefaultCanvasContext().canvas;
134
120
  if (canvas instanceof HTMLCanvasElement) {
135
121
  const errorDiv = document.createElement('h1');
136
122
  errorDiv.innerHTML = error.message;
@@ -150,17 +136,10 @@ export class AnimationLoop {
150
136
  return this;
151
137
  }
152
138
 
153
- /** TODO - move these props to CanvasContext? */
154
139
  setProps(props: MutableAnimationLoopProps): this {
155
140
  if ('autoResizeViewport' in props) {
156
141
  this.props.autoResizeViewport = props.autoResizeViewport || false;
157
142
  }
158
- if ('autoResizeDrawingBuffer' in props) {
159
- this.props.autoResizeDrawingBuffer = props.autoResizeDrawingBuffer || false;
160
- }
161
- if ('useDevicePixels' in props) {
162
- this.props.useDevicePixels = props.useDevicePixels || false;
163
- }
164
143
  return this;
165
144
  }
166
145
 
@@ -292,7 +271,6 @@ export class AnimationLoop {
292
271
  this._updateAnimationProps();
293
272
 
294
273
  // Default viewport setup, in case onInitialize wants to render
295
- this._resizeCanvasDrawingBuffer();
296
274
  this._resizeViewport();
297
275
 
298
276
  // this._gpuTimeQuery = Query.isSupported(this.gl, ['timers']) ? new Query(this.gl) : null;
@@ -371,26 +349,30 @@ export class AnimationLoop {
371
349
  }
372
350
 
373
351
  _setupFrame(): void {
374
- this._resizeCanvasDrawingBuffer();
375
352
  this._resizeViewport();
376
353
  }
377
354
 
378
355
  // Initialize the object that will be passed to app callbacks
379
356
  _initializeAnimationProps(): void {
380
- const canvas = this.device?.canvasContext?.canvas;
381
-
382
- if (!this.device || !canvas) {
357
+ const canvasContext = this.device?.getDefaultCanvasContext();
358
+ if (!this.device || !canvasContext) {
383
359
  throw new Error('loop');
384
360
  }
361
+
362
+ const canvas = canvasContext?.canvas;
363
+ const useDevicePixels = canvasContext.props.useDevicePixels;
364
+
385
365
  this.animationProps = {
386
366
  animationLoop: this,
387
367
 
388
368
  device: this.device,
369
+ canvasContext,
389
370
  canvas,
371
+ // @ts-expect-error Deprecated
372
+ useDevicePixels,
373
+
390
374
  timeline: this.timeline,
391
375
 
392
- // Initial values
393
- useDevicePixels: this.props.useDevicePixels,
394
376
  needsRedraw: false,
395
377
 
396
378
  // Placeholders
@@ -460,7 +442,7 @@ export class AnimationLoop {
460
442
  if (!this.device) {
461
443
  throw new Error('No device provided');
462
444
  }
463
- this.canvas = this.device.canvasContext?.canvas || null;
445
+ this.canvas = this.device.getDefaultCanvasContext().canvas || null;
464
446
  // this._createInfoDiv();
465
447
  }
466
448
 
@@ -491,11 +473,11 @@ export class AnimationLoop {
491
473
  return {width: 1, height: 1, aspect: 1};
492
474
  }
493
475
  // https://webglfundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html
494
- const [width, height] = this.device?.canvasContext?.getPixelSize() || [1, 1];
476
+ const [width, height] = this.device?.getDefaultCanvasContext().getDevicePixelSize() || [1, 1];
495
477
 
496
478
  // https://webglfundamentals.org/webgl/lessons/webgl-anti-patterns.html
497
479
  let aspect = 1;
498
- const canvas = this.device?.canvasContext?.canvas;
480
+ const canvas = this.device?.getDefaultCanvasContext().canvas;
499
481
 
500
482
  // @ts-expect-error
501
483
  if (canvas && canvas.clientHeight) {
@@ -508,7 +490,7 @@ export class AnimationLoop {
508
490
  return {width, height, aspect};
509
491
  }
510
492
 
511
- /** Default viewport setup */
493
+ /** @deprecated Default viewport setup */
512
494
  _resizeViewport(): void {
513
495
  // TODO can we use canvas context to code this in a portable way?
514
496
  // @ts-expect-error Expose on canvasContext
@@ -525,16 +507,6 @@ export class AnimationLoop {
525
507
  }
526
508
  }
527
509
 
528
- /**
529
- * Resize the render buffer of the canvas to match canvas client size
530
- * Optionally multiplying with devicePixel ratio
531
- */
532
- _resizeCanvasDrawingBuffer(): void {
533
- if (this.props.autoResizeDrawingBuffer) {
534
- this.device?.canvasContext?.resize({useDevicePixels: this.props.useDevicePixels});
535
- }
536
- }
537
-
538
510
  _beginFrameTimers() {
539
511
  this.frameRate.timeEnd();
540
512
  this.frameRate.timeStart();
@@ -2,18 +2,16 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import {Device} from '@luma.gl/core';
5
+ import {CanvasContext, Device} from '@luma.gl/core';
6
6
  import {Timeline} from '../animation/timeline';
7
7
  import type {AnimationLoop} from './animation-loop';
8
8
 
9
9
  /** Properties passed to every render frame */
10
10
  export type AnimationProps = {
11
- device: Device;
12
11
  animationLoop: AnimationLoop;
13
-
14
- /** @todo Should be canvasContext */
12
+ device: Device;
13
+ canvasContext: CanvasContext;
15
14
  canvas: HTMLCanvasElement | OffscreenCanvas;
16
- useDevicePixels: number | boolean;
17
15
  width: number;
18
16
  height: number;
19
17
  aspect: number;