@luma.gl/core 9.1.0-alpha.9 → 9.1.0-beta.11

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 (196) hide show
  1. package/dist/adapter/adapter.d.ts +1 -1
  2. package/dist/adapter/adapter.d.ts.map +1 -1
  3. package/dist/adapter/adapter.js +2 -1
  4. package/dist/adapter/adapter.js.map +1 -0
  5. package/dist/adapter/canvas-context.d.ts +13 -19
  6. package/dist/adapter/canvas-context.d.ts.map +1 -1
  7. package/dist/adapter/canvas-context.js +33 -52
  8. package/dist/adapter/canvas-context.js.map +1 -0
  9. package/dist/adapter/device.d.ts +86 -36
  10. package/dist/adapter/device.d.ts.map +1 -1
  11. package/dist/adapter/device.js +73 -43
  12. package/dist/adapter/device.js.map +1 -0
  13. package/dist/adapter/luma.d.ts +17 -5
  14. package/dist/adapter/luma.d.ts.map +1 -1
  15. package/dist/adapter/luma.js +34 -6
  16. package/dist/adapter/luma.js.map +1 -0
  17. package/dist/adapter/resources/buffer.d.ts +8 -1
  18. package/dist/adapter/resources/buffer.d.ts.map +1 -1
  19. package/dist/adapter/resources/buffer.js +12 -2
  20. package/dist/adapter/resources/buffer.js.map +1 -0
  21. package/dist/adapter/resources/command-buffer.js +1 -0
  22. package/dist/adapter/resources/command-buffer.js.map +1 -0
  23. package/dist/adapter/resources/command-encoder.d.ts +18 -26
  24. package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
  25. package/dist/adapter/resources/command-encoder.js +1 -0
  26. package/dist/adapter/resources/command-encoder.js.map +1 -0
  27. package/dist/adapter/resources/compute-pass.js +1 -0
  28. package/dist/adapter/resources/compute-pass.js.map +1 -0
  29. package/dist/adapter/resources/compute-pipeline.js +1 -0
  30. package/dist/adapter/resources/compute-pipeline.js.map +1 -0
  31. package/dist/adapter/resources/external-texture.js +1 -0
  32. package/dist/adapter/resources/external-texture.js.map +1 -0
  33. package/dist/adapter/resources/framebuffer.d.ts +12 -1
  34. package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
  35. package/dist/adapter/resources/framebuffer.js +26 -11
  36. package/dist/adapter/resources/framebuffer.js.map +1 -0
  37. package/dist/adapter/resources/query-set.js +1 -0
  38. package/dist/adapter/resources/query-set.js.map +1 -0
  39. package/dist/adapter/resources/render-pass.d.ts +16 -7
  40. package/dist/adapter/resources/render-pass.d.ts.map +1 -1
  41. package/dist/adapter/resources/render-pass.js +29 -3
  42. package/dist/adapter/resources/render-pass.js.map +1 -0
  43. package/dist/adapter/resources/render-pipeline.js +1 -0
  44. package/dist/adapter/resources/render-pipeline.js.map +1 -0
  45. package/dist/adapter/resources/resource.d.ts +1 -1
  46. package/dist/adapter/resources/resource.d.ts.map +1 -1
  47. package/dist/adapter/resources/resource.js +4 -3
  48. package/dist/adapter/resources/resource.js.map +1 -0
  49. package/dist/adapter/resources/sampler.d.ts +2 -1
  50. package/dist/adapter/resources/sampler.d.ts.map +1 -1
  51. package/dist/adapter/resources/sampler.js +8 -1
  52. package/dist/adapter/resources/sampler.js.map +1 -0
  53. package/dist/adapter/resources/shader.d.ts +4 -3
  54. package/dist/adapter/resources/shader.d.ts.map +1 -1
  55. package/dist/adapter/resources/shader.js +6 -3
  56. package/dist/adapter/resources/shader.js.map +1 -0
  57. package/dist/adapter/resources/texture-view.js +1 -0
  58. package/dist/adapter/resources/texture-view.js.map +1 -0
  59. package/dist/adapter/resources/texture.d.ts +81 -19
  60. package/dist/adapter/resources/texture.d.ts.map +1 -1
  61. package/dist/adapter/resources/texture.js +109 -34
  62. package/dist/adapter/resources/texture.js.map +1 -0
  63. package/dist/adapter/resources/transform-feedback.js +1 -0
  64. package/dist/adapter/resources/transform-feedback.js.map +1 -0
  65. package/dist/adapter/resources/vertex-array.js +1 -0
  66. package/dist/adapter/resources/vertex-array.js.map +1 -0
  67. package/dist/adapter/types/attachments.d.ts +0 -3
  68. package/dist/adapter/types/attachments.d.ts.map +1 -1
  69. package/dist/adapter/types/attachments.js +1 -0
  70. package/dist/adapter/types/attachments.js.map +1 -0
  71. package/dist/adapter/types/buffer-layout.js +1 -0
  72. package/dist/adapter/types/buffer-layout.js.map +1 -0
  73. package/dist/adapter/types/compiler-message.js +1 -0
  74. package/dist/adapter/types/compiler-message.js.map +1 -0
  75. package/dist/adapter/types/parameters.d.ts +4 -3
  76. package/dist/adapter/types/parameters.d.ts.map +1 -1
  77. package/dist/adapter/types/parameters.js +1 -0
  78. package/dist/adapter/types/parameters.js.map +1 -0
  79. package/dist/adapter/types/shader-layout.d.ts +28 -1
  80. package/dist/adapter/types/shader-layout.d.ts.map +1 -1
  81. package/dist/adapter/types/shader-layout.js +1 -0
  82. package/dist/adapter/types/shader-layout.js.map +1 -0
  83. package/dist/adapter/types/uniforms.d.ts +2 -2
  84. package/dist/adapter/types/uniforms.d.ts.map +1 -1
  85. package/dist/adapter/types/uniforms.js +1 -0
  86. package/dist/adapter/types/uniforms.js.map +1 -0
  87. package/dist/adapter-utils/buffer-layout-helper.d.ts +11 -0
  88. package/dist/adapter-utils/buffer-layout-helper.d.ts.map +1 -0
  89. package/dist/adapter-utils/buffer-layout-helper.js +33 -0
  90. package/dist/adapter-utils/buffer-layout-helper.js.map +1 -0
  91. package/dist/adapter-utils/format-compiler-log.js +3 -1
  92. package/dist/adapter-utils/format-compiler-log.js.map +1 -0
  93. package/dist/adapter-utils/get-attribute-from-layouts.js +1 -0
  94. package/dist/adapter-utils/get-attribute-from-layouts.js.map +1 -0
  95. package/dist/adapter-utils/is-uniform-value.js +1 -0
  96. package/dist/adapter-utils/is-uniform-value.js.map +1 -0
  97. package/dist/dist.dev.js +640 -268
  98. package/dist/dist.min.js +7 -7
  99. package/dist/gpu-type-utils/decode-attribute-type.js +1 -0
  100. package/dist/gpu-type-utils/decode-attribute-type.js.map +1 -0
  101. package/dist/gpu-type-utils/decode-data-type.js +1 -0
  102. package/dist/gpu-type-utils/decode-data-type.js.map +1 -0
  103. package/dist/gpu-type-utils/decode-shader-types.js +1 -0
  104. package/dist/gpu-type-utils/decode-shader-types.js.map +1 -0
  105. package/dist/gpu-type-utils/decode-texture-format.d.ts +5 -37
  106. package/dist/gpu-type-utils/decode-texture-format.d.ts.map +1 -1
  107. package/dist/gpu-type-utils/decode-texture-format.js +86 -76
  108. package/dist/gpu-type-utils/decode-texture-format.js.map +1 -0
  109. package/dist/gpu-type-utils/decode-vertex-format.js +1 -0
  110. package/dist/gpu-type-utils/decode-vertex-format.js.map +1 -0
  111. package/dist/gpu-type-utils/shader-types.js +1 -0
  112. package/dist/gpu-type-utils/shader-types.js.map +1 -0
  113. package/dist/gpu-type-utils/texture-features.d.ts +6 -0
  114. package/dist/gpu-type-utils/texture-features.d.ts.map +1 -0
  115. package/dist/gpu-type-utils/texture-features.js +5 -0
  116. package/dist/gpu-type-utils/texture-features.js.map +1 -0
  117. package/dist/gpu-type-utils/texture-format-capabilities.d.ts +21 -0
  118. package/dist/gpu-type-utils/texture-format-capabilities.d.ts.map +1 -0
  119. package/dist/gpu-type-utils/texture-format-capabilities.js +27 -0
  120. package/dist/gpu-type-utils/texture-format-capabilities.js.map +1 -0
  121. package/dist/gpu-type-utils/texture-format-info.d.ts +38 -0
  122. package/dist/gpu-type-utils/texture-format-info.d.ts.map +1 -0
  123. package/dist/gpu-type-utils/texture-format-info.js +5 -0
  124. package/dist/gpu-type-utils/texture-format-info.js.map +1 -0
  125. package/dist/gpu-type-utils/texture-format-table.d.ts +28 -0
  126. package/dist/gpu-type-utils/texture-format-table.d.ts.map +1 -0
  127. package/dist/gpu-type-utils/texture-format-table.js +174 -0
  128. package/dist/gpu-type-utils/texture-format-table.js.map +1 -0
  129. package/dist/gpu-type-utils/texture-formats.d.ts +3 -2
  130. package/dist/gpu-type-utils/texture-formats.d.ts.map +1 -1
  131. package/dist/gpu-type-utils/texture-formats.js +1 -0
  132. package/dist/gpu-type-utils/texture-formats.js.map +1 -0
  133. package/dist/gpu-type-utils/vertex-format-from-attribute.d.ts.map +1 -1
  134. package/dist/gpu-type-utils/vertex-format-from-attribute.js +8 -0
  135. package/dist/gpu-type-utils/vertex-format-from-attribute.js.map +1 -0
  136. package/dist/gpu-type-utils/vertex-formats.js +1 -0
  137. package/dist/gpu-type-utils/vertex-formats.js.map +1 -0
  138. package/dist/gpu-type-utils/wgsl-utils.js +1 -0
  139. package/dist/gpu-type-utils/wgsl-utils.js.map +1 -0
  140. package/dist/index.cjs +614 -226
  141. package/dist/index.cjs.map +4 -4
  142. package/dist/index.d.ts +11 -5
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +8 -4
  145. package/dist/index.js.map +1 -0
  146. package/dist/portable/uniform-block.js +2 -1
  147. package/dist/portable/uniform-block.js.map +1 -0
  148. package/dist/portable/uniform-buffer-layout.js +1 -0
  149. package/dist/portable/uniform-buffer-layout.js.map +1 -0
  150. package/dist/portable/uniform-store.d.ts +0 -5
  151. package/dist/portable/uniform-store.d.ts.map +1 -1
  152. package/dist/portable/uniform-store.js +3 -2
  153. package/dist/portable/uniform-store.js.map +1 -0
  154. package/dist/types.js +1 -0
  155. package/dist/types.js.map +1 -0
  156. package/dist/utils/array-equal.js +1 -0
  157. package/dist/utils/array-equal.js.map +1 -0
  158. package/dist/utils/array-utils-flat.js +1 -0
  159. package/dist/utils/array-utils-flat.js.map +1 -0
  160. package/dist/utils/is-array.js +1 -0
  161. package/dist/utils/is-array.js.map +1 -0
  162. package/dist/utils/log.js +1 -0
  163. package/dist/utils/log.js.map +1 -0
  164. package/dist/utils/stats-manager.js +1 -0
  165. package/dist/utils/stats-manager.js.map +1 -0
  166. package/dist/utils/uid.js +1 -0
  167. package/dist/utils/uid.js.map +1 -0
  168. package/package.json +3 -3
  169. package/src/adapter/adapter.ts +2 -1
  170. package/src/adapter/canvas-context.ts +49 -70
  171. package/src/adapter/device.ts +164 -95
  172. package/src/adapter/luma.ts +47 -12
  173. package/src/adapter/resources/buffer.ts +16 -2
  174. package/src/adapter/resources/command-encoder.ts +45 -40
  175. package/src/adapter/resources/framebuffer.ts +36 -11
  176. package/src/adapter/resources/render-pass.ts +42 -23
  177. package/src/adapter/resources/resource.ts +4 -4
  178. package/src/adapter/resources/sampler.ts +10 -2
  179. package/src/adapter/resources/shader.ts +9 -5
  180. package/src/adapter/resources/texture.ts +172 -51
  181. package/src/adapter/types/attachments.ts +0 -4
  182. package/src/adapter/types/parameters.ts +4 -3
  183. package/src/adapter/types/shader-layout.ts +30 -3
  184. package/src/adapter/types/uniforms.ts +2 -2
  185. package/src/adapter-utils/buffer-layout-helper.ts +41 -0
  186. package/src/adapter-utils/format-compiler-log.ts +2 -1
  187. package/src/gpu-type-utils/decode-texture-format.ts +103 -117
  188. package/src/gpu-type-utils/texture-features.ts +23 -0
  189. package/src/gpu-type-utils/texture-format-capabilities.ts +53 -0
  190. package/src/gpu-type-utils/texture-format-info.ts +42 -0
  191. package/src/gpu-type-utils/texture-format-table.ts +238 -0
  192. package/src/gpu-type-utils/texture-formats.ts +6 -2
  193. package/src/gpu-type-utils/vertex-format-from-attribute.ts +8 -0
  194. package/src/index.ts +23 -6
  195. package/src/portable/uniform-block.ts +1 -1
  196. package/src/portable/uniform-store.ts +2 -8
@@ -1,6 +1,6 @@
1
1
  import { Device, DeviceProps } from "./device.js";
2
2
  /**
3
- * Create and attach devices for a specific backend. Currently static methods on each device
3
+ * Create and attach devices for a specific backend.
4
4
  */
5
5
  export declare abstract class Adapter {
6
6
  abstract type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,oBAAiB;AAC7C;;GAEG;AACH,8BAAsB,OAAO;IAE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,IAAI,OAAO;IAC/B,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CACnD"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,oBAAiB;AAE7C;;GAEG;AACH,8BAAsB,OAAO;IAE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,IAAI,OAAO;IAC/B,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CACnD"}
@@ -2,7 +2,8 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  /**
5
- * Create and attach devices for a specific backend. Currently static methods on each device
5
+ * Create and attach devices for a specific backend.
6
6
  */
7
7
  export class Adapter {
8
8
  }
9
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC;;GAEG;AACH,MAAM,OAAgB,OAAO;CAM5B"}
@@ -3,24 +3,24 @@ import type { Framebuffer } from "./resources/framebuffer.js";
3
3
  import type { TextureFormat } from "../gpu-type-utils/texture-formats.js";
4
4
  /** Properties for a CanvasContext */
5
5
  export type CanvasContextProps = {
6
- /** If canvas not supplied, will be created and added to the DOM. If string, will be looked up in the DOM */
6
+ /** If a canvas not supplied, one will be created and added to the DOM. If a string, a canvas with that id will be looked up in the DOM */
7
7
  canvas?: HTMLCanvasElement | OffscreenCanvas | string | null;
8
- /** If new canvas is created, it will be created in the specified container, otherwise appended to body */
8
+ /** If new canvas is created, it will be created in the specified container, otherwise is appended as a child of document.body */
9
9
  container?: HTMLElement | string | null;
10
- /** Width in pixels of the canvas */
10
+ /** Width in pixels of the canvas - used when creating a new canvas */
11
11
  width?: number;
12
- /** Height in pixels of the canvas */
12
+ /** Height in pixels of the canvas - used when creating a new canvas */
13
13
  height?: number;
14
+ /** Visibility (only used if new canvas is created). */
15
+ visible?: boolean;
14
16
  /** Whether to apply a device pixels scale factor (`true` uses browser DPI) */
15
17
  useDevicePixels?: boolean | number;
16
- /** Whether to track resizes (if not ) */
18
+ /** Whether to track window resizes */
17
19
  autoResize?: boolean;
18
- /** Visibility (only used if new canvas is created). */
19
- visible?: boolean;
20
- /** WebGPU only https://www.w3.org/TR/webgpu/#canvas-configuration */
21
- colorSpace?: 'srgb';
22
- /** WebGPU only https://www.w3.org/TR/webgpu/#canvas-configuration */
20
+ /** https://developer.mozilla.org/en-US/docs/Web/API/GPUCanvasContext/configure#alphamode */
23
21
  alphaMode?: 'opaque' | 'premultiplied';
22
+ /** https://developer.mozilla.org/en-US/docs/Web/API/GPUCanvasContext/configure#colorspace */
23
+ colorSpace?: 'srgb';
24
24
  };
25
25
  /**
26
26
  * Manages a canvas. Supports both HTML or offscreen canvas
@@ -30,6 +30,7 @@ export type CanvasContextProps = {
30
30
  * @todo transferControlToOffscreen: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen
31
31
  */
32
32
  export declare abstract class CanvasContext {
33
+ static defaultProps: Required<CanvasContextProps>;
33
34
  abstract readonly device: Device;
34
35
  readonly id: string;
35
36
  readonly props: Required<CanvasContextProps>;
@@ -50,15 +51,8 @@ export declare abstract class CanvasContext {
50
51
  clientHeight: number;
51
52
  devicePixelRatio: number;
52
53
  };
53
- /** Check if the DOM is loaded */
54
- static get isPageLoaded(): boolean;
55
- /**
56
- * Get a 'lazy' promise that resolves when the DOM is loaded.
57
- * @note Since there may be limitations on number of `load` event listeners,
58
- * it is recommended avoid calling this function until actually needed.
59
- * I.e. don't call it until you know that you will be looking up a string in the DOM.
60
- */
61
- static pageLoaded: Promise<void>;
54
+ abstract get [Symbol.toStringTag](): string;
55
+ toString(): string;
62
56
  constructor(props?: CanvasContextProps);
63
57
  /** Returns a framebuffer with properly resized current 'swap chain' textures */
64
58
  abstract getCurrentFramebuffer(): Framebuffer;
@@ -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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"}
@@ -3,19 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { isBrowser } from '@probe.gl/env';
5
5
  import { log } from "../utils/log.js";
6
- const isPage = isBrowser() && typeof document !== 'undefined';
7
- const isPageLoaded = () => isPage && document.readyState === 'complete';
8
- const DEFAULT_CANVAS_CONTEXT_PROPS = {
9
- canvas: null,
10
- width: 800, // width are height are only used by headless gl
11
- height: 600,
12
- useDevicePixels: true,
13
- autoResize: true,
14
- container: null,
15
- visible: true,
16
- colorSpace: 'srgb',
17
- alphaMode: 'opaque'
18
- };
6
+ import { uid } from "../utils/uid.js";
19
7
  /**
20
8
  * Manages a canvas. Supports both HTML or offscreen canvas
21
9
  * - Creates a new canvas or looks up a canvas from the DOM
@@ -24,6 +12,17 @@ const DEFAULT_CANVAS_CONTEXT_PROPS = {
24
12
  * @todo transferControlToOffscreen: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen
25
13
  */
26
14
  export class CanvasContext {
15
+ static defaultProps = {
16
+ canvas: null,
17
+ width: 800, // width are height are only used by headless gl
18
+ height: 600,
19
+ useDevicePixels: true,
20
+ autoResize: true,
21
+ container: null,
22
+ visible: true,
23
+ alphaMode: 'opaque',
24
+ colorSpace: 'srgb'
25
+ };
27
26
  id;
28
27
  props;
29
28
  canvas;
@@ -35,19 +34,11 @@ export class CanvasContext {
35
34
  resizeObserver;
36
35
  /** State used by luma.gl classes: TODO - move to canvasContext*/
37
36
  _canvasSizeInfo = { clientWidth: 0, clientHeight: 0, devicePixelRatio: 1 };
38
- /** Check if the DOM is loaded */
39
- static get isPageLoaded() {
40
- return isPageLoaded();
37
+ toString() {
38
+ return `${this[Symbol.toStringTag]}(${this.id})`;
41
39
  }
42
- /**
43
- * Get a 'lazy' promise that resolves when the DOM is loaded.
44
- * @note Since there may be limitations on number of `load` event listeners,
45
- * it is recommended avoid calling this function until actually needed.
46
- * I.e. don't call it until you know that you will be looking up a string in the DOM.
47
- */
48
- static pageLoaded = getPageLoadPromise();
49
40
  constructor(props) {
50
- this.props = { ...DEFAULT_CANVAS_CONTEXT_PROPS, ...props };
41
+ this.props = { ...CanvasContext.defaultProps, ...props };
51
42
  props = this.props;
52
43
  if (!isBrowser()) {
53
44
  this.id = 'node-canvas-context';
@@ -192,19 +183,23 @@ export class CanvasContext {
192
183
  const canvasHeight = Math.floor(clientHeight * clampedPixelRatio);
193
184
  this.htmlCanvas.width = canvasWidth;
194
185
  this.htmlCanvas.height = canvasHeight;
195
- // Note: when devicePixelRatio is too high, it is possible we might hit system limit for
196
- // drawing buffer width and hight, in those cases they get clamped and resulting aspect ration may not be maintained
197
- // for those cases, reduce devicePixelRatio.
198
- const [drawingBufferWidth, drawingBufferHeight] = this.getDrawingBufferSize();
199
- if (drawingBufferWidth !== canvasWidth || drawingBufferHeight !== canvasHeight) {
200
- clampedPixelRatio = Math.min(drawingBufferWidth / clientWidth, drawingBufferHeight / clientHeight);
201
- this.htmlCanvas.width = Math.floor(clientWidth * clampedPixelRatio);
202
- this.htmlCanvas.height = Math.floor(clientHeight * clampedPixelRatio);
203
- log.warn('Device pixel ratio clamped')();
186
+ // @ts-expect-error This only works for WebGL
187
+ const gl = this.device.gl;
188
+ if (gl) {
189
+ // Note: when devicePixelRatio is too high, it is possible we might hit system limit for
190
+ // drawing buffer width and hight, in those cases they get clamped and resulting aspect ration may not be maintained
191
+ // for those cases, reduce devicePixelRatio.
192
+ const [drawingBufferWidth, drawingBufferHeight] = this.getDrawingBufferSize();
193
+ if (drawingBufferWidth !== canvasWidth || drawingBufferHeight !== canvasHeight) {
194
+ clampedPixelRatio = Math.min(drawingBufferWidth / clientWidth, drawingBufferHeight / clientHeight);
195
+ this.htmlCanvas.width = Math.floor(clientWidth * clampedPixelRatio);
196
+ this.htmlCanvas.height = Math.floor(clientHeight * clampedPixelRatio);
197
+ log.warn('Device pixel ratio clamped')();
198
+ }
199
+ this._canvasSizeInfo.clientWidth = clientWidth;
200
+ this._canvasSizeInfo.clientHeight = clientHeight;
201
+ this._canvasSizeInfo.devicePixelRatio = devicePixelRatio;
204
202
  }
205
- this._canvasSizeInfo.clientWidth = clientWidth;
206
- this._canvasSizeInfo.clientHeight = clientHeight;
207
- this._canvasSizeInfo.devicePixelRatio = devicePixelRatio;
208
203
  }
209
204
  }
210
205
  // PRIVATE
@@ -229,21 +224,9 @@ export class CanvasContext {
229
224
  }
230
225
  }
231
226
  // HELPER FUNCTIONS
232
- /** Returns a promise that resolves when the page is loaded */
233
- function getPageLoadPromise() {
234
- if (isPageLoaded() || typeof window === 'undefined') {
235
- return Promise.resolve();
236
- }
237
- return new Promise(resolve => {
238
- window.addEventListener('load', () => resolve());
239
- });
240
- }
241
227
  function getContainer(container) {
242
228
  if (typeof container === 'string') {
243
229
  const element = document.getElementById(container);
244
- if (!element && !isPageLoaded()) {
245
- throw new Error(`Accessing '${container}' before page was loaded`);
246
- }
247
230
  if (!element) {
248
231
  throw new Error(`${container} is not an HTML element`);
249
232
  }
@@ -257,9 +240,6 @@ function getContainer(container) {
257
240
  /** Get a Canvas element from DOM id */
258
241
  function getCanvasFromDOM(canvasId) {
259
242
  const canvas = document.getElementById(canvasId);
260
- if (!canvas && !isPageLoaded()) {
261
- throw new Error(`Accessing '${canvasId}' before page was loaded`);
262
- }
263
243
  if (!(canvas instanceof HTMLCanvasElement)) {
264
244
  throw new Error('Object is not a canvas element');
265
245
  }
@@ -269,7 +249,7 @@ function getCanvasFromDOM(canvasId) {
269
249
  function createCanvas(props) {
270
250
  const { width, height } = props;
271
251
  const targetCanvas = document.createElement('canvas');
272
- targetCanvas.id = 'lumagl-auto-created-canvas';
252
+ targetCanvas.id = uid('lumagl-auto-created-canvas');
273
253
  targetCanvas.width = width || 1;
274
254
  targetCanvas.height = height || 1;
275
255
  targetCanvas.style.width = Number.isFinite(width) ? `${width}px` : '100%';
@@ -326,3 +306,4 @@ function scaleY(y, ratio, height, yInvert) {
326
306
  ? Math.max(0, height - 1 - Math.round(y * ratio))
327
307
  : Math.min(Math.round(y * ratio), height - 1);
328
308
  }
309
+ //# sourceMappingURL=canvas-context.js.map
@@ -0,0 +1 @@
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 } from "../gpu-type-utils//texture-formats.js";
2
+ import type { TextureFormat } from "../gpu-type-utils/texture-formats.js";
3
+ import type { TextureFormatCapabilities } from "../gpu-type-utils/texture-format-capabilities.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";
@@ -112,36 +113,75 @@ export declare class DeviceFeatures {
112
113
  /** Device feature names */
113
114
  export type DeviceFeature = WebGPUDeviceFeature | WebGLDeviceFeature | WebGLCompressedTextureFeatures;
114
115
  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';
115
- 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';
116
+ 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';
116
117
  type WebGLCompressedTextureFeatures = 'texture-compression-bc5-webgl' | 'texture-compression-bc7-webgl' | 'texture-compression-etc1-webgl' | 'texture-compression-pvrtc-webgl' | 'texture-compression-atc-webgl';
118
+ /** Texture format capabilities that have been checked against a specific device */
119
+ export type DeviceTextureFormatCapabilities = {
120
+ format: TextureFormat;
121
+ /** Can the format be created */
122
+ create: boolean;
123
+ /** If a feature string, the specified device feature determines if format is renderable. */
124
+ render: boolean;
125
+ /** If a feature string, the specified device feature determines if format is filterable. */
126
+ filter: boolean;
127
+ /** If a feature string, the specified device feature determines if format is blendable. */
128
+ blend: boolean;
129
+ /** If a feature string, the specified device feature determines if format is storeable. */
130
+ store: boolean;
131
+ };
117
132
  /** Device properties */
118
133
  export type DeviceProps = {
134
+ /** string id for debugging. Stored on the object, used in logging and set on underlying GPU objects when feasible. */
119
135
  id?: string;
120
- canvas?: HTMLCanvasElement | OffscreenCanvas | string | null;
121
- container?: HTMLElement | string | null;
122
- width?: number /** width is only used when creating a new canvas */;
123
- height?: number /** height is only used when creating a new canvas */;
124
- /** Request a Device with the highest limits supported by platform. WebGPU: devices can be created with minimal limits. */
125
- requestMaxLimits?: boolean;
136
+ /** Properties for creating a default canvas context */
137
+ createCanvasContext?: CanvasContextProps | true;
138
+ /** Control which type of GPU is preferred on systems with both integrated and discrete GPU. Defaults to "high-performance" / discrete GPU. */
139
+ powerPreference?: 'default' | 'high-performance' | 'low-power';
140
+ /** Hints that device creation should fail if no hardware GPU is available (if the system performance is "low"). */
141
+ failIfMajorPerformanceCaveat?: boolean;
126
142
  /** Error handling */
127
143
  onError?: (error: Error) => unknown;
128
- gl?: WebGL2RenderingContext | null;
129
- /** WebGL: Instrument WebGL2RenderingContext (at the expense of performance) */
144
+ /** WebGL specific: Properties passed through to WebGL2RenderingContext creation: `canvas.getContext('webgl2', props.webgl)` */
145
+ webgl?: WebGLContextProps;
146
+ /** Turn on implementation defined checks that slow down execution but help break where errors occur */
130
147
  debug?: boolean;
131
- /** Break on WebGL functions matching these strings */
132
- break?: string[];
133
- /** WebGL: Initialize the SpectorJS WebGL debugger */
134
- debugWithSpectorJS?: boolean;
135
- /** SpectorJS URL. Override if CDN is down or different SpectorJS version is desired */
136
- spectorUrl?: string;
137
- /** Set to false to disable WebGL state management instrumentation: TODO- Unclear if still supported / useful */
138
- manageState?: boolean;
139
- /** Initialize all features on startup */
140
- initalizeFeatures?: boolean;
148
+ /** Show shader source in browser? The default is`'error'`, meaning that logs are shown when shader compilation has errors */
149
+ debugShaders?: 'never' | 'errors' | 'warnings' | 'always';
150
+ /** Renders a small version of updated Framebuffers into the primary canvas context. Can be set in console luma.log.set('debug-framebuffers', true) */
151
+ debugFramebuffers?: boolean;
152
+ /** WebGL specific - Trace WebGL calls (instruments WebGL2RenderingContext at the expense of performance). Can be set in console luma.log.set('debug-webgl', true) */
153
+ debugWebGL?: boolean;
154
+ /** WebGL specific - Initialize the SpectorJS WebGL debugger. Can be set in console luma.log.set('debug-spectorjs', true) */
155
+ debugSpectorJS?: boolean;
156
+ /** WebGL specific - SpectorJS URL. Override if CDN is down or different SpectorJS version is desired. */
157
+ debugSpectorJSUrl?: string;
158
+ /** WebGPU specific - Request a Device with the highest limits supported by platform. On WebGPU devices can be created with minimal limits. */
159
+ _requestMaxLimits?: boolean;
141
160
  /** Disable specific features */
142
- disabledFeatures?: Partial<Record<DeviceFeature, boolean>>;
161
+ _disabledFeatures?: Partial<Record<DeviceFeature, boolean>>;
162
+ /** WebGL specific - Initialize all features on startup */
163
+ _initializeFeatures?: boolean;
143
164
  /** Never destroy cached shaders and pipelines */
144
165
  _factoryDestroyPolicy?: 'unused' | 'never';
166
+ /** Resource default overrides */
167
+ _resourceDefaults?: {
168
+ texture?: Partial<TextureProps>;
169
+ sampler?: Partial<SamplerProps>;
170
+ renderPass?: Partial<RenderPassProps>;
171
+ };
172
+ /** @deprecated Internal, Do not use directly! Use `luma.attachDevice()` to attach to pre-created contexts/devices. */
173
+ _handle?: unknown;
174
+ };
175
+ /** WebGL independent copy of WebGLContextAttributes */
176
+ type WebGLContextProps = {
177
+ alpha?: boolean;
178
+ desynchronized?: boolean;
179
+ antialias?: boolean;
180
+ depth?: boolean;
181
+ failIfMajorPerformanceCaveat?: boolean;
182
+ powerPreference?: 'default' | 'high-performance' | 'low-power';
183
+ premultipliedAlpha?: boolean;
184
+ preserveDrawingBuffer?: boolean;
145
185
  };
146
186
  /**
147
187
  * Create and attach devices for a specific backend. Currently static methods on each device
@@ -171,6 +211,8 @@ export declare abstract class Device {
171
211
  };
172
212
  /** stats */
173
213
  readonly statsManager: StatsManager;
214
+ /** An abstract timestamp used for change tracking */
215
+ timestamp: number;
174
216
  /** Used by other luma.gl modules to store data on the device */
175
217
  _lumaData: {
176
218
  [key: string]: unknown;
@@ -182,12 +224,14 @@ export declare abstract class Device {
182
224
  abstract features: DeviceFeatures;
183
225
  /** WebGPU style device limits */
184
226
  abstract get limits(): DeviceLimits;
227
+ /** Determines what operations are supported on a texture format, checking against supported device features */
228
+ getTextureFormatCapabilities(format: TextureFormat): DeviceTextureFormatCapabilities;
185
229
  /** Check if device supports a specific texture format (creation and `nearest` sampling) */
186
- abstract isTextureFormatSupported(format: TextureFormat): boolean;
230
+ isTextureFormatSupported(format: TextureFormat, capabilities: Partial<TextureFormatCapabilities>): boolean;
187
231
  /** Check if linear filtering (sampler interpolation) is supported for a specific texture format */
188
- abstract isTextureFormatFilterable(format: TextureFormat): boolean;
189
- /** Check if device supports rendering to a specific texture format */
190
- abstract isTextureFormatRenderable(format: TextureFormat): boolean;
232
+ isTextureFormatFilterable(format: TextureFormat): boolean;
233
+ /** Check if device supports rendering to a framebuffer color attachment of a specific texture format */
234
+ isTextureFormatRenderable(format: TextureFormat): boolean;
191
235
  /** Check if a specific texture format is GPU compressed */
192
236
  isTextureFormatCompressed(format: TextureFormat): boolean;
193
237
  /** `true` if device is already lost */
@@ -203,12 +247,12 @@ export declare abstract class Device {
203
247
  * @note primarily intended for testing how application reacts to device loss
204
248
  */
205
249
  loseDevice(): boolean;
206
- /** Report error (normally for unhandled device errors) */
207
- error(error: Error): void;
250
+ /** Report error (normally called for unhandled device errors) */
251
+ reportError(error: Error): void;
208
252
  /** Default / primary canvas context. Can be null as WebGPU devices can be created without a CanvasContext */
209
253
  abstract canvasContext: CanvasContext | null;
210
254
  /** Returns the default / primary canvas context. Throws an error if no canvas context is available (a WebGPU compute device) */
211
- getCanvasContext(): CanvasContext;
255
+ getDefaultCanvasContext(): CanvasContext;
212
256
  /** Creates a new CanvasContext (WebGPU only) */
213
257
  abstract createCanvasContext(props?: CanvasContextProps): CanvasContext;
214
258
  /** Call after rendering a frame (necessary e.g. on WebGL OffscreenCanvas) */
@@ -216,8 +260,7 @@ export declare abstract class Device {
216
260
  /** Create a buffer */
217
261
  abstract createBuffer(props: BufferProps | ArrayBuffer | ArrayBufferView): Buffer;
218
262
  /** Create a texture */
219
- abstract _createTexture(props: TextureProps): Texture;
220
- createTexture(props: TextureProps): Texture;
263
+ abstract createTexture(props: TextureProps): Texture;
221
264
  /** Create a temporary texture view of a video source */
222
265
  abstract createExternalTexture(props: ExternalTextureProps): ExternalTexture;
223
266
  /** Create a sampler */
@@ -240,6 +283,12 @@ export declare abstract class Device {
240
283
  abstract createTransformFeedback(props: TransformFeedbackProps): TransformFeedback;
241
284
  abstract createQuerySet(props: QuerySetProps): QuerySet;
242
285
  createCommandEncoder(props?: CommandEncoderProps): CommandEncoder;
286
+ /** A monotonic counter for tracking buffer and texture updates */
287
+ incrementTimestamp(): number;
288
+ /** Report unhandled device errors */
289
+ onError(error: Error): void;
290
+ /** @deprecated Use getDefaultCanvasContext() */
291
+ getCanvasContext(): CanvasContext;
243
292
  /** @deprecated - will be removed - should use command encoder */
244
293
  readPixelsToArrayWebGL(source: Framebuffer | Texture, options?: {
245
294
  sourceX?: number;
@@ -277,12 +326,13 @@ export declare abstract class Device {
277
326
  }): void;
278
327
  /** @deprecated - will be removed - should use for debugging only */
279
328
  resetWebGL(): void;
280
- timestamp: number;
281
- /** A monotonic counter for tracking buffer and texture updates */
282
- incrementTimestamp(): number;
283
- /** Report unhandled device errors */
284
- onError(error: Error): void;
285
- protected _getBufferProps(props: BufferProps | ArrayBuffer | ArrayBufferView): BufferProps;
329
+ /**
330
+ * Determines what operations are supported on a texture format, checking against supported device features
331
+ * Subclasses override to apply additional checks
332
+ */
333
+ protected abstract _getDeviceSpecificTextureFormatCapabilities(format: DeviceTextureFormatCapabilities): DeviceTextureFormatCapabilities;
334
+ /** Subclasses use this to support .createBuffer() overloads */
335
+ protected _normalizeBufferProps(props: BufferProps | ArrayBuffer | ArrayBufferView): BufferProps;
286
336
  }
287
337
  export {};
288
338
  //# sourceMappingURL=device.d.ts.map
@@ -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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"}