@luma.gl/core 9.2.0-alpha.1 → 9.2.0-alpha.3

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 (165) hide show
  1. package/dist/adapter/canvas-context.d.ts +17 -3
  2. package/dist/adapter/canvas-context.d.ts.map +1 -1
  3. package/dist/adapter/canvas-context.js +48 -2
  4. package/dist/adapter/canvas-context.js.map +1 -1
  5. package/dist/adapter/device.d.ts +56 -11
  6. package/dist/adapter/device.d.ts.map +1 -1
  7. package/dist/adapter/device.js +78 -22
  8. package/dist/adapter/device.js.map +1 -1
  9. package/dist/adapter/luma.js +1 -1
  10. package/dist/adapter/resources/buffer.d.ts +13 -7
  11. package/dist/adapter/resources/buffer.d.ts.map +1 -1
  12. package/dist/adapter/resources/buffer.js +1 -5
  13. package/dist/adapter/resources/buffer.js.map +1 -1
  14. package/dist/adapter/resources/command-encoder.d.ts +0 -1
  15. package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
  16. package/dist/adapter/resources/command-encoder.js.map +1 -1
  17. package/dist/adapter/resources/framebuffer.d.ts +3 -3
  18. package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
  19. package/dist/adapter/resources/pipeline-layout.d.ts +13 -0
  20. package/dist/adapter/resources/pipeline-layout.d.ts.map +1 -0
  21. package/dist/adapter/resources/pipeline-layout.js +21 -0
  22. package/dist/adapter/resources/pipeline-layout.js.map +1 -0
  23. package/dist/adapter/resources/render-pipeline.d.ts +4 -4
  24. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
  25. package/dist/adapter/resources/resource.d.ts +1 -0
  26. package/dist/adapter/resources/resource.d.ts.map +1 -1
  27. package/dist/adapter/resources/resource.js.map +1 -1
  28. package/dist/adapter/resources/texture-view.d.ts +1 -1
  29. package/dist/adapter/resources/texture-view.d.ts.map +1 -1
  30. package/dist/adapter/resources/texture.d.ts +1 -1
  31. package/dist/adapter/resources/texture.d.ts.map +1 -1
  32. package/dist/adapter/resources/vertex-array.js +1 -1
  33. package/dist/adapter/resources/vertex-array.js.map +1 -1
  34. package/dist/adapter/types/attachments.d.ts +3 -3
  35. package/dist/adapter/types/attachments.d.ts.map +1 -1
  36. package/dist/adapter/types/buffer-layout.d.ts +1 -1
  37. package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
  38. package/dist/adapter/types/parameters.d.ts +2 -2
  39. package/dist/adapter/types/parameters.d.ts.map +1 -1
  40. package/dist/adapter/types/shader-layout.d.ts +5 -6
  41. package/dist/adapter/types/shader-layout.d.ts.map +1 -1
  42. package/dist/adapter-utils/get-attribute-from-layouts.d.ts +3 -3
  43. package/dist/adapter-utils/get-attribute-from-layouts.d.ts.map +1 -1
  44. package/dist/adapter-utils/get-attribute-from-layouts.js +2 -2
  45. package/dist/adapter-utils/get-attribute-from-layouts.js.map +1 -1
  46. package/dist/dist.dev.js +417 -267
  47. package/dist/dist.min.js +5 -4
  48. package/dist/index.cjs +416 -266
  49. package/dist/index.cjs.map +4 -4
  50. package/dist/index.d.ts +18 -20
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +8 -7
  53. package/dist/index.js.map +1 -1
  54. package/dist/portable/uniform-block.d.ts +1 -1
  55. package/dist/portable/uniform-block.d.ts.map +1 -1
  56. package/dist/portable/uniform-buffer-layout.d.ts +2 -2
  57. package/dist/portable/uniform-buffer-layout.d.ts.map +1 -1
  58. package/dist/portable/uniform-buffer-layout.js +2 -2
  59. package/dist/portable/uniform-buffer-layout.js.map +1 -1
  60. package/dist/portable/uniform-store.d.ts +1 -1
  61. package/dist/portable/uniform-store.d.ts.map +1 -1
  62. package/dist/shadertypes/{data-types.d.ts → data-types/data-types.d.ts} +4 -0
  63. package/dist/shadertypes/data-types/data-types.d.ts.map +1 -0
  64. package/dist/shadertypes/data-types/data-types.js.map +1 -0
  65. package/dist/shadertypes/{utils → data-types}/decode-data-types.d.ts +4 -4
  66. package/dist/shadertypes/data-types/decode-data-types.d.ts.map +1 -0
  67. package/dist/shadertypes/data-types/decode-data-types.js +74 -0
  68. package/dist/shadertypes/data-types/decode-data-types.js.map +1 -0
  69. package/dist/shadertypes/{utils → data-types}/decode-shader-types.d.ts +2 -2
  70. package/dist/shadertypes/data-types/decode-shader-types.d.ts.map +1 -0
  71. package/dist/shadertypes/data-types/decode-shader-types.js.map +1 -0
  72. package/dist/shadertypes/data-types/shader-types.d.ts.map +1 -0
  73. package/dist/shadertypes/data-types/shader-types.js.map +1 -0
  74. package/dist/shadertypes/textures/pixel-utils.d.ts +112 -0
  75. package/dist/shadertypes/textures/pixel-utils.d.ts.map +1 -0
  76. package/dist/shadertypes/textures/pixel-utils.js +193 -0
  77. package/dist/shadertypes/textures/pixel-utils.js.map +1 -0
  78. package/dist/shadertypes/textures/texture-format-decoder.d.ts +18 -0
  79. package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +1 -0
  80. package/dist/shadertypes/{utils/decode-texture-format.js → textures/texture-format-decoder.js} +48 -35
  81. package/dist/shadertypes/textures/texture-format-decoder.js.map +1 -0
  82. package/dist/shadertypes/textures/texture-format-generics.d.ts +33 -0
  83. package/dist/shadertypes/textures/texture-format-generics.d.ts.map +1 -0
  84. package/dist/shadertypes/{texture-formats.js → textures/texture-format-generics.js} +1 -1
  85. package/dist/shadertypes/textures/texture-format-generics.js.map +1 -0
  86. package/dist/shadertypes/{utils → textures}/texture-format-table.d.ts +2 -1
  87. package/dist/shadertypes/textures/texture-format-table.d.ts.map +1 -0
  88. package/dist/shadertypes/{utils → textures}/texture-format-table.js +41 -42
  89. package/dist/shadertypes/textures/texture-format-table.js.map +1 -0
  90. package/dist/shadertypes/textures/texture-formats.d.ts +90 -0
  91. package/dist/shadertypes/textures/texture-formats.d.ts.map +1 -0
  92. package/dist/shadertypes/textures/texture-formats.js +58 -0
  93. package/dist/shadertypes/textures/texture-formats.js.map +1 -0
  94. package/dist/shadertypes/{utils → vertex-arrays}/decode-vertex-format.d.ts +2 -2
  95. package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts.map +1 -0
  96. package/dist/shadertypes/{utils → vertex-arrays}/decode-vertex-format.js +4 -4
  97. package/dist/shadertypes/vertex-arrays/decode-vertex-format.js.map +1 -0
  98. package/dist/shadertypes/{vertex-formats.d.ts → vertex-arrays/vertex-formats.d.ts} +5 -3
  99. package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts.map +1 -0
  100. package/dist/shadertypes/vertex-arrays/vertex-formats.js.map +1 -0
  101. package/package.json +2 -2
  102. package/src/adapter/canvas-context.ts +60 -5
  103. package/src/adapter/device.ts +132 -47
  104. package/src/adapter/resources/buffer.ts +30 -14
  105. package/src/adapter/resources/command-encoder.ts +0 -2
  106. package/src/adapter/resources/framebuffer.ts +5 -5
  107. package/src/adapter/resources/pipeline-layout.ts +30 -0
  108. package/src/adapter/resources/render-pipeline.ts +6 -6
  109. package/src/adapter/resources/resource.ts +1 -0
  110. package/src/adapter/resources/texture-view.ts +1 -1
  111. package/src/adapter/resources/texture.ts +1 -1
  112. package/src/adapter/resources/vertex-array.ts +1 -1
  113. package/src/adapter/types/attachments.ts +5 -5
  114. package/src/adapter/types/buffer-layout.ts +1 -1
  115. package/src/adapter/types/parameters.ts +2 -2
  116. package/src/adapter/types/shader-layout.ts +8 -5
  117. package/src/adapter-utils/get-attribute-from-layouts.ts +5 -5
  118. package/src/index.ts +60 -36
  119. package/src/portable/uniform-block.ts +1 -1
  120. package/src/portable/uniform-buffer-layout.ts +4 -4
  121. package/src/portable/uniform-store.ts +1 -1
  122. package/src/shadertypes/data-types/data-types.ts +96 -0
  123. package/src/shadertypes/data-types/decode-data-types.ts +91 -0
  124. package/src/shadertypes/{utils → data-types}/decode-shader-types.ts +2 -2
  125. package/src/shadertypes/textures/pixel-utils.ts +239 -0
  126. package/src/shadertypes/{utils/decode-texture-format.ts → textures/texture-format-decoder.ts} +63 -47
  127. package/src/shadertypes/textures/texture-format-generics.ts +190 -0
  128. package/src/shadertypes/{utils → textures}/texture-format-table.ts +62 -52
  129. package/src/shadertypes/{texture-formats.ts → textures/texture-formats.ts} +229 -147
  130. package/src/shadertypes/{utils → vertex-arrays}/decode-vertex-format.ts +6 -10
  131. package/src/shadertypes/{vertex-formats.ts → vertex-arrays/vertex-formats.ts} +20 -6
  132. package/dist/adapter-utils/buffer-layout-helper.d.ts +0 -11
  133. package/dist/adapter-utils/buffer-layout-helper.d.ts.map +0 -1
  134. package/dist/adapter-utils/buffer-layout-helper.js +0 -33
  135. package/dist/adapter-utils/buffer-layout-helper.js.map +0 -1
  136. package/dist/shadertypes/data-types.d.ts.map +0 -1
  137. package/dist/shadertypes/data-types.js.map +0 -1
  138. package/dist/shadertypes/shader-types.d.ts.map +0 -1
  139. package/dist/shadertypes/shader-types.js.map +0 -1
  140. package/dist/shadertypes/texture-formats.d.ts +0 -74
  141. package/dist/shadertypes/texture-formats.d.ts.map +0 -1
  142. package/dist/shadertypes/texture-formats.js.map +0 -1
  143. package/dist/shadertypes/utils/decode-data-types.d.ts.map +0 -1
  144. package/dist/shadertypes/utils/decode-data-types.js +0 -114
  145. package/dist/shadertypes/utils/decode-data-types.js.map +0 -1
  146. package/dist/shadertypes/utils/decode-shader-types.d.ts.map +0 -1
  147. package/dist/shadertypes/utils/decode-shader-types.js.map +0 -1
  148. package/dist/shadertypes/utils/decode-texture-format.d.ts +0 -15
  149. package/dist/shadertypes/utils/decode-texture-format.d.ts.map +0 -1
  150. package/dist/shadertypes/utils/decode-texture-format.js.map +0 -1
  151. package/dist/shadertypes/utils/decode-vertex-format.d.ts.map +0 -1
  152. package/dist/shadertypes/utils/decode-vertex-format.js.map +0 -1
  153. package/dist/shadertypes/utils/texture-format-table.d.ts.map +0 -1
  154. package/dist/shadertypes/utils/texture-format-table.js.map +0 -1
  155. package/dist/shadertypes/vertex-formats.d.ts.map +0 -1
  156. package/dist/shadertypes/vertex-formats.js.map +0 -1
  157. package/src/adapter-utils/buffer-layout-helper.ts +0 -41
  158. package/src/shadertypes/data-types.ts +0 -42
  159. package/src/shadertypes/utils/decode-data-types.ts +0 -131
  160. /package/dist/shadertypes/{data-types.js → data-types/data-types.js} +0 -0
  161. /package/dist/shadertypes/{utils → data-types}/decode-shader-types.js +0 -0
  162. /package/dist/shadertypes/{shader-types.d.ts → data-types/shader-types.d.ts} +0 -0
  163. /package/dist/shadertypes/{shader-types.js → data-types/shader-types.js} +0 -0
  164. /package/dist/shadertypes/{vertex-formats.js → vertex-arrays/vertex-formats.js} +0 -0
  165. /package/src/shadertypes/{shader-types.ts → data-types/shader-types.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  import type { Device } from "./device.js";
2
2
  import type { Framebuffer } from "./resources/framebuffer.js";
3
- import type { DepthStencilTextureFormat } from "../shadertypes/texture-formats.js";
3
+ import type { TextureFormatDepthStencil } from "../shadertypes/textures/texture-formats.js";
4
4
  /** Properties for a CanvasContext */
5
5
  export type CanvasContextProps = {
6
6
  /** Identifier, for debugging */
@@ -17,12 +17,14 @@ export type CanvasContextProps = {
17
17
  visible?: boolean;
18
18
  /** Whether to size the drawing buffer to the pixel size during auto resize */
19
19
  useDevicePixels?: boolean;
20
- /** Whether to track window resizes */
20
+ /** Whether to track window resizes. */
21
21
  autoResize?: boolean;
22
22
  /** @see https://developer.mozilla.org/en-US/docs/Web/API/GPUCanvasContext/configure#alphamode */
23
23
  alphaMode?: 'opaque' | 'premultiplied';
24
24
  /** @see https://developer.mozilla.org/en-US/docs/Web/API/GPUCanvasContext/configure#colorspace */
25
25
  colorSpace?: 'srgb';
26
+ /** Whether to track position changes. Calls this.device.onPositionChange */
27
+ trackPosition?: boolean;
26
28
  };
27
29
  /**
28
30
  * Manages a canvas. Supports both HTML or offscreen canvas
@@ -71,12 +73,15 @@ export declare abstract class CanvasContext {
71
73
  };
72
74
  protected readonly _resizeObserver: ResizeObserver | undefined;
73
75
  protected readonly _intersectionObserver: IntersectionObserver | undefined;
76
+ protected _position: [number, number];
77
+ protected destroyed: boolean;
74
78
  abstract get [Symbol.toStringTag](): string;
75
79
  toString(): string;
76
80
  constructor(props?: CanvasContextProps);
81
+ destroy(): void;
77
82
  /** Returns a framebuffer with properly resized current 'swap chain' textures */
78
83
  abstract getCurrentFramebuffer(options?: {
79
- depthStencilFormat?: DepthStencilTextureFormat | false;
84
+ depthStencilFormat?: TextureFormatDepthStencil | false;
80
85
  }): Framebuffer;
81
86
  /**
82
87
  * Returns the size covered by the canvas in CSS pixels
@@ -84,6 +89,7 @@ export declare abstract class CanvasContext {
84
89
  * @note This is independent of the canvas' internal drawing buffer size (.width, .height).
85
90
  */
86
91
  getCSSSize(): [number, number];
92
+ getPosition(): [number, number];
87
93
  /**
88
94
  * Returns the size covered by the canvas in actual device pixels.
89
95
  * @note This can be different from the 'CSS' size of a canvas due to DPR scaling, and rounding to integer pixels
@@ -143,5 +149,13 @@ export declare abstract class CanvasContext {
143
149
  protected _handleResize(entries: ResizeObserverEntry[]): void;
144
150
  /** Monitor DPR changes */
145
151
  _observeDevicePixelRatio(): void;
152
+ /** Start tracking positions with a timer */
153
+ _trackPosition(intervalMs?: number): void;
154
+ /**
155
+ * Calculated the absolute position of the canvas
156
+ * @note - getBoundingClientRect() is normally cheap but can be expensive
157
+ * if called before browser has finished a reflow. Should not be the case here.
158
+ */
159
+ updatePosition(): void;
146
160
  }
147
161
  //# sourceMappingURL=canvas-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/canvas-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/canvas-context.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,8 @@ export class CanvasContext {
28
28
  container: null,
29
29
  visible: true,
30
30
  alphaMode: 'opaque',
31
- colorSpace: 'srgb'
31
+ colorSpace: 'srgb',
32
+ trackPosition: false
32
33
  };
33
34
  id;
34
35
  props;
@@ -60,6 +61,8 @@ export class CanvasContext {
60
61
  _initializedResolvers = withResolvers();
61
62
  _resizeObserver;
62
63
  _intersectionObserver;
64
+ _position;
65
+ destroyed = false;
63
66
  toString() {
64
67
  return `${this[Symbol.toStringTag]}(${this.id})`;
65
68
  }
@@ -96,7 +99,7 @@ export class CanvasContext {
96
99
  this.id = props.id || 'node-canvas-context';
97
100
  this.type = 'node';
98
101
  }
99
- // Initialize size variables (these will be updated by ResizeObserver)
102
+ // Initialize size variables to some sane values (these will be updated by ResizeObserver)
100
103
  this.cssWidth = this.htmlCanvas?.clientWidth || this.canvas.width;
101
104
  this.cssHeight = this.htmlCanvas?.clientHeight || this.canvas.height;
102
105
  this.devicePixelWidth = this.canvas.width;
@@ -104,6 +107,7 @@ export class CanvasContext {
104
107
  this.drawingBufferWidth = this.canvas.width;
105
108
  this.drawingBufferHeight = this.canvas.height;
106
109
  this.devicePixelRatio = globalThis.devicePixelRatio || 1;
110
+ this._position = [0, 0];
107
111
  if (CanvasContext.isHTMLCanvas(this.canvas)) {
108
112
  // Track visibility changes
109
113
  this._intersectionObserver = new IntersectionObserver(entries => this._handleIntersection(entries));
@@ -120,8 +124,15 @@ export class CanvasContext {
120
124
  // Track device pixel ratio changes.
121
125
  // Defer call to after construction completes to ensure `this.device` is available.
122
126
  setTimeout(() => this._observeDevicePixelRatio(), 0);
127
+ // Track top/left position changes
128
+ if (this.props.trackPosition) {
129
+ this._trackPosition();
130
+ }
123
131
  }
124
132
  }
133
+ destroy() {
134
+ this.destroyed = true;
135
+ }
125
136
  // SIZE METHODS
126
137
  /**
127
138
  * Returns the size covered by the canvas in CSS pixels
@@ -131,6 +142,9 @@ export class CanvasContext {
131
142
  getCSSSize() {
132
143
  return [this.cssWidth, this.cssHeight];
133
144
  }
145
+ getPosition() {
146
+ return this._position;
147
+ }
134
148
  /**
135
149
  * Returns the size covered by the canvas in actual device pixels.
136
150
  * @note This can be different from the 'CSS' size of a canvas due to DPR scaling, and rounding to integer pixels
@@ -260,6 +274,7 @@ export class CanvasContext {
260
274
  // Resolve the initialized promise
261
275
  this._initializedResolvers.resolve();
262
276
  this.isInitialized = true;
277
+ this.updatePosition();
263
278
  // Inform the device
264
279
  this.device.props.onResize(this, { oldPixelSize });
265
280
  }
@@ -267,11 +282,42 @@ export class CanvasContext {
267
282
  _observeDevicePixelRatio() {
268
283
  const oldRatio = this.devicePixelRatio;
269
284
  this.devicePixelRatio = window.devicePixelRatio;
285
+ this.updatePosition();
270
286
  // Inform the device
271
287
  this.device.props.onDevicePixelRatioChange(this, { oldRatio });
272
288
  // Set up a one time query against the current resolution.
273
289
  matchMedia(`(resolution: ${this.devicePixelRatio}dppx)`).addEventListener('change', () => this._observeDevicePixelRatio(), { once: true });
274
290
  }
291
+ /** Start tracking positions with a timer */
292
+ _trackPosition(intervalMs = 100) {
293
+ const intervalId = setInterval(() => {
294
+ if (this.destroyed) {
295
+ clearInterval(intervalId);
296
+ }
297
+ else {
298
+ this.updatePosition();
299
+ }
300
+ }, intervalMs);
301
+ }
302
+ /**
303
+ * Calculated the absolute position of the canvas
304
+ * @note - getBoundingClientRect() is normally cheap but can be expensive
305
+ * if called before browser has finished a reflow. Should not be the case here.
306
+ */
307
+ updatePosition() {
308
+ const newRect = this.htmlCanvas?.getBoundingClientRect();
309
+ if (newRect) {
310
+ // We only track position since we rely on the more precise ResizeObserver for size
311
+ const position = [newRect.left, newRect.top];
312
+ this._position ??= position;
313
+ const positionChanged = position[0] !== this._position[0] || position[1] !== this._position[1];
314
+ if (positionChanged) {
315
+ const oldPosition = this._position;
316
+ this._position = position;
317
+ this.device.props.onPositionChange?.(this, { oldPosition });
318
+ }
319
+ }
320
+ }
275
321
  }
276
322
  // HELPER FUNCTIONS
277
323
  /** Get a container element from a string or DOM element */
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-context.js","sourceRoot":"","sources":["../../src/adapter/canvas-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-context.js","sourceRoot":"","sources":["../../src/adapter/canvas-context.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { StatsManager } from "../utils/stats-manager.js";
2
- import type { TextureFormat, TextureFormatInfo } from "../shadertypes/texture-formats.js";
2
+ import type { VertexFormat, VertexFormatInfo } from "../shadertypes/vertex-arrays/vertex-formats.js";
3
+ import type { TextureFormat, TextureFormatInfo } from "../shadertypes/textures/texture-formats.js";
3
4
  import type { CanvasContext, CanvasContextProps } from "./canvas-context.js";
4
5
  import type { BufferProps } from "./resources/buffer.js";
5
6
  import { Buffer } from "./resources/buffer.js";
@@ -113,7 +114,8 @@ export declare class DeviceFeatures {
113
114
  }
114
115
  /** Device feature names */
115
116
  export type DeviceFeature = WebGPUDeviceFeature | WebGLDeviceFeature | WebGLCompressedTextureFeatures;
116
- export type WebGPUDeviceFeature = 'depth-clip-control' | 'indirect-first-instance' | 'timestamp-query' | 'shader-f16' | 'depth32float-stencil8' | 'rg11b10ufloat-renderable' | 'float32-filterable' | 'bgra8unorm-storage' | 'texture-compression-bc' | 'texture-compression-etc2' | 'texture-compression-astc';
117
+ /** Chrome-specific extensions. Expected to eventually become standard features. */
118
+ export type WebGPUDeviceFeature = 'depth-clip-control' | 'depth32float-stencil8' | 'texture-compression-bc' | 'texture-compression-bc-sliced-3d' | 'texture-compression-etc2' | 'texture-compression-astc' | 'texture-compression-astc-sliced-3d' | 'timestamp-query' | 'indirect-first-instance' | 'shader-f16' | 'rg11b10ufloat-renderable' | 'bgra8unorm-storage' | 'float32-filterable' | 'float32-blendable' | 'clip-distances' | 'dual-source-blending' | 'subgroups';
117
119
  export type WebGLDeviceFeature = 'timer-query-webgl' | 'compilation-status-async-webgl' | 'provoking-vertex-webgl' | 'polygon-mode-webgl' | 'shader-noperspective-interpolation-webgl' | 'shader-conservative-depth-webgl' | 'shader-clip-cull-distance-webgl' | 'float32-renderable-webgl' | 'float16-renderable-webgl' | 'rgb9e5ufloat-renderable-webgl' | 'snorm8-renderable-webgl' | 'norm16-renderable-webgl' | 'snorm16-renderable-webgl' | 'float16-filterable-webgl' | 'texture-filterable-anisotropic-webgl' | 'bgra8unorm-storage' | 'texture-blend-float-webgl';
118
120
  type WebGLCompressedTextureFeatures = 'texture-compression-bc5-webgl' | 'texture-compression-bc7-webgl' | 'texture-compression-etc1-webgl' | 'texture-compression-pvrtc-webgl' | 'texture-compression-atc-webgl';
119
121
  /** Texture format capabilities that have been checked against a specific device */
@@ -142,21 +144,25 @@ export type DeviceProps = {
142
144
  failIfMajorPerformanceCaveat?: boolean;
143
145
  /** WebGL specific: Properties passed through to WebGL2RenderingContext creation: `canvas.getContext('webgl2', props.webgl)` */
144
146
  webgl?: WebGLContextProps;
145
- /** Error handling - uncaught errors */
147
+ /** Error handler. If it returns a probe logger style function, it will be called at the site of the error to optimize console error links. */
146
148
  onError?: (error: Error, context?: unknown) => unknown;
147
- /** Called when the size of a canvas changes */
149
+ /** Called when the size of a CanvasContext's canvas changes */
148
150
  onResize?: (ctx: CanvasContext, info: {
149
151
  oldPixelSize: [number, number];
150
152
  }) => unknown;
151
- /** Called when the visibility of a canvas changes */
153
+ /** Called when the absolute position of a CanvasContext's canvas changes. Must set `CanvasContextProps.trackPosition: true` */
154
+ onPositionChange?: (ctx: CanvasContext, info: {
155
+ oldPosition: [number, number];
156
+ }) => unknown;
157
+ /** Called when the visibility of a CanvasContext's canvas changes */
152
158
  onVisibilityChange?: (ctx: CanvasContext) => unknown;
153
- /** Called when the device pixel ratio of a canvas changes */
159
+ /** Called when the device pixel ratio of a CanvasContext's canvas changes */
154
160
  onDevicePixelRatioChange?: (ctx: CanvasContext, info: {
155
161
  oldRatio: number;
156
162
  }) => unknown;
157
163
  /** Turn on implementation defined checks that slow down execution but help break where errors occur */
158
164
  debug?: boolean;
159
- /** Show shader source in browser? The default is`'error'`, meaning that logs are shown when shader compilation has errors */
165
+ /** Show shader source in browser? The default is `'error'`, meaning that logs are shown when shader compilation has errors */
160
166
  debugShaders?: 'never' | 'errors' | 'warnings' | 'always';
161
167
  /** Renders a small version of updated Framebuffers into the primary canvas context. Can be set in console luma.log.set('debug-framebuffers', true) */
162
168
  debugFramebuffers?: boolean;
@@ -168,6 +174,8 @@ export type DeviceProps = {
168
174
  debugSpectorJS?: boolean;
169
175
  /** WebGL specific - SpectorJS URL. Override if CDN is down or different SpectorJS version is desired. */
170
176
  debugSpectorJSUrl?: string;
177
+ /** adapter.create() returns the existing Device if the provided canvas' WebGL context is already associated with a Device. */
178
+ _reuseDevices?: boolean;
171
179
  /** WebGPU specific - Request a Device with the highest limits supported by platform. On WebGPU devices can be created with minimal limits. */
172
180
  _requestMaxLimits?: boolean;
173
181
  /** Disable specific features */
@@ -185,13 +193,23 @@ export type DeviceProps = {
185
193
  };
186
194
  /** WebGL independent copy of WebGLContextAttributes */
187
195
  type WebGLContextProps = {
196
+ /** indicates if the canvas contains an alpha buffer. */
188
197
  alpha?: boolean;
198
+ /** hints the user agent to reduce the latency by desynchronizing the canvas paint cycle from the event loop */
189
199
  desynchronized?: boolean;
200
+ /** indicates whether or not to perform anti-aliasing. */
190
201
  antialias?: boolean;
202
+ /** indicates that the render target has a stencil buffer of at least `8` bits. */
203
+ stencil?: boolean;
204
+ /** indicates that the drawing buffer has a depth buffer of at least 16 bits. */
191
205
  depth?: boolean;
206
+ /** indicates if a context will be created if the system performance is low or if no hardware GPU is available. */
192
207
  failIfMajorPerformanceCaveat?: boolean;
208
+ /** Selects GPU */
193
209
  powerPreference?: 'default' | 'high-performance' | 'low-power';
210
+ /** page compositor will assume the drawing buffer contains colors with pre-multiplied alpha. */
194
211
  premultipliedAlpha?: boolean;
212
+ /** buffers will not be cleared and will preserve their values until cleared or overwritten by the author. */
195
213
  preserveDrawingBuffer?: boolean;
196
214
  };
197
215
  /**
@@ -209,7 +227,7 @@ export interface DeviceFactory {
209
227
  export declare abstract class Device {
210
228
  static defaultProps: Required<DeviceProps>;
211
229
  get [Symbol.toStringTag](): string;
212
- constructor(props: DeviceProps);
230
+ toString(): string;
213
231
  /** id of this device, primarily for debugging */
214
232
  readonly id: string;
215
233
  /** type of this device */
@@ -226,11 +244,12 @@ export declare abstract class Device {
226
244
  readonly statsManager: StatsManager;
227
245
  /** An abstract timestamp used for change tracking */
228
246
  timestamp: number;
247
+ /** True if this device has been reused during device creation (app has multiple references) */
248
+ _reused: boolean;
229
249
  /** Used by other luma.gl modules to store data on the device */
230
250
  _lumaData: {
231
251
  [key: string]: unknown;
232
252
  };
233
- abstract destroy(): void;
234
253
  /** Information about the device (vendor, versions etc) */
235
254
  abstract info: DeviceInfo;
236
255
  /** Optional capability discovery */
@@ -242,10 +261,16 @@ export declare abstract class Device {
242
261
  /** Default depth format used on this system */
243
262
  abstract preferredDepthFormat: 'depth16' | 'depth24plus' | 'depth32float';
244
263
  protected _textureCaps: Partial<Record<TextureFormat, DeviceTextureFormatCapabilities>>;
264
+ constructor(props: DeviceProps);
265
+ abstract destroy(): void;
266
+ getVertexFormatInfo(format: VertexFormat): VertexFormatInfo;
267
+ isVertexFormatSupported(format: VertexFormat): boolean;
245
268
  /** Returns information about a texture format, such as data type, channels, bits per channel, compression etc */
246
269
  getTextureFormatInfo(format: TextureFormat): TextureFormatInfo;
247
270
  /** Determines what operations are supported on a texture format on this particular device (checks against supported device features) */
248
271
  getTextureFormatCapabilities(format: TextureFormat): DeviceTextureFormatCapabilities;
272
+ /** Return the implementation specific alignment for a texture format. 1 on WebGL, 256 on WebGPU */
273
+ abstract getTextureByteAlignment(): number;
249
274
  /** Calculates the number of mip levels for a texture of width, height and in case of 3d textures only, depth */
250
275
  getMipLevelCount(width: number, height: number, depth3d?: number): number;
251
276
  /** Check if data is an external image */
@@ -281,8 +306,26 @@ export declare abstract class Device {
281
306
  loseDevice(): boolean;
282
307
  /** A monotonic counter for tracking buffer and texture updates */
283
308
  incrementTimestamp(): number;
284
- /** Report error (normally called for unhandled device errors) */
285
- reportError(error: Error, context?: unknown): void;
309
+ /**
310
+ * Reports Device errors in a way that optimizes for developer experience / debugging.
311
+ * - Logs so that the console error links directly to the source code that generated the error.
312
+ * - Includes the object that reported the error in the log message, even if the error is asynchronous.
313
+ *
314
+ * Conventions when calling reportError():
315
+ * - Always call the returned function - to ensure error is logged, at the error site
316
+ * - Follow with a call to device.debug() - to ensure that the debugger breaks at the error site
317
+ *
318
+ * @param error - the error to report. If needed, just create a new Error object with the appropriate message.
319
+ * @param context - pass `this` as context, otherwise it may not be available in the debugger for async errors.
320
+ * @returns the logger function returned by device.props.onError() so that it can be called from the error site.
321
+ *
322
+ * @example
323
+ * device.reportError(new Error(...), this)();
324
+ * device.debug();
325
+ */
326
+ reportError(error: Error, context: unknown, ...args: unknown[]): () => unknown;
327
+ /** Break in the debugger - if device.props.debug is true */
328
+ debug(): void;
286
329
  /** Default / primary canvas context. Can be null as WebGPU devices can be created without a CanvasContext */
287
330
  abstract canvasContext: CanvasContext | null;
288
331
  /** Returns the default / primary canvas context. Throws an error if no canvas context is available (a WebGPU compute device) */
@@ -361,6 +404,8 @@ export declare abstract class Device {
361
404
  }): void;
362
405
  /** @deprecated - will be removed - should use for debugging only */
363
406
  resetWebGL(): void;
407
+ /** Helper to get the canvas context props */
408
+ static _getCanvasContextProps(props: DeviceProps): CanvasContextProps | undefined;
364
409
  protected _getDeviceTextureFormatCapabilities(format: TextureFormat): DeviceTextureFormatCapabilities;
365
410
  /** Subclasses use this to support .createBuffer() overloads */
366
411
  protected _normalizeBufferProps(props: BufferProps | ArrayBuffer | ArrayBufferView): BufferProps;
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/adapter/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/adapter/device.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@ import { lumaStats } from "../utils/stats-manager.js";
5
5
  import { log } from "../utils/log.js";
6
6
  import { uid } from "../utils/uid.js";
7
7
  import { Buffer } from "./resources/buffer.js";
8
- import { isTextureFormatCompressed, getTextureFormatInfo, getTextureFormatCapabilities } from "../shadertypes/utils/decode-texture-format.js";
8
+ import { getVertexFormatInfo } from "../shadertypes/vertex-arrays/decode-vertex-format.js";
9
+ import { textureFormatDecoder } from "../shadertypes/textures/texture-format-decoder.js";
9
10
  import { isExternalImage, getExternalImageSize } from "../image-utils/image-types.js";
10
11
  /** Limits for a device (max supported sizes of resources, max number of bindings etc) */
11
12
  export class DeviceLimits {
@@ -37,11 +38,15 @@ export class Device {
37
38
  // WebGL specific
38
39
  webgl: {},
39
40
  // Callbacks
40
- onError: (error, context) => log.error(error.message, context)(),
41
+ // eslint-disable-next-line handle-callback-err
42
+ onError: (error, context) => { },
41
43
  onResize: (context, info) => {
42
44
  const [width, height] = context.getDevicePixelSize();
43
- const [prevWidth, prevHeight] = info.oldPixelSize;
44
- log.log(1, `${context} Resized ${prevWidth}x${prevHeight} => ${width}x${height}px`)();
45
+ log.log(1, `${context} resized => ${width}x${height}px`)();
46
+ },
47
+ onPositionChange: (context, info) => {
48
+ const [left, top] = context.getPosition();
49
+ log.log(1, `${context} repositioned => ${left},${top}`)();
45
50
  },
46
51
  onVisibilityChange: (context) => log.log(1, `${context} Visibility changed ${context.isVisible}`)(),
47
52
  onDevicePixelRatioChange: (context, info) => log.log(1, `${context} DPR changed ${info.oldRatio} => ${context.devicePixelRatio}`)(),
@@ -54,6 +59,7 @@ export class Device {
54
59
  debugSpectorJS: undefined, // Note: log setting is queried by the spector.js code
55
60
  debugSpectorJSUrl: undefined,
56
61
  // Experimental
62
+ _reuseDevices: false,
57
63
  _requestMaxLimits: true,
58
64
  _cacheShaders: false,
59
65
  _cachePipelines: false,
@@ -69,9 +75,8 @@ export class Device {
69
75
  get [Symbol.toStringTag]() {
70
76
  return 'Device';
71
77
  }
72
- constructor(props) {
73
- this.props = { ...Device.defaultProps, ...props };
74
- this.id = this.props.id || uid(this[Symbol.toStringTag].toLowerCase());
78
+ toString() {
79
+ return `Device(${this.id})`;
75
80
  }
76
81
  /** id of this device, primarily for debugging */
77
82
  id;
@@ -83,12 +88,24 @@ export class Device {
83
88
  statsManager = lumaStats;
84
89
  /** An abstract timestamp used for change tracking */
85
90
  timestamp = 0;
91
+ /** True if this device has been reused during device creation (app has multiple references) */
92
+ _reused = false;
86
93
  /** Used by other luma.gl modules to store data on the device */
87
94
  _lumaData = {};
88
95
  _textureCaps = {};
96
+ constructor(props) {
97
+ this.props = { ...Device.defaultProps, ...props };
98
+ this.id = this.props.id || uid(this[Symbol.toStringTag].toLowerCase());
99
+ }
100
+ getVertexFormatInfo(format) {
101
+ return getVertexFormatInfo(format);
102
+ }
103
+ isVertexFormatSupported(format) {
104
+ return true;
105
+ }
89
106
  /** Returns information about a texture format, such as data type, channels, bits per channel, compression etc */
90
107
  getTextureFormatInfo(format) {
91
- return getTextureFormatInfo(format);
108
+ return textureFormatDecoder.getInfo(format);
92
109
  }
93
110
  /** Determines what operations are supported on a texture format on this particular device (checks against supported device features) */
94
111
  getTextureFormatCapabilities(format) {
@@ -127,7 +144,7 @@ export class Device {
127
144
  }
128
145
  /** Check if a specific texture format is GPU compressed */
129
146
  isTextureFormatCompressed(format) {
130
- return isTextureFormatCompressed(format);
147
+ return textureFormatDecoder.isCompressed(format);
131
148
  }
132
149
  // DEBUG METHODS
133
150
  pushDebugGroup(groupLabel) {
@@ -151,13 +168,45 @@ export class Device {
151
168
  incrementTimestamp() {
152
169
  return this.timestamp++;
153
170
  }
154
- /** Report error (normally called for unhandled device errors) */
155
- reportError(error, context) {
171
+ /**
172
+ * Reports Device errors in a way that optimizes for developer experience / debugging.
173
+ * - Logs so that the console error links directly to the source code that generated the error.
174
+ * - Includes the object that reported the error in the log message, even if the error is asynchronous.
175
+ *
176
+ * Conventions when calling reportError():
177
+ * - Always call the returned function - to ensure error is logged, at the error site
178
+ * - Follow with a call to device.debug() - to ensure that the debugger breaks at the error site
179
+ *
180
+ * @param error - the error to report. If needed, just create a new Error object with the appropriate message.
181
+ * @param context - pass `this` as context, otherwise it may not be available in the debugger for async errors.
182
+ * @returns the logger function returned by device.props.onError() so that it can be called from the error site.
183
+ *
184
+ * @example
185
+ * device.reportError(new Error(...), this)();
186
+ * device.debug();
187
+ */
188
+ reportError(error, context, ...args) {
189
+ // Call the error handler
190
+ const isHandled = this.props.onError(error, context);
191
+ if (!isHandled) {
192
+ // Note: Returns a function that must be called: `device.reportError(...)()`
193
+ return log.error(error.message, context, ...args);
194
+ }
195
+ return () => { };
196
+ }
197
+ /** Break in the debugger - if device.props.debug is true */
198
+ debug() {
156
199
  if (this.props.debug) {
157
200
  // @ts-ignore
158
201
  debugger; // eslint-disable-line
159
202
  }
160
- this.props.onError(error, context);
203
+ else {
204
+ // TODO(ibgreen): Does not appear to be printed in the console
205
+ const message = `\
206
+ 'Type luma.log.set({debug: true}) in console to enable debug breakpoints',
207
+ or create a device with the 'debug: true' prop.`;
208
+ log.once(0, message)();
209
+ }
161
210
  }
162
211
  /** Returns the default / primary canvas context. Throws an error if no canvas context is available (a WebGPU compute device) */
163
212
  getDefaultCanvasContext() {
@@ -210,8 +259,12 @@ export class Device {
210
259
  throw new Error('not implemented');
211
260
  }
212
261
  // IMPLEMENTATION
262
+ /** Helper to get the canvas context props */
263
+ static _getCanvasContextProps(props) {
264
+ return props.createCanvasContext === true ? {} : props.createCanvasContext;
265
+ }
213
266
  _getDeviceTextureFormatCapabilities(format) {
214
- const genericCapabilities = getTextureFormatCapabilities(format);
267
+ const genericCapabilities = textureFormatDecoder.getCapabilities(format);
215
268
  // Check standard features
216
269
  const checkFeature = (feature) => (typeof feature === 'string' ? this.features.has(feature) : feature) ?? true;
217
270
  const supported = checkFeature(genericCapabilities.create);
@@ -229,19 +282,22 @@ export class Device {
229
282
  if (props instanceof ArrayBuffer || ArrayBuffer.isView(props)) {
230
283
  props = { data: props };
231
284
  }
232
- // TODO - fragile, as this is done before we merge with default options
285
+ // TODO(ibgreen) - fragile, as this is done before we merge with default options
233
286
  // inside the Buffer constructor
234
287
  const newProps = { ...props };
235
288
  // Deduce indexType
236
- if ((props.usage || 0) & Buffer.INDEX && !props.indexType) {
237
- if (props.data instanceof Uint32Array) {
238
- newProps.indexType = 'uint32';
239
- }
240
- else if (props.data instanceof Uint16Array) {
241
- newProps.indexType = 'uint16';
289
+ const usage = props.usage || 0;
290
+ if (usage & Buffer.INDEX) {
291
+ if (!props.indexType) {
292
+ if (props.data instanceof Uint32Array) {
293
+ newProps.indexType = 'uint32';
294
+ }
295
+ else if (props.data instanceof Uint16Array) {
296
+ newProps.indexType = 'uint16';
297
+ }
242
298
  }
243
- else {
244
- log.warn('indices buffer content must be of type uint16 or uint32')();
299
+ if (!newProps.indexType) {
300
+ throw new Error('indices buffer content must be of type uint16 or uint32');
245
301
  }
246
302
  }
247
303
  return newProps;