@luma.gl/core 9.3.0-alpha.2 → 9.3.0-alpha.6

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 (121) hide show
  1. package/dist/adapter/canvas-context.d.ts +6 -181
  2. package/dist/adapter/canvas-context.d.ts.map +1 -1
  3. package/dist/adapter/canvas-context.js +5 -450
  4. package/dist/adapter/canvas-context.js.map +1 -1
  5. package/dist/adapter/canvas-observer.d.ts +32 -0
  6. package/dist/adapter/canvas-observer.d.ts.map +1 -0
  7. package/dist/adapter/canvas-observer.js +90 -0
  8. package/dist/adapter/canvas-observer.js.map +1 -0
  9. package/dist/adapter/canvas-surface.d.ts +150 -0
  10. package/dist/adapter/canvas-surface.d.ts.map +1 -0
  11. package/dist/adapter/canvas-surface.js +392 -0
  12. package/dist/adapter/canvas-surface.js.map +1 -0
  13. package/dist/adapter/device.d.ts +64 -9
  14. package/dist/adapter/device.d.ts.map +1 -1
  15. package/dist/adapter/device.js +108 -4
  16. package/dist/adapter/device.js.map +1 -1
  17. package/dist/adapter/luma.js +1 -1
  18. package/dist/adapter/presentation-context.d.ts +11 -0
  19. package/dist/adapter/presentation-context.d.ts.map +1 -0
  20. package/dist/adapter/presentation-context.js +12 -0
  21. package/dist/adapter/presentation-context.js.map +1 -0
  22. package/dist/adapter/resources/buffer.d.ts +1 -1
  23. package/dist/adapter/resources/buffer.d.ts.map +1 -1
  24. package/dist/adapter/resources/buffer.js +14 -6
  25. package/dist/adapter/resources/buffer.js.map +1 -1
  26. package/dist/adapter/resources/command-encoder.d.ts +27 -6
  27. package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
  28. package/dist/adapter/resources/command-encoder.js +65 -1
  29. package/dist/adapter/resources/command-encoder.js.map +1 -1
  30. package/dist/adapter/resources/fence.d.ts +1 -1
  31. package/dist/adapter/resources/fence.d.ts.map +1 -1
  32. package/dist/adapter/resources/fence.js +3 -1
  33. package/dist/adapter/resources/fence.js.map +1 -1
  34. package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
  35. package/dist/adapter/resources/framebuffer.js +9 -11
  36. package/dist/adapter/resources/framebuffer.js.map +1 -1
  37. package/dist/adapter/resources/query-set.d.ts +17 -1
  38. package/dist/adapter/resources/query-set.d.ts.map +1 -1
  39. package/dist/adapter/resources/query-set.js.map +1 -1
  40. package/dist/adapter/resources/render-pipeline.d.ts +19 -7
  41. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
  42. package/dist/adapter/resources/render-pipeline.js +20 -2
  43. package/dist/adapter/resources/render-pipeline.js.map +1 -1
  44. package/dist/adapter/resources/resource.d.ts +8 -0
  45. package/dist/adapter/resources/resource.d.ts.map +1 -1
  46. package/dist/adapter/resources/resource.js +240 -14
  47. package/dist/adapter/resources/resource.js.map +1 -1
  48. package/dist/adapter/resources/shader.js +27 -25
  49. package/dist/adapter/resources/shader.js.map +1 -1
  50. package/dist/adapter/resources/shared-render-pipeline.d.ts +22 -0
  51. package/dist/adapter/resources/shared-render-pipeline.d.ts.map +1 -0
  52. package/dist/adapter/resources/shared-render-pipeline.js +25 -0
  53. package/dist/adapter/resources/shared-render-pipeline.js.map +1 -0
  54. package/dist/adapter/resources/texture.d.ts +78 -12
  55. package/dist/adapter/resources/texture.d.ts.map +1 -1
  56. package/dist/adapter/resources/texture.js +182 -30
  57. package/dist/adapter/resources/texture.js.map +1 -1
  58. package/dist/adapter-utils/format-compiler-log.d.ts.map +1 -1
  59. package/dist/adapter-utils/format-compiler-log.js +23 -15
  60. package/dist/adapter-utils/format-compiler-log.js.map +1 -1
  61. package/dist/dist.dev.js +1265 -362
  62. package/dist/dist.min.js +10 -9
  63. package/dist/index.cjs +1027 -243
  64. package/dist/index.cjs.map +4 -4
  65. package/dist/index.d.ts +5 -1
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +3 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/shadertypes/data-types/decode-shader-types.d.ts +2 -2
  70. package/dist/shadertypes/data-types/decode-shader-types.d.ts.map +1 -1
  71. package/dist/shadertypes/data-types/decode-shader-types.js +11 -2
  72. package/dist/shadertypes/data-types/decode-shader-types.js.map +1 -1
  73. package/dist/shadertypes/textures/pixel-utils.js +4 -4
  74. package/dist/shadertypes/textures/pixel-utils.js.map +1 -1
  75. package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +1 -1
  76. package/dist/shadertypes/textures/texture-format-decoder.js +53 -8
  77. package/dist/shadertypes/textures/texture-format-decoder.js.map +1 -1
  78. package/dist/shadertypes/textures/texture-format-table.d.ts.map +1 -1
  79. package/dist/shadertypes/textures/texture-format-table.js +10 -9
  80. package/dist/shadertypes/textures/texture-format-table.js.map +1 -1
  81. package/dist/shadertypes/textures/texture-formats.d.ts +5 -2
  82. package/dist/shadertypes/textures/texture-formats.d.ts.map +1 -1
  83. package/dist/shadertypes/textures/texture-formats.js.map +1 -1
  84. package/dist/shadertypes/textures/texture-layout.d.ts +1 -1
  85. package/dist/utils/array-equal.d.ts +1 -1
  86. package/dist/utils/array-equal.d.ts.map +1 -1
  87. package/dist/utils/array-equal.js +15 -9
  88. package/dist/utils/array-equal.js.map +1 -1
  89. package/dist/utils/assert.d.ts +5 -0
  90. package/dist/utils/assert.d.ts.map +1 -0
  91. package/dist/utils/assert.js +17 -0
  92. package/dist/utils/assert.js.map +1 -0
  93. package/dist/utils/stats-manager.d.ts.map +1 -1
  94. package/dist/utils/stats-manager.js +61 -1
  95. package/dist/utils/stats-manager.js.map +1 -1
  96. package/package.json +6 -6
  97. package/src/adapter/canvas-context.ts +7 -590
  98. package/src/adapter/canvas-observer.ts +130 -0
  99. package/src/adapter/canvas-surface.ts +521 -0
  100. package/src/adapter/device.ts +174 -13
  101. package/src/adapter/presentation-context.ts +16 -0
  102. package/src/adapter/resources/buffer.ts +13 -5
  103. package/src/adapter/resources/command-encoder.ts +96 -7
  104. package/src/adapter/resources/fence.ts +3 -1
  105. package/src/adapter/resources/framebuffer.ts +9 -11
  106. package/src/adapter/resources/query-set.ts +17 -1
  107. package/src/adapter/resources/render-pipeline.ts +42 -13
  108. package/src/adapter/resources/resource.ts +284 -14
  109. package/src/adapter/resources/shader.ts +28 -28
  110. package/src/adapter/resources/shared-render-pipeline.ts +40 -0
  111. package/src/adapter/resources/texture.ts +269 -40
  112. package/src/adapter-utils/format-compiler-log.ts +23 -15
  113. package/src/index.ts +8 -0
  114. package/src/shadertypes/data-types/decode-shader-types.ts +13 -4
  115. package/src/shadertypes/textures/pixel-utils.ts +4 -4
  116. package/src/shadertypes/textures/texture-format-decoder.ts +73 -8
  117. package/src/shadertypes/textures/texture-format-table.ts +10 -9
  118. package/src/shadertypes/textures/texture-formats.ts +6 -1
  119. package/src/utils/array-equal.ts +21 -9
  120. package/src/utils/assert.ts +18 -0
  121. package/src/utils/stats-manager.ts +76 -2
@@ -0,0 +1,392 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { isBrowser } from '@probe.gl/env';
5
+ import { CanvasObserver } from "./canvas-observer.js";
6
+ import { uid } from "../utils/uid.js";
7
+ import { withResolvers } from "../utils/promise-utils.js";
8
+ import { assertDefined } from "../utils/assert.js";
9
+ /**
10
+ * Shared tracked-canvas lifecycle used by both renderable and presentation contexts.
11
+ * - Creates a new canvas or looks up a canvas from the DOM
12
+ * - Provides check for DOM loaded
13
+ * @todo commit() @see https://github.com/w3ctag/design-reviews/issues/288
14
+ * @todo transferControlToOffscreen: @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen
15
+ */
16
+ export class CanvasSurface {
17
+ static isHTMLCanvas(canvas) {
18
+ return typeof HTMLCanvasElement !== 'undefined' && canvas instanceof HTMLCanvasElement;
19
+ }
20
+ static isOffscreenCanvas(canvas) {
21
+ return typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas;
22
+ }
23
+ static defaultProps = {
24
+ id: undefined,
25
+ canvas: null,
26
+ width: 800,
27
+ height: 600,
28
+ useDevicePixels: true,
29
+ autoResize: true,
30
+ container: null,
31
+ visible: true,
32
+ alphaMode: 'opaque',
33
+ colorSpace: 'srgb',
34
+ trackPosition: false
35
+ };
36
+ id;
37
+ props;
38
+ canvas;
39
+ /** Handle to HTML canvas */
40
+ htmlCanvas;
41
+ /** Handle to wrapped OffScreenCanvas */
42
+ offscreenCanvas;
43
+ type;
44
+ /** Promise that resolved once the resize observer has updated the pixel size */
45
+ initialized;
46
+ isInitialized = false;
47
+ /** Visibility is automatically updated (via an IntersectionObserver) */
48
+ isVisible = true;
49
+ /** Width of canvas in CSS units (tracked by a ResizeObserver) */
50
+ cssWidth;
51
+ /** Height of canvas in CSS units (tracked by a ResizeObserver) */
52
+ cssHeight;
53
+ /** Device pixel ratio. Automatically updated via media queries */
54
+ devicePixelRatio;
55
+ /** Exact width of canvas in physical pixels (tracked by a ResizeObserver) */
56
+ devicePixelWidth;
57
+ /** Exact height of canvas in physical pixels (tracked by a ResizeObserver) */
58
+ devicePixelHeight;
59
+ /** Width of drawing buffer: automatically tracks this.pixelWidth if props.autoResize is true */
60
+ drawingBufferWidth;
61
+ /** Height of drawing buffer: automatically tracks this.pixelHeight if props.autoResize is true */
62
+ drawingBufferHeight;
63
+ /** Resolves when the canvas is initialized, i.e. when the ResizeObserver has updated the pixel size */
64
+ _initializedResolvers = withResolvers();
65
+ _canvasObserver;
66
+ /** Position of the canvas in the document, updated by a timer */
67
+ _position = [0, 0];
68
+ /** Whether this canvas context has been destroyed */
69
+ destroyed = false;
70
+ /** Whether the drawing buffer size needs to be resized (deferred resizing to avoid flicker) */
71
+ _needsDrawingBufferResize = true;
72
+ toString() {
73
+ return `${this[Symbol.toStringTag]}(${this.id})`;
74
+ }
75
+ constructor(props) {
76
+ this.props = { ...CanvasSurface.defaultProps, ...props };
77
+ props = this.props;
78
+ this.initialized = this._initializedResolvers.promise;
79
+ if (!isBrowser()) {
80
+ this.canvas = { width: props.width || 1, height: props.height || 1 };
81
+ }
82
+ else if (!props.canvas) {
83
+ this.canvas = createCanvasElement(props);
84
+ }
85
+ else if (typeof props.canvas === 'string') {
86
+ this.canvas = getCanvasFromDOM(props.canvas);
87
+ }
88
+ else {
89
+ this.canvas = props.canvas;
90
+ }
91
+ if (CanvasSurface.isHTMLCanvas(this.canvas)) {
92
+ this.id = props.id || this.canvas.id;
93
+ this.type = 'html-canvas';
94
+ this.htmlCanvas = this.canvas;
95
+ }
96
+ else if (CanvasSurface.isOffscreenCanvas(this.canvas)) {
97
+ this.id = props.id || 'offscreen-canvas';
98
+ this.type = 'offscreen-canvas';
99
+ this.offscreenCanvas = this.canvas;
100
+ }
101
+ else {
102
+ this.id = props.id || 'node-canvas-context';
103
+ this.type = 'node';
104
+ }
105
+ this.cssWidth = this.htmlCanvas?.clientWidth || this.canvas.width;
106
+ this.cssHeight = this.htmlCanvas?.clientHeight || this.canvas.height;
107
+ this.devicePixelWidth = this.canvas.width;
108
+ this.devicePixelHeight = this.canvas.height;
109
+ this.drawingBufferWidth = this.canvas.width;
110
+ this.drawingBufferHeight = this.canvas.height;
111
+ this.devicePixelRatio = globalThis.devicePixelRatio || 1;
112
+ this._position = [0, 0];
113
+ this._canvasObserver = new CanvasObserver({
114
+ canvas: this.htmlCanvas,
115
+ trackPosition: this.props.trackPosition,
116
+ onResize: entries => this._handleResize(entries),
117
+ onIntersection: entries => this._handleIntersection(entries),
118
+ onDevicePixelRatioChange: () => this._observeDevicePixelRatio(),
119
+ onPositionChange: () => this.updatePosition()
120
+ });
121
+ }
122
+ destroy() {
123
+ if (!this.destroyed) {
124
+ this.destroyed = true;
125
+ this._stopObservers();
126
+ // @ts-expect-error Clear the device to make sure we don't access it after destruction.
127
+ this.device = null;
128
+ }
129
+ }
130
+ setProps(props) {
131
+ if ('useDevicePixels' in props) {
132
+ this.props.useDevicePixels = props.useDevicePixels || false;
133
+ this._updateDrawingBufferSize();
134
+ }
135
+ return this;
136
+ }
137
+ /** Returns a framebuffer with properly resized current 'swap chain' textures */
138
+ getCurrentFramebuffer(options) {
139
+ this._resizeDrawingBufferIfNeeded();
140
+ return this._getCurrentFramebuffer(options);
141
+ }
142
+ getCSSSize() {
143
+ return [this.cssWidth, this.cssHeight];
144
+ }
145
+ getPosition() {
146
+ return this._position;
147
+ }
148
+ getDevicePixelSize() {
149
+ return [this.devicePixelWidth, this.devicePixelHeight];
150
+ }
151
+ getDrawingBufferSize() {
152
+ return [this.drawingBufferWidth, this.drawingBufferHeight];
153
+ }
154
+ getMaxDrawingBufferSize() {
155
+ const maxTextureDimension = this.device.limits.maxTextureDimension2D;
156
+ return [maxTextureDimension, maxTextureDimension];
157
+ }
158
+ setDrawingBufferSize(width, height) {
159
+ width = Math.floor(width);
160
+ height = Math.floor(height);
161
+ if (this.drawingBufferWidth === width && this.drawingBufferHeight === height) {
162
+ return;
163
+ }
164
+ this.drawingBufferWidth = width;
165
+ this.drawingBufferHeight = height;
166
+ this._needsDrawingBufferResize = true;
167
+ }
168
+ getDevicePixelRatio() {
169
+ const devicePixelRatio = typeof window !== 'undefined' && window.devicePixelRatio;
170
+ return devicePixelRatio || 1;
171
+ }
172
+ cssToDevicePixels(cssPixel, yInvert = true) {
173
+ const ratio = this.cssToDeviceRatio();
174
+ const [width, height] = this.getDrawingBufferSize();
175
+ return scalePixels(cssPixel, ratio, width, height, yInvert);
176
+ }
177
+ /** @deprecated - use .getDevicePixelSize() */
178
+ getPixelSize() {
179
+ return this.getDevicePixelSize();
180
+ }
181
+ /** @deprecated Use the current drawing buffer size for projection setup. */
182
+ getAspect() {
183
+ const [width, height] = this.getDrawingBufferSize();
184
+ return width > 0 && height > 0 ? width / height : 1;
185
+ }
186
+ /** @deprecated Returns multiplier need to convert CSS size to Device size */
187
+ cssToDeviceRatio() {
188
+ try {
189
+ const [drawingBufferWidth] = this.getDrawingBufferSize();
190
+ const [cssWidth] = this.getCSSSize();
191
+ return cssWidth ? drawingBufferWidth / cssWidth : 1;
192
+ }
193
+ catch {
194
+ return 1;
195
+ }
196
+ }
197
+ /** @deprecated Use canvasContext.setDrawingBufferSize() */
198
+ resize(size) {
199
+ this.setDrawingBufferSize(size.width, size.height);
200
+ }
201
+ _setAutoCreatedCanvasId(id) {
202
+ if (this.htmlCanvas?.id === 'lumagl-auto-created-canvas') {
203
+ this.htmlCanvas.id = id;
204
+ }
205
+ }
206
+ /**
207
+ * Starts DOM observation after the derived context and its device are fully initialized.
208
+ *
209
+ * `CanvasSurface` construction runs before subclasses can assign `this.device`, and the
210
+ * default WebGL canvas context is created before `WebGLDevice` has initialized `limits`,
211
+ * `features`, and the rest of its runtime state. Deferring observer startup avoids early
212
+ * `ResizeObserver` and DPR callbacks running against a partially initialized device.
213
+ */
214
+ _startObservers() {
215
+ if (this.destroyed) {
216
+ return;
217
+ }
218
+ this._canvasObserver.start();
219
+ }
220
+ /**
221
+ * Stops all DOM observation and timers associated with a canvas surface.
222
+ *
223
+ * This pairs with `_startObservers()` so teardown uses the same lifecycle whether a context is
224
+ * explicitly destroyed, abandoned during device reuse, or temporarily has not started observing
225
+ * yet. Centralizing shutdown here keeps resize/DPR/position watchers from surviving past the
226
+ * lifetime of the owning device.
227
+ */
228
+ _stopObservers() {
229
+ this._canvasObserver.stop();
230
+ }
231
+ _handleIntersection(entries) {
232
+ if (this.destroyed) {
233
+ return;
234
+ }
235
+ const entry = entries.find(entry_ => entry_.target === this.canvas);
236
+ if (!entry) {
237
+ return;
238
+ }
239
+ const isVisible = entry.isIntersecting;
240
+ if (this.isVisible !== isVisible) {
241
+ this.isVisible = isVisible;
242
+ this.device.props.onVisibilityChange(this);
243
+ }
244
+ }
245
+ _handleResize(entries) {
246
+ if (this.destroyed) {
247
+ return;
248
+ }
249
+ const entry = entries.find(entry_ => entry_.target === this.canvas);
250
+ if (!entry) {
251
+ return;
252
+ }
253
+ const contentBoxSize = assertDefined(entry.contentBoxSize?.[0]);
254
+ this.cssWidth = contentBoxSize.inlineSize;
255
+ this.cssHeight = contentBoxSize.blockSize;
256
+ const oldPixelSize = this.getDevicePixelSize();
257
+ const devicePixelWidth = entry.devicePixelContentBoxSize?.[0]?.inlineSize ||
258
+ contentBoxSize.inlineSize * devicePixelRatio;
259
+ const devicePixelHeight = entry.devicePixelContentBoxSize?.[0]?.blockSize ||
260
+ contentBoxSize.blockSize * devicePixelRatio;
261
+ const [maxDevicePixelWidth, maxDevicePixelHeight] = this.getMaxDrawingBufferSize();
262
+ this.devicePixelWidth = Math.max(1, Math.min(devicePixelWidth, maxDevicePixelWidth));
263
+ this.devicePixelHeight = Math.max(1, Math.min(devicePixelHeight, maxDevicePixelHeight));
264
+ this._updateDrawingBufferSize();
265
+ this.device.props.onResize(this, { oldPixelSize });
266
+ }
267
+ _updateDrawingBufferSize() {
268
+ if (this.props.autoResize) {
269
+ if (typeof this.props.useDevicePixels === 'number') {
270
+ const devicePixelRatio = this.props.useDevicePixels;
271
+ this.setDrawingBufferSize(this.cssWidth * devicePixelRatio, this.cssHeight * devicePixelRatio);
272
+ }
273
+ else if (this.props.useDevicePixels) {
274
+ this.setDrawingBufferSize(this.devicePixelWidth, this.devicePixelHeight);
275
+ }
276
+ else {
277
+ this.setDrawingBufferSize(this.cssWidth, this.cssHeight);
278
+ }
279
+ }
280
+ this._initializedResolvers.resolve();
281
+ this.isInitialized = true;
282
+ this.updatePosition();
283
+ }
284
+ _resizeDrawingBufferIfNeeded() {
285
+ if (this._needsDrawingBufferResize) {
286
+ this._needsDrawingBufferResize = false;
287
+ const sizeChanged = this.drawingBufferWidth !== this.canvas.width ||
288
+ this.drawingBufferHeight !== this.canvas.height;
289
+ if (sizeChanged) {
290
+ this.canvas.width = this.drawingBufferWidth;
291
+ this.canvas.height = this.drawingBufferHeight;
292
+ this._configureDevice();
293
+ }
294
+ }
295
+ }
296
+ _observeDevicePixelRatio() {
297
+ if (this.destroyed || !this._canvasObserver.started) {
298
+ return;
299
+ }
300
+ const oldRatio = this.devicePixelRatio;
301
+ this.devicePixelRatio = window.devicePixelRatio;
302
+ this.updatePosition();
303
+ this.device.props.onDevicePixelRatioChange?.(this, {
304
+ oldRatio
305
+ });
306
+ }
307
+ updatePosition() {
308
+ if (this.destroyed) {
309
+ return;
310
+ }
311
+ const newRect = this.htmlCanvas?.getBoundingClientRect();
312
+ if (newRect) {
313
+ const position = [newRect.left, newRect.top];
314
+ this._position ??= position;
315
+ const positionChanged = position[0] !== this._position[0] || position[1] !== this._position[1];
316
+ if (positionChanged) {
317
+ const oldPosition = this._position;
318
+ this._position = position;
319
+ this.device.props.onPositionChange?.(this, {
320
+ oldPosition
321
+ });
322
+ }
323
+ }
324
+ }
325
+ }
326
+ function getContainer(container) {
327
+ if (typeof container === 'string') {
328
+ const element = document.getElementById(container);
329
+ if (!element) {
330
+ throw new Error(`${container} is not an HTML element`);
331
+ }
332
+ return element;
333
+ }
334
+ if (container) {
335
+ return container;
336
+ }
337
+ return document.body;
338
+ }
339
+ function getCanvasFromDOM(canvasId) {
340
+ const canvas = document.getElementById(canvasId);
341
+ if (!CanvasSurface.isHTMLCanvas(canvas)) {
342
+ throw new Error('Object is not a canvas element');
343
+ }
344
+ return canvas;
345
+ }
346
+ function createCanvasElement(props) {
347
+ const { width, height } = props;
348
+ const newCanvas = document.createElement('canvas');
349
+ newCanvas.id = uid('lumagl-auto-created-canvas');
350
+ newCanvas.width = width || 1;
351
+ newCanvas.height = height || 1;
352
+ newCanvas.style.width = Number.isFinite(width) ? `${width}px` : '100%';
353
+ newCanvas.style.height = Number.isFinite(height) ? `${height}px` : '100%';
354
+ if (!props?.visible) {
355
+ newCanvas.style.visibility = 'hidden';
356
+ }
357
+ const container = getContainer(props?.container || null);
358
+ container.insertBefore(newCanvas, container.firstChild);
359
+ return newCanvas;
360
+ }
361
+ function scalePixels(pixel, ratio, width, height, yInvert) {
362
+ const point = pixel;
363
+ const x = scaleX(point[0], ratio, width);
364
+ let y = scaleY(point[1], ratio, height, yInvert);
365
+ let temporary = scaleX(point[0] + 1, ratio, width);
366
+ const xHigh = temporary === width - 1 ? temporary : temporary - 1;
367
+ temporary = scaleY(point[1] + 1, ratio, height, yInvert);
368
+ let yHigh;
369
+ if (yInvert) {
370
+ temporary = temporary === 0 ? temporary : temporary + 1;
371
+ yHigh = y;
372
+ y = temporary;
373
+ }
374
+ else {
375
+ yHigh = temporary === height - 1 ? temporary : temporary - 1;
376
+ }
377
+ return {
378
+ x,
379
+ y,
380
+ width: Math.max(xHigh - x + 1, 1),
381
+ height: Math.max(yHigh - y + 1, 1)
382
+ };
383
+ }
384
+ function scaleX(x, ratio, width) {
385
+ return Math.min(Math.round(x * ratio), width - 1);
386
+ }
387
+ function scaleY(y, ratio, height, yInvert) {
388
+ return yInvert
389
+ ? Math.max(0, height - 1 - Math.round(y * ratio))
390
+ : Math.min(Math.round(y * ratio), height - 1);
391
+ }
392
+ //# sourceMappingURL=canvas-surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-surface.js","sourceRoot":"","sources":["../../src/adapter/canvas-surface.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import { StatsManager } from "../utils/stats-manager.js";
2
2
  import type { VertexFormat, VertexFormatInfo } from "../shadertypes/vertex-arrays/vertex-formats.js";
3
- import type { TextureFormat, TextureFormatInfo } from "../shadertypes/textures/texture-formats.js";
3
+ import type { TextureFormat, TextureFormatInfo, CompressedTextureFormat } from "../shadertypes/textures/texture-formats.js";
4
4
  import type { CanvasContext, CanvasContextProps } from "./canvas-context.js";
5
+ import type { PresentationContext, PresentationContextProps } from "./presentation-context.js";
5
6
  import type { BufferProps } from "./resources/buffer.js";
6
7
  import { Buffer } from "./resources/buffer.js";
7
8
  import type { RenderPipeline, RenderPipelineProps } from "./resources/render-pipeline.js";
9
+ import type { SharedRenderPipeline } from "./resources/shared-render-pipeline.js";
8
10
  import type { ComputePipeline, ComputePipelineProps } from "./resources/compute-pipeline.js";
9
11
  import type { Sampler, SamplerProps } from "./resources/sampler.js";
10
12
  import type { Shader, ShaderProps } from "./resources/shader.js";
@@ -117,7 +119,7 @@ export declare class DeviceFeatures {
117
119
  export type DeviceFeature = WebGPUDeviceFeature | WebGLDeviceFeature | WebGLCompressedTextureFeatures;
118
120
  /** Chrome-specific extensions. Expected to eventually become standard features. */
119
121
  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';
120
- 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';
122
+ export type WebGLDeviceFeature = '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-webgl' | 'norm16-renderable-webgl' | 'snorm16-renderable-webgl' | 'float16-filterable-webgl' | 'texture-filterable-anisotropic-webgl' | 'bgra8unorm-storage' | 'texture-blend-float-webgl';
121
123
  type WebGLCompressedTextureFeatures = 'texture-compression-bc5-webgl' | 'texture-compression-bc7-webgl' | 'texture-compression-etc1-webgl' | 'texture-compression-pvrtc-webgl' | 'texture-compression-atc-webgl';
122
124
  /** Texture format capabilities that have been checked against a specific device */
123
125
  export type DeviceTextureFormatCapabilities = {
@@ -148,21 +150,23 @@ export type DeviceProps = {
148
150
  /** 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. */
149
151
  onError?: (error: Error, context?: unknown) => unknown;
150
152
  /** Called when the size of a CanvasContext's canvas changes */
151
- onResize?: (ctx: CanvasContext, info: {
153
+ onResize?: (ctx: CanvasContext | PresentationContext, info: {
152
154
  oldPixelSize: [number, number];
153
155
  }) => unknown;
154
156
  /** Called when the absolute position of a CanvasContext's canvas changes. Must set `CanvasContextProps.trackPosition: true` */
155
- onPositionChange?: (ctx: CanvasContext, info: {
157
+ onPositionChange?: (ctx: CanvasContext | PresentationContext, info: {
156
158
  oldPosition: [number, number];
157
159
  }) => unknown;
158
160
  /** Called when the visibility of a CanvasContext's canvas changes */
159
- onVisibilityChange?: (ctx: CanvasContext) => unknown;
161
+ onVisibilityChange?: (ctx: CanvasContext | PresentationContext) => unknown;
160
162
  /** Called when the device pixel ratio of a CanvasContext's canvas changes */
161
- onDevicePixelRatioChange?: (ctx: CanvasContext, info: {
163
+ onDevicePixelRatioChange?: (ctx: CanvasContext | PresentationContext, info: {
162
164
  oldRatio: number;
163
165
  }) => unknown;
164
166
  /** Turn on implementation defined checks that slow down execution but help break where errors occur */
165
167
  debug?: boolean;
168
+ /** Enable GPU timestamp collection without enabling all debug validation paths. */
169
+ debugGPUTime?: boolean;
166
170
  /** Show shader source in browser? The default is `'error'`, meaning that logs are shown when shader compilation has errors */
167
171
  debugShaders?: 'never' | 'errors' | 'warnings' | 'always';
168
172
  /** Renders a small version of updated Framebuffers into the primary canvas context. Can be set in console luma.log.set('debug-framebuffers', true) */
@@ -185,10 +189,22 @@ export type DeviceProps = {
185
189
  _initializeFeatures?: boolean;
186
190
  /** Enable shader caching (via ShaderFactory) */
187
191
  _cacheShaders?: boolean;
188
- /** Enable shader caching (via PipelineFactory) */
192
+ /**
193
+ * Destroy cached shaders when they become unused.
194
+ * Defaults to `false` so repeated create/destroy cycles can still reuse cached shaders.
195
+ * Enable this if the application creates very large numbers of distinct shaders and needs cache eviction.
196
+ */
197
+ _destroyShaders?: boolean;
198
+ /** Enable pipeline caching (via PipelineFactory) */
189
199
  _cachePipelines?: boolean;
190
- /** Never destroy cached shaders and pipelines */
191
- _cacheDestroyPolicy?: 'unused' | 'never';
200
+ /** Enable sharing of backend render-pipeline implementations when caching is enabled. Currently used by WebGL. */
201
+ _sharePipelines?: boolean;
202
+ /**
203
+ * Destroy cached pipelines when they become unused.
204
+ * Defaults to `false` so repeated create/destroy cycles can still reuse cached pipelines.
205
+ * Enable this if the application creates very large numbers of distinct pipelines and needs cache eviction.
206
+ */
207
+ _destroyPipelines?: boolean;
192
208
  /** @deprecated Internal, Do not use directly! Use `luma.attachDevice()` to attach to pre-created contexts/devices. */
193
209
  _handle?: unknown;
194
210
  };
@@ -260,6 +276,8 @@ export declare abstract class Device {
260
276
  /** Default depth format used on this system */
261
277
  abstract preferredDepthFormat: 'depth16' | 'depth24plus' | 'depth32float';
262
278
  protected _textureCaps: Partial<Record<TextureFormat, DeviceTextureFormatCapabilities>>;
279
+ /** Internal timestamp query set used when GPU timing collection is enabled for this device. */
280
+ protected _debugGPUTimeQuery: QuerySet | null;
263
281
  constructor(props: DeviceProps);
264
282
  abstract destroy(): void;
265
283
  getVertexFormatInfo(format: VertexFormat): VertexFormatInfo;
@@ -285,6 +303,8 @@ export declare abstract class Device {
285
303
  isTextureFormatRenderable(format: TextureFormat): boolean;
286
304
  /** Check if a specific texture format is GPU compressed */
287
305
  isTextureFormatCompressed(format: TextureFormat): boolean;
306
+ /** Returns the compressed texture formats that can be created and sampled on this device */
307
+ getSupportedCompressedTextureFormats(): CompressedTextureFormat[];
288
308
  pushDebugGroup(groupLabel: string): void;
289
309
  popDebugGroup(): void;
290
310
  insertDebugMarker(markerLabel: string): void;
@@ -329,6 +349,8 @@ export declare abstract class Device {
329
349
  getDefaultCanvasContext(): CanvasContext;
330
350
  /** Creates a new CanvasContext (WebGPU only) */
331
351
  abstract createCanvasContext(props?: CanvasContextProps): CanvasContext;
352
+ /** Creates a presentation context for a destination canvas. WebGL requires the default canvas context to use an OffscreenCanvas. */
353
+ abstract createPresentationContext(props?: PresentationContextProps): PresentationContext;
332
354
  /** Call after rendering a frame (necessary e.g. on WebGL OffscreenCanvas) */
333
355
  abstract submit(commandBuffer?: CommandBuffer): void;
334
356
  /** Create a buffer */
@@ -359,6 +381,34 @@ export declare abstract class Device {
359
381
  beginRenderPass(props?: RenderPassProps): RenderPass;
360
382
  /** Create a ComputePass using the default CommandEncoder*/
361
383
  beginComputePass(props?: ComputePassProps): ComputePass;
384
+ /**
385
+ * Generate mipmaps for a WebGPU texture.
386
+ * WebGPU textures must be created up front with the required mip count, usage flags, and a format that supports the chosen generation path.
387
+ * WebGL uses `Texture.generateMipmapsWebGL()` directly because the backend manages mip generation on the texture object itself.
388
+ */
389
+ generateMipmapsWebGPU(_texture: Texture): void;
390
+ /** Internal helper for creating a shareable WebGL render-pipeline implementation. */
391
+ _createSharedRenderPipelineWebGL(_props: RenderPipelineProps): SharedRenderPipeline;
392
+ /**
393
+ * Internal helper that returns `true` when timestamp-query GPU timing should be
394
+ * collected for this device.
395
+ */
396
+ _supportsDebugGPUTime(): boolean;
397
+ /**
398
+ * Internal helper that enables device-managed GPU timing collection on the
399
+ * default command encoder. Reuses the existing query set if timing is already enabled.
400
+ *
401
+ * @param queryCount - Number of timestamp slots reserved for profiled passes.
402
+ * @returns The device-managed timestamp QuerySet, or `null` when timing is not supported or could not be enabled.
403
+ */
404
+ _enableDebugGPUTime(queryCount?: number): QuerySet | null;
405
+ /**
406
+ * Internal helper that disables device-managed GPU timing collection and restores
407
+ * the default command encoder to an unprofiled state.
408
+ */
409
+ _disableDebugGPUTime(): void;
410
+ /** Internal helper that returns `true` when device-managed GPU timing is currently active. */
411
+ _isDebugGPUTimeEnabled(): boolean;
362
412
  /**
363
413
  * Determines what operations are supported on a texture format, checking against supported device features
364
414
  * Subclasses override to apply additional checks
@@ -410,5 +460,10 @@ export declare abstract class Device {
410
460
  /** Subclasses use this to support .createBuffer() overloads */
411
461
  protected _normalizeBufferProps(props: BufferProps | ArrayBuffer | ArrayBufferView): BufferProps;
412
462
  }
463
+ /**
464
+ * Internal helper for resolving the default `debug` prop.
465
+ * Precedence is: explicit log debug value first, then `NODE_ENV`, then `false`.
466
+ */
467
+ export declare function _getDefaultDebugValue(logDebugValue: unknown, nodeEnv?: string): boolean;
413
468
  export {};
414
469
  //# 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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"}