@luma.gl/engine 9.2.6 → 9.3.0-alpha.2

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 (71) hide show
  1. package/dist/animation-loop/animation-loop.d.ts +3 -1
  2. package/dist/animation-loop/animation-loop.d.ts.map +1 -1
  3. package/dist/animation-loop/animation-loop.js +10 -4
  4. package/dist/animation-loop/animation-loop.js.map +1 -1
  5. package/dist/compute/computation.d.ts.map +1 -1
  6. package/dist/compute/computation.js +3 -2
  7. package/dist/compute/computation.js.map +1 -1
  8. package/dist/compute/swap.d.ts +2 -0
  9. package/dist/compute/swap.d.ts.map +1 -1
  10. package/dist/compute/swap.js +10 -5
  11. package/dist/compute/swap.js.map +1 -1
  12. package/dist/dist.dev.js +554 -358
  13. package/dist/dist.min.js +59 -50
  14. package/dist/dynamic-texture/dynamic-texture.d.ts +95 -0
  15. package/dist/dynamic-texture/dynamic-texture.d.ts.map +1 -0
  16. package/dist/dynamic-texture/dynamic-texture.js +356 -0
  17. package/dist/dynamic-texture/dynamic-texture.js.map +1 -0
  18. package/dist/dynamic-texture/texture-data.d.ts +137 -0
  19. package/dist/dynamic-texture/texture-data.d.ts.map +1 -0
  20. package/dist/dynamic-texture/texture-data.js +183 -0
  21. package/dist/dynamic-texture/texture-data.js.map +1 -0
  22. package/dist/factories/pipeline-factory.d.ts.map +1 -1
  23. package/dist/factories/pipeline-factory.js +3 -3
  24. package/dist/factories/pipeline-factory.js.map +1 -1
  25. package/dist/factories/shader-factory.d.ts.map +1 -1
  26. package/dist/factories/shader-factory.js +3 -2
  27. package/dist/factories/shader-factory.js.map +1 -1
  28. package/dist/index.cjs +566 -370
  29. package/dist/index.cjs.map +4 -4
  30. package/dist/index.d.ts +8 -3
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +4 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/model/model.d.ts +31 -10
  35. package/dist/model/model.d.ts.map +1 -1
  36. package/dist/model/model.js +34 -14
  37. package/dist/model/model.js.map +1 -1
  38. package/dist/models/billboard-texture-model.d.ts +8 -5
  39. package/dist/models/billboard-texture-model.d.ts.map +1 -1
  40. package/dist/models/billboard-texture-model.js +70 -18
  41. package/dist/models/billboard-texture-model.js.map +1 -1
  42. package/dist/passes/get-fragment-shader.js +15 -11
  43. package/dist/passes/get-fragment-shader.js.map +1 -1
  44. package/dist/passes/shader-pass-renderer.d.ts +5 -5
  45. package/dist/passes/shader-pass-renderer.d.ts.map +1 -1
  46. package/dist/passes/shader-pass-renderer.js +13 -12
  47. package/dist/passes/shader-pass-renderer.js.map +1 -1
  48. package/dist/types.d.ts +7 -0
  49. package/dist/types.d.ts.map +1 -0
  50. package/dist/types.js +5 -0
  51. package/dist/types.js.map +1 -0
  52. package/package.json +4 -4
  53. package/src/animation-loop/animation-loop.ts +11 -4
  54. package/src/compute/computation.ts +3 -2
  55. package/src/compute/swap.ts +13 -7
  56. package/src/dynamic-texture/dynamic-texture.ts +451 -0
  57. package/src/dynamic-texture/texture-data.ts +301 -0
  58. package/src/factories/pipeline-factory.ts +4 -3
  59. package/src/factories/shader-factory.ts +4 -2
  60. package/src/index.ts +9 -4
  61. package/src/model/model.ts +37 -18
  62. package/src/models/billboard-texture-model.ts +81 -22
  63. package/src/passes/get-fragment-shader.ts +15 -11
  64. package/src/passes/shader-pass-renderer.ts +22 -16
  65. package/src/types.ts +11 -0
  66. package/dist/async-texture/async-texture.d.ts +0 -166
  67. package/dist/async-texture/async-texture.d.ts.map +0 -1
  68. package/dist/async-texture/async-texture.js +0 -386
  69. package/dist/async-texture/async-texture.js.map +0 -1
  70. package/src/async-texture/async-texture.ts +0 -551
  71. /package/src/{async-texture/texture-setters.ts.disabled → dynamic-texture/texture-data.ts.disabled} +0 -0
@@ -29,19 +29,23 @@ function getFilterShaderWGSL(func) {
29
29
  // Binding 0:1 is reserved for shader passes
30
30
  // @group(0) @binding(0) var<uniform> brightnessContrast : brightnessContrastUniforms;
31
31
  @group(0) @binding(1) var texture: texture_2d<f32>;
32
- @group(0) @binding(2) var sampler: sampler;
32
+ @group(0) @binding(2) var textureSampler: sampler;
33
33
 
34
- struct FragmentInputs {
35
- @location(0) fragUV: vec2f,
36
- @location(1) fragPosition: vec4f,
37
- @location(2) fragCoordinate: vec4f
38
- };
34
+ // This needs to be aligned with
35
+ // struct FragmentInputs {
36
+ // @location(0) fragUV: vec2f,
37
+ // @location(1) fragPosition: vec4f,
38
+ // @location(2) fragCoordinate: vec4f
39
+ // };
39
40
 
40
41
  @fragment
41
42
  fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4f {
42
- let texSize = textureDimensions(texture, 0);
43
- var fragColor = textureSample(texture, sampler, fragUV);
44
- fragColor = ${func}(gl_FragColor, texSize, texCoord);
43
+ let fragUV = inputs.uv;
44
+ let fragCoordinate = inputs.coordinate;
45
+ let texSize = vec2f(textureDimensions(texture, 0));
46
+
47
+ var fragColor = textureSample(texture, textureSampler, fragUV);
48
+ fragColor = ${func}(fragColor, texSize, fragCoordinate);
45
49
  return fragColor;
46
50
  }
47
51
  `;
@@ -62,9 +66,9 @@ struct FragmentInputs = {
62
66
 
63
67
  @fragment
64
68
  fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4f {
65
- let texSize = textureDimensions(texture, 0);
69
+ let texSize = vec2f(textureDimensions(texture, 0));
66
70
  var fragColor = textureSample(texture, sampler, fragUV);
67
- fragColor = ${func}(gl_FragColor, texSize, texCoord);
71
+ fragColor = ${func}(fragColor, texSize, texCoord);
68
72
  return fragColor;
69
73
  }
70
74
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"get-fragment-shader.js","sourceRoot":"","sources":["../../src/passes/get-fragment-shader.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAI9C;IACC,MAAM,EAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAC,GAAG,OAAO,CAAC;IACtD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,MAAM,UAAU,GAAG,GAAG,UAAU,CAAC,IAAI,kBAAkB,CAAC;YACxD,OAAO,eAAe,KAAK,MAAM;gBAC/B,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC;gBACjC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEtC,KAAK,QAAQ;YACX,MAAM,WAAW,GAAG,GAAG,UAAU,CAAC,IAAI,cAAc,CAAC;YACrD,OAAO,eAAe,KAAK,MAAM;gBAC/B,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC;gBACnC,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAExC;YACE,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,+CAA+C,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;gBAgBJ,IAAI;;;CAGnB,CAAC;AACF,CAAC;AAED,0CAA0C;AAC1C,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;gBAgBJ,IAAI;;;CAGnB,CAAC;AACF,CAAC;AAED,2CAA2C;AAC3C,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;;gBAiBJ,IAAI;;CAEnB,CAAC;AACF,CAAC;AAED,0CAA0C;AAC1C,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;gBAgBJ,IAAI;;CAEnB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"get-fragment-shader.js","sourceRoot":"","sources":["../../src/passes/get-fragment-shader.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAI9C;IACC,MAAM,EAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAC,GAAG,OAAO,CAAC;IACtD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,MAAM,UAAU,GAAG,GAAG,UAAU,CAAC,IAAI,kBAAkB,CAAC;YACxD,OAAO,eAAe,KAAK,MAAM;gBAC/B,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC;gBACjC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEtC,KAAK,QAAQ;YACX,MAAM,WAAW,GAAG,GAAG,UAAU,CAAC,IAAI,cAAc,CAAC;YACrD,OAAO,eAAe,KAAK,MAAM;gBAC/B,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC;gBACnC,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAExC;YACE,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,+CAA+C,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;gBAoBJ,IAAI;;;CAGnB,CAAC;AACF,CAAC;AAED,0CAA0C;AAC1C,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;gBAgBJ,IAAI;;;CAGnB,CAAC;AACF,CAAC;AAED,2CAA2C;AAC3C,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;;gBAiBJ,IAAI;;CAEnB,CAAC;AACF,CAAC;AAED,0CAA0C;AAC1C,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;gBAgBJ,IAAI;;CAEnB,CAAC;AACF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Device, RenderPass, Texture } from '@luma.gl/core';
2
2
  import type { ShaderPass } from '@luma.gl/shadertools';
3
3
  import { ShaderInputs } from "../shader-inputs.js";
4
- import { AsyncTexture } from "../async-texture/async-texture.js";
4
+ import { DynamicTexture } from "../dynamic-texture/dynamic-texture.js";
5
5
  import { ClipSpace } from "../models/clip-space.js";
6
6
  import { SwapFramebuffers } from "../compute/swap.js";
7
7
  import { BackgroundTextureModel } from "../models/billboard-texture-model.js";
@@ -11,7 +11,7 @@ export type ShaderPassRendererProps = {
11
11
  /** List of ShaderPasses to apply to the sourceTexture */
12
12
  shaderPasses: ShaderPass[];
13
13
  /** Optional typed ShaderInputs object for setting uniforms */
14
- shaderInputs: ShaderInputs;
14
+ shaderInputs?: ShaderInputs;
15
15
  };
16
16
  /** A pass that renders a given texture into screen space */
17
17
  export declare class ShaderPassRenderer {
@@ -25,9 +25,9 @@ export declare class ShaderPassRenderer {
25
25
  constructor(device: Device, props: ShaderPassRendererProps);
26
26
  /** Destroys resources created by this ShaderPassRenderer */
27
27
  destroy(): void;
28
- resize(width: number, height: number): void;
28
+ resize(size?: [width: number, height: number]): void;
29
29
  renderToScreen(options: {
30
- sourceTexture: AsyncTexture;
30
+ sourceTexture: DynamicTexture;
31
31
  uniforms?: any;
32
32
  bindings?: any;
33
33
  }): boolean;
@@ -35,7 +35,7 @@ export declare class ShaderPassRenderer {
35
35
  * @returns null if the the sourceTexture has not yet been loaded
36
36
  */
37
37
  renderToTexture(options: {
38
- sourceTexture: AsyncTexture;
38
+ sourceTexture: DynamicTexture;
39
39
  uniforms?: any;
40
40
  bindings?: any;
41
41
  }): Texture | null;
@@ -1 +1 @@
1
- {"version":3,"file":"shader-pass-renderer.d.ts","sourceRoot":"","sources":["../../src/passes/shader-pass-renderer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAC9C,OAAO,EAAC,YAAY,EAAC,0CAAuC;AAC5D,OAAO,EAAC,SAAS,EAAC,gCAA6B;AAC/C,OAAO,EAAC,gBAAgB,EAAC,2BAAwB;AACjD,OAAO,EAAC,sBAAsB,EAAC,6CAA0C;AAIzE,KAAK,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D,mCAAmC;AACnC,MAAM,MAAM,uBAAuB,GAAG;IACpC,yDAAyD;IACzD,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,4DAA4D;AAC5D,qBAAa,kBAAkB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,kCAAkC;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,sBAAsB,CAAC;gBAEzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB;IAoD1D,4DAA4D;IAC5D,OAAO;IAQP,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAK3C,cAAc,CAAC,OAAO,EAAE;QAAC,aAAa,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAC,GAAG,OAAO;IAwB/F;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE;QACvB,aAAa,EAAE,YAAY,CAAC;QAC5B,QAAQ,CAAC,EAAE,GAAG,CAAC;QACf,QAAQ,CAAC,EAAE,GAAG,CAAC;KAChB,GAAG,OAAO,GAAG,IAAI;CAyDnB;AAED,6BAA6B;AAC7B,cAAM,YAAY;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,eAAe,EAAE,CAAC;gBAExB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,KAAK;IAa9D,OAAO;CAKR;AAED,0CAA0C;AAC1C,cAAM,eAAe;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;gBAEX,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa;IAsB1E,OAAO;IAIP,MAAM,CAAC,OAAO,EAAE;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAA;KAAC,GAAG,IAAI;CAa/D"}
1
+ {"version":3,"file":"shader-pass-renderer.d.ts","sourceRoot":"","sources":["../../src/passes/shader-pass-renderer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAC9C,OAAO,EAAC,cAAc,EAAC,8CAA2C;AAClE,OAAO,EAAC,SAAS,EAAC,gCAA6B;AAC/C,OAAO,EAAC,gBAAgB,EAAC,2BAAwB;AACjD,OAAO,EAAC,sBAAsB,EAAC,6CAA0C;AAIzE,KAAK,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D,mCAAmC;AACnC,MAAM,MAAM,uBAAuB,GAAG;IACpC,yDAAyD;IACzD,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,4DAA4D;AAC5D,qBAAa,kBAAkB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,kCAAkC;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,sBAAsB,CAAC;gBAEzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB;IAkD1D,4DAA4D;IAC5D,OAAO;IASP,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAKpD,cAAc,CAAC,OAAO,EAAE;QACtB,aAAa,EAAE,cAAc,CAAC;QAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;QACf,QAAQ,CAAC,EAAE,GAAG,CAAC;KAChB,GAAG,OAAO;IAwBX;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE;QACvB,aAAa,EAAE,cAAc,CAAC;QAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;QACf,QAAQ,CAAC,EAAE,GAAG,CAAC;KAChB,GAAG,OAAO,GAAG,IAAI;CA4DnB;AAED,6BAA6B;AAC7B,cAAM,YAAY;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,eAAe,EAAE,CAAC;gBAExB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,KAAK;IAa9D,OAAO;CAKR;AAED,0CAA0C;AAC1C,cAAM,eAAe;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;gBAEX,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa;IAsB1E,OAAO;IAIP,MAAM,CAAC,OAAO,EAAE;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAA;KAAC,GAAG,IAAI;CAa/D"}
@@ -46,12 +46,10 @@ fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4<f32> {
46
46
 
47
47
  uniform sampler2D sourceTexture;
48
48
  in vec2 uv;
49
- in vec2 coordinate;
50
49
  out vec4 fragColor;
51
50
 
52
51
  void main() {
53
- vec2 texCoord = coordinate;
54
- fragColor = texture(sourceTexture, coordinate);
52
+ fragColor = texture(sourceTexture, uv);
55
53
  }
56
54
  `
57
55
  });
@@ -64,10 +62,11 @@ void main() {
64
62
  }
65
63
  this.swapFramebuffers.destroy();
66
64
  this.clipSpace.destroy();
65
+ this.textureModel.destroy();
67
66
  }
68
- resize(width, height) {
69
- this.swapFramebuffers.resize({ width, height });
70
- // this.props.passes.forEach(pass => pass.resize(width, height));
67
+ resize(size) {
68
+ size ||= this.device.getCanvasContext().getDrawingBufferSize();
69
+ this.swapFramebuffers.resize({ width: size[0], height: size[1] });
71
70
  }
72
71
  renderToScreen(options) {
73
72
  // Run the shader passes and generate an output texture
@@ -83,7 +82,7 @@ void main() {
83
82
  const renderPass = this.device.beginRenderPass({
84
83
  id: 'shader-pass-renderer-to-screen',
85
84
  framebuffer,
86
- clearColor: [0, 0, 0, 1],
85
+ // clearColor: [1, 1, 0, 1],
87
86
  clearDepth: 1
88
87
  });
89
88
  this.clipSpace.setBindings({ sourceTexture: outputTexture });
@@ -99,18 +98,20 @@ void main() {
99
98
  if (!sourceTexture.isReady) {
100
99
  return null;
101
100
  }
102
- this.textureModel.destroy();
103
- this.textureModel = new BackgroundTextureModel(this.device, {
104
- backgroundTexture: sourceTexture
105
- });
101
+ // If no shader passes are provided, just return the original texture
102
+ if (this.passRenderers.length === 0) {
103
+ return sourceTexture.texture;
104
+ }
105
+ this.textureModel.setProps({ backgroundTexture: sourceTexture });
106
106
  // Clear the current texture before we begin
107
107
  const clearTexturePass = this.device.beginRenderPass({
108
108
  id: 'shader-pass-renderer-clear-texture',
109
109
  framebuffer: this.swapFramebuffers.current,
110
- clearColor: [0, 0, 0, 1]
110
+ clearColor: [1, 0, 0, 1]
111
111
  });
112
112
  this.textureModel.draw(clearTexturePass);
113
113
  clearTexturePass.end();
114
+ // Copy the texture contents
114
115
  // const commandEncoder = this.device.createCommandEncoder();
115
116
  // commandEncoder.copyTextureToTexture({
116
117
  // sourceTexture: sourceTexture.texture,
@@ -1 +1 @@
1
- {"version":3,"file":"shader-pass-renderer.js","sourceRoot":"","sources":["../../src/passes/shader-pass-renderer.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAE9C,OAAO,EAAC,SAAS,EAAC,gCAA6B;AAC/C,OAAO,EAAC,gBAAgB,EAAC,2BAAwB;AACjD,OAAO,EAAC,sBAAsB,EAAC,6CAA0C;AAEzE,OAAO,EAAC,8BAA8B,EAAC,iCAA8B;AAYrE,4DAA4D;AAC5D,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CAAS;IACf,YAAY,CAAe;IAC3B,aAAa,CAAiB;IAC9B,gBAAgB,CAAmB;IACnC,kCAAkC;IAClC,SAAS,CAAY;IACrB,YAAY,CAAyB;IAErC,YAAY,MAAc,EAAE,KAA8B;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC;QAEzE,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CACvC,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,EAAC,CAAC,EACpE,EAAE,CACH,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QAEpE,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE;YACnD,gBAAgB,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC/C,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE;YACrD,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO;SAC7E,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE;YACrC,MAAM,EAAE,UAAU,CAAC;;;;;;;;;CASxB;YAEK,EAAE,EAAE,UAAU,CAAC;;;;;;;;;;;;CAYpB;SACI,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAClG,CAAC;IAED,4DAA4D;IAC5D,OAAO;QACL,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACjD,eAAe,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,MAAc;QAClC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;QAC9C,iEAAiE;IACnE,CAAC;IAED,cAAc,CAAC,OAAsE;QACnF,uDAAuD;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,gCAAgC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM;aAC5B,uBAAuB,EAAE;YAC1B,iDAAiD;aAChD,qBAAqB,CAAC,EAAC,sBAAsB,EAAE,KAAK,EAAC,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC7C,EAAE,EAAE,gCAAgC;YACpC,WAAW;YACX,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxB,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAC,aAAa,EAAE,aAAa,EAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,UAAU,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAIf;QACC,MAAM,EAAC,aAAa,EAAC,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1D,iBAAiB,EAAE,aAAa;SACjC,CAAC,CAAC;QAEH,4CAA4C;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACnD,EAAE,EAAE,oCAAoC;YACxC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO;YAC1C,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,gBAAgB,CAAC,GAAG,EAAE,CAAC;QAEvB,6DAA6D;QAC7D,wCAAwC;QACxC,0CAA0C;QAC1C,kFAAkF;QAClF,MAAM;QACN,2BAA2B;QAE3B,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,KAAK,MAAM,eAAe,IAAI,YAAY,CAAC,gBAAgB,EAAE,CAAC;gBAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC;gBACD,KAAK,GAAG,KAAK,CAAC;gBAEd,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAEpF,MAAM,QAAQ,GAAG;oBACf,aAAa,EAAE,iBAAiB;oBAChC,yDAAyD;iBAC1D,CAAC;gBAEF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;oBAC7C,EAAE,EAAE,+BAA+B;oBACnC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI;oBACvC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACxB,UAAU,EAAE,CAAC;iBACd,CAAC,CAAC;gBACH,eAAe,CAAC,MAAM,CAAC,EAAC,UAAU,EAAE,QAAQ,EAAC,CAAC,CAAC;gBAC/C,UAAU,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAChF,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AAED,6BAA6B;AAC7B,MAAM,YAAY;IAChB,UAAU,CAAa;IACvB,gBAAgB,CAAoB;IAEpC,YAAY,MAAc,EAAE,UAAsB,EAAE,KAAK,GAAG,EAAE;QAC5D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,wCAAwC;QAExC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;QAC1C,0CAA0C;QAE1C,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC9C,+CAA+C;YAC/C,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpD,eAAe,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;CACF;AAED,0CAA0C;AAC1C,MAAM,eAAe;IACnB,KAAK,CAAY;IACjB,UAAU,CAAa;IACvB,OAAO,CAAgB;IAEvB,YAAY,MAAc,EAAE,UAAsB,EAAE,OAAsB;QACxE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,QAAQ,CAAC;QAC9F,MAAM,EAAE,GAAG,8BAA8B,CAAC;YACxC,UAAU;YACV,MAAM;YACN,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE;YACjC,EAAE,EAAE,GAAG,UAAU,CAAC,IAAI,UAAU;YAChC,MAAM,EAAE,EAAE;YACV,EAAE;YACF,OAAO,EAAE,CAAC,UAAU,CAAC;YACrB,UAAU,EAAE;gBACV,iBAAiB,EAAE,KAAK;aACzB;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,OAAgD;QACrD,MAAM,EAAC,UAAU,EAAE,QAAQ,EAAC,GAAG,OAAO,CAAC;QAEvC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE;SACvD,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;SACpD,CAAC,CAAC;QACH,uDAAuD;QACvD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"shader-pass-renderer.js","sourceRoot":"","sources":["../../src/passes/shader-pass-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { PipelineFactory } from "./factories/pipeline-factory.js";
2
+ import type { ShaderFactory } from "./factories/shader-factory.js";
3
+ export type EngineModuleState = {
4
+ defaultPipelineFactory?: PipelineFactory;
5
+ defaultShaderFactory?: ShaderFactory;
6
+ };
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,wCAAqC;AAClE,OAAO,KAAK,EAAC,aAAa,EAAC,sCAAmC;AAE9D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,sBAAsB,CAAC,EAAE,eAAe,CAAC;IACzC,oBAAoB,CAAC,EAAE,aAAa,CAAC;CACtC,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/engine",
3
- "version": "9.2.6",
3
+ "version": "9.3.0-alpha.2",
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.2.0",
44
- "@luma.gl/shadertools": "~9.2.0"
43
+ "@luma.gl/core": "9.2.0-alpha.6",
44
+ "@luma.gl/shadertools": "9.2.0-alpha.6"
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": "9c7a3adc09c7b23800df3f916762445ebc1fa924"
52
+ "gitHead": "7fedf8d8902f58490a4ffca9a873daee3c732f24"
53
53
  }
@@ -64,7 +64,7 @@ export class AnimationLoop {
64
64
 
65
65
  display: any;
66
66
 
67
- needsRedraw: string | false = 'initialized';
67
+ private _needsRedraw: string | false = 'initialized';
68
68
 
69
69
  _initialized: boolean = false;
70
70
  _running: boolean = false;
@@ -120,10 +120,17 @@ export class AnimationLoop {
120
120
 
121
121
  /** Flags this animation loop as needing redraw */
122
122
  setNeedsRedraw(reason: string): this {
123
- this.needsRedraw = this.needsRedraw || reason;
123
+ this._needsRedraw = this._needsRedraw || reason;
124
124
  return this;
125
125
  }
126
126
 
127
+ /** Query redraw status. Clears the flag. */
128
+ needsRedraw(): false | string {
129
+ const reason = this._needsRedraw;
130
+ this._needsRedraw = false;
131
+ return reason;
132
+ }
133
+
127
134
  setProps(props: MutableAnimationLoopProps): this {
128
135
  if ('autoResizeViewport' in props) {
129
136
  this.props.autoResizeViewport = props.autoResizeViewport || false;
@@ -333,7 +340,7 @@ export class AnimationLoop {
333
340
  }
334
341
 
335
342
  _clearNeedsRedraw(): void {
336
- this.needsRedraw = false;
343
+ this._needsRedraw = false;
337
344
  }
338
345
 
339
346
  _setupFrame(): void {
@@ -406,7 +413,7 @@ export class AnimationLoop {
406
413
  this.animationProps.height = height;
407
414
  this.animationProps.aspect = aspect;
408
415
 
409
- this.animationProps.needsRedraw = this.needsRedraw;
416
+ this.animationProps.needsRedraw = this._needsRedraw;
410
417
 
411
418
  // Update time properties
412
419
  this.animationProps.engineTime = Date.now() - this.animationProps.startTime;
@@ -13,7 +13,7 @@ import {
13
13
  getTypedArrayConstructor
14
14
  } from '@luma.gl/core';
15
15
  import type {ShaderModule, PlatformInfo} from '@luma.gl/shadertools';
16
- import {ShaderAssembler, getShaderLayoutFromWGSL} from '@luma.gl/shadertools';
16
+ import {ShaderAssembler} from '@luma.gl/shadertools';
17
17
  import {TypedArray, isNumericArray} from '@math.gl/types';
18
18
  import {ShaderInputs} from '../shader-inputs';
19
19
  import {PipelineFactory} from '../factories/pipeline-factory';
@@ -133,7 +133,8 @@ export class Computation {
133
133
 
134
134
  // Support WGSL shader layout introspection
135
135
  // TODO - Don't modify props!!
136
- this.props.shaderLayout ||= getShaderLayoutFromWGSL(this.props.source);
136
+ // @ts-expect-error method on WebGPUDevice
137
+ this.props.shaderLayout ||= device.getShaderLayout(this.props.source);
137
138
 
138
139
  // Setup shader assembler
139
140
  const platformInfo = getPlatformInfo(device);
@@ -12,12 +12,15 @@ import {Device, Resource, Buffer, Framebuffer, Texture} from '@luma.gl/core';
12
12
  * @note the two resources can be destroyed by calling `destroy()`
13
13
  */
14
14
  export class Swap<T extends Resource<any>> {
15
+ id: string;
16
+
15
17
  /** The current resource - usually the source for renders or computations */
16
18
  current: T;
17
19
  /** The next resource - usually the target/destination for transforms / computations */
18
20
  next: T;
19
21
 
20
- constructor(props: {current: T; next: T}) {
22
+ constructor(props: {current: T; next: T; id?: string}) {
23
+ this.id = props.id || 'swap';
21
24
  this.current = props.current;
22
25
  this.next = props.next;
23
26
  }
@@ -41,14 +44,17 @@ export class SwapFramebuffers extends Swap<Framebuffer> {
41
44
  constructor(device: Device, props: FramebufferProps) {
42
45
  props = {...props};
43
46
 
47
+ const {width = 1, height = 1} = props;
48
+
44
49
  let colorAttachments = props.colorAttachments?.map(colorAttachment =>
45
50
  typeof colorAttachment !== 'string'
46
51
  ? colorAttachment
47
52
  : device.createTexture({
53
+ id: `${props.id}-texture-0`,
48
54
  format: colorAttachment,
49
55
  usage: Texture.SAMPLE | Texture.RENDER | Texture.COPY_SRC | Texture.COPY_DST,
50
- width: 1,
51
- height: 1
56
+ width,
57
+ height
52
58
  })
53
59
  );
54
60
 
@@ -58,11 +64,11 @@ export class SwapFramebuffers extends Swap<Framebuffer> {
58
64
  typeof colorAttachment !== 'string'
59
65
  ? colorAttachment
60
66
  : device.createTexture({
67
+ id: `${props.id}-texture-1`,
61
68
  format: colorAttachment,
62
- usage:
63
- Texture.TEXTURE | Texture.COPY_SRC | Texture.COPY_DST | Texture.RENDER_ATTACHMENT,
64
- width: 1,
65
- height: 1
69
+ usage: Texture.SAMPLE | Texture.RENDER | Texture.COPY_SRC | Texture.COPY_DST,
70
+ width,
71
+ height
66
72
  })
67
73
  );
68
74