@luma.gl/core 9.3.3 → 9.3.5

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.
@@ -1,18 +1,29 @@
1
+ /** Options and callbacks used by {@link CanvasObserver}. */
1
2
  type CanvasObserverProps = {
3
+ /** HTML canvas element whose DOM lifecycle should be observed. */
2
4
  canvas?: HTMLCanvasElement;
5
+ /** Whether to poll for canvas position changes. */
3
6
  trackPosition: boolean;
7
+ /** ResizeObserver box type passed to `observe()`. */
8
+ resizeObserverBox: ResizeObserverBoxOptions;
9
+ /** Called with ResizeObserver entries for the observed canvas. */
4
10
  onResize: (entries: ResizeObserverEntry[]) => void;
11
+ /** Called with IntersectionObserver entries for the observed canvas. */
5
12
  onIntersection: (entries: IntersectionObserverEntry[]) => void;
13
+ /** Called when the window device pixel ratio may have changed. */
6
14
  onDevicePixelRatioChange: () => void;
15
+ /** Called while canvas position tracking is enabled. */
7
16
  onPositionChange: () => void;
8
17
  };
9
18
  /**
10
19
  * Internal DOM observer orchestration for HTML canvas surfaces.
11
20
  *
21
+ * @remarks
12
22
  * CanvasSurface owns the tracked state and device callback dispatch. This helper only manages
13
23
  * browser observers, timers, and polling loops, then reports events through callbacks.
14
24
  */
15
25
  export declare class CanvasObserver {
26
+ /** Observer options and event callbacks. */
16
27
  readonly props: CanvasObserverProps;
17
28
  private _resizeObserver;
18
29
  private _intersectionObserver;
@@ -21,11 +32,25 @@ export declare class CanvasObserver {
21
32
  private readonly _handleDevicePixelRatioChange;
22
33
  private _trackPositionInterval;
23
34
  private _started;
35
+ /** Whether the DOM observers and polling loops have been started. */
24
36
  get started(): boolean;
37
+ /**
38
+ * Creates an observer coordinator for one HTML canvas.
39
+ *
40
+ * @param props - Observer options and event callbacks.
41
+ */
25
42
  constructor(props: CanvasObserverProps);
43
+ /** Starts DOM observation and optional position polling. */
26
44
  start(): void;
45
+ /** Stops DOM observation, media-query listeners, and position polling. */
27
46
  stop(): void;
47
+ /** Reports the current device pixel ratio and arms the media query for its next change. */
28
48
  private _refreshDevicePixelRatio;
49
+ /**
50
+ * Starts periodic position callbacks while the observer remains active.
51
+ *
52
+ * @param intervalMs - Poll interval in milliseconds.
53
+ */
29
54
  private _trackPosition;
30
55
  }
31
56
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-observer.d.ts","sourceRoot":"","sources":["../../src/adapter/canvas-observer.ts"],"names":[],"mappings":"AAIA,KAAK,mBAAmB,GAAG;IACzB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IACnD,cAAc,EAAE,CAAC,OAAO,EAAE,yBAAyB,EAAE,KAAK,IAAI,CAAC;IAC/D,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IAEpC,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,qBAAqB,CAAmC;IAChE,OAAO,CAAC,+BAA+B,CAA8C;IACrF,OAAO,CAAC,kCAAkC,CAA+B;IACzE,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAyC;IACvF,OAAO,CAAC,sBAAsB,CAA+C;IAC7E,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,OAAO,IAAI,OAAO,CAErB;gBAEW,KAAK,EAAE,mBAAmB;IAItC,KAAK,IAAI,IAAI;IAyBb,IAAI,IAAI,IAAI;IA6BZ,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,cAAc;CAgBvB"}
1
+ {"version":3,"file":"canvas-observer.d.ts","sourceRoot":"","sources":["../../src/adapter/canvas-observer.ts"],"names":[],"mappings":"AAIA,4DAA4D;AAC5D,KAAK,mBAAmB,GAAG;IACzB,kEAAkE;IAClE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,mDAAmD;IACnD,aAAa,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,kEAAkE;IAClE,QAAQ,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IACnD,wEAAwE;IACxE,cAAc,EAAE,CAAC,OAAO,EAAE,yBAAyB,EAAE,KAAK,IAAI,CAAC;IAC/D,kEAAkE;IAClE,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IAEpC,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,qBAAqB,CAAmC;IAChE,OAAO,CAAC,+BAA+B,CAA8C;IACrF,OAAO,CAAC,kCAAkC,CAA+B;IACzE,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAyC;IACvF,OAAO,CAAC,sBAAsB,CAA+C;IAC7E,OAAO,CAAC,QAAQ,CAAS;IAEzB,qEAAqE;IACrE,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;gBACS,KAAK,EAAE,mBAAmB;IAItC,4DAA4D;IAC5D,KAAK,IAAI,IAAI;IA0Bb,0EAA0E;IAC1E,IAAI,IAAI,IAAI;IA6BZ,2FAA2F;IAC3F,OAAO,CAAC,wBAAwB;IAqBhC;;;;OAIG;IACH,OAAO,CAAC,cAAc;CAgBvB"}
@@ -4,10 +4,12 @@
4
4
  /**
5
5
  * Internal DOM observer orchestration for HTML canvas surfaces.
6
6
  *
7
+ * @remarks
7
8
  * CanvasSurface owns the tracked state and device callback dispatch. This helper only manages
8
9
  * browser observers, timers, and polling loops, then reports events through callbacks.
9
10
  */
10
11
  export class CanvasObserver {
12
+ /** Observer options and event callbacks. */
11
13
  props;
12
14
  _resizeObserver;
13
15
  _intersectionObserver;
@@ -16,12 +18,19 @@ export class CanvasObserver {
16
18
  _handleDevicePixelRatioChange = () => this._refreshDevicePixelRatio();
17
19
  _trackPositionInterval = null;
18
20
  _started = false;
21
+ /** Whether the DOM observers and polling loops have been started. */
19
22
  get started() {
20
23
  return this._started;
21
24
  }
25
+ /**
26
+ * Creates an observer coordinator for one HTML canvas.
27
+ *
28
+ * @param props - Observer options and event callbacks.
29
+ */
22
30
  constructor(props) {
23
31
  this.props = props;
24
32
  }
33
+ /** Starts DOM observation and optional position polling. */
25
34
  start() {
26
35
  if (this._started || !this.props.canvas) {
27
36
  return;
@@ -30,8 +39,9 @@ export class CanvasObserver {
30
39
  this._intersectionObserver ||= new IntersectionObserver(entries => this.props.onIntersection(entries));
31
40
  this._resizeObserver ||= new ResizeObserver(entries => this.props.onResize(entries));
32
41
  this._intersectionObserver.observe(this.props.canvas);
42
+ const box = this.props.resizeObserverBox;
33
43
  try {
34
- this._resizeObserver.observe(this.props.canvas, { box: 'device-pixel-content-box' });
44
+ this._resizeObserver.observe(this.props.canvas, { box });
35
45
  }
36
46
  catch {
37
47
  this._resizeObserver.observe(this.props.canvas, { box: 'content-box' });
@@ -41,6 +51,7 @@ export class CanvasObserver {
41
51
  this._trackPosition();
42
52
  }
43
53
  }
54
+ /** Stops DOM observation, media-query listeners, and position polling. */
44
55
  stop() {
45
56
  if (!this._started) {
46
57
  return;
@@ -61,6 +72,7 @@ export class CanvasObserver {
61
72
  this._resizeObserver?.disconnect();
62
73
  this._intersectionObserver?.disconnect();
63
74
  }
75
+ /** Reports the current device pixel ratio and arms the media query for its next change. */
64
76
  _refreshDevicePixelRatio() {
65
77
  if (!this._started) {
66
78
  return;
@@ -70,6 +82,11 @@ export class CanvasObserver {
70
82
  this._observeDevicePixelRatioMediaQuery = matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);
71
83
  this._observeDevicePixelRatioMediaQuery.addEventListener('change', this._handleDevicePixelRatioChange, { once: true });
72
84
  }
85
+ /**
86
+ * Starts periodic position callbacks while the observer remains active.
87
+ *
88
+ * @param intervalMs - Poll interval in milliseconds.
89
+ */
73
90
  _trackPosition(intervalMs = 100) {
74
91
  if (this._trackPositionInterval) {
75
92
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-observer.js","sourceRoot":"","sources":["../../src/adapter/canvas-observer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-observer.js","sourceRoot":"","sources":["../../src/adapter/canvas-observer.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,15 @@ export type CanvasContextProps = {
18
18
  visible?: boolean;
19
19
  /** Whether to size the drawing buffer to the pixel size during auto resize. If a number is provided it is used as a static pixel ratio */
20
20
  useDevicePixels?: boolean | number;
21
+ /**
22
+ * How to derive the tracked device pixel size for HTML canvases when auto-resizing.
23
+ *
24
+ * - `'exact'` uses `ResizeObserver.devicePixelContentBoxSize` when available to match the
25
+ * browser's exact physical pixel coverage.
26
+ * - `'css-dpr'` uses `Math.floor(cssSize * devicePixelRatio)` to match overlays and external
27
+ * canvases that size their drawing buffer via implicit truncation (e.g. `canvas.width = css * dpr`).
28
+ */
29
+ pixelSizeSource?: 'exact' | 'css-dpr';
21
30
  /** Whether to track window resizes. */
22
31
  autoResize?: boolean;
23
32
  /** @see https://developer.mozilla.org/en-US/docs/Web/API/GPUCanvasContext/configure#alphamode */
@@ -31,6 +40,10 @@ export type MutableCanvasContextProps = {
31
40
  /** Whether to size the drawing buffer to the pixel size during auto resize. If a number is provided it is used as a static pixel ratio */
32
41
  useDevicePixels?: boolean | number;
33
42
  };
43
+ type DevicePixelSize = {
44
+ devicePixelWidth: number;
45
+ devicePixelHeight: number;
46
+ };
34
47
  /**
35
48
  * Shared tracked-canvas lifecycle used by both renderable and presentation contexts.
36
49
  * - Creates a new canvas or looks up a canvas from the DOM
@@ -143,8 +156,12 @@ export declare abstract class CanvasSurface {
143
156
  protected _handleIntersection(entries: IntersectionObserverEntry[]): void;
144
157
  protected _handleResize(entries: ResizeObserverEntry[]): void;
145
158
  protected _updateDrawingBufferSize(): void;
159
+ protected _getDevicePixelSizeFromResizeEntry(entry: ResizeObserverEntry): DevicePixelSize;
160
+ protected _getDevicePixelSizeFromCSSSize(cssWidth: number, cssHeight: number): DevicePixelSize;
161
+ protected _setDevicePixelSize({ devicePixelWidth, devicePixelHeight }: DevicePixelSize): void;
146
162
  _resizeDrawingBufferIfNeeded(): void;
147
163
  _observeDevicePixelRatio(): void;
148
164
  updatePosition(): void;
149
165
  }
166
+ export {};
150
167
  //# sourceMappingURL=canvas-surface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-surface.d.ts","sourceRoot":"","sources":["../../src/adapter/canvas-surface.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,MAAM,EAAC,oBAAiB;AAErC,OAAO,EAAC,cAAc,EAAC,6BAA0B;AAEjD,OAAO,KAAK,EAAC,WAAW,EAAC,mCAAgC;AACzD,OAAO,KAAK,EAAC,yBAAyB,EAAC,wDAAqD;AAK5F,qCAAqC;AACrC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gCAAgC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0IAA0I;IAC1I,MAAM,CAAC,EAAE,iBAAiB,GAAG,eAAe,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7D,iIAAiI;IACjI,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IACxC,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0IAA0I;IAC1I,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iGAAiG;IACjG,SAAS,CAAC,EAAE,QAAQ,GAAG,eAAe,CAAC;IACvC,kGAAkG;IAClG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,0IAA0I;IAC1I,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACpC,CAAC;AAEF;;;;;;GAMG;AACH,8BAAsB,aAAa;IACjC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,iBAAiB;IAIjE,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,eAAe;IAIpE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAY/C;IAEF,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACrD,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;IACxC,wCAAwC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,kBAAkB,GAAG,MAAM,CAAC;IAE3D,gFAAgF;IAChF,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAS;IAE/B,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAQ;IAE1B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAElB,kEAAkE;IAClE,gBAAgB,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,gBAAgB,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,iBAAiB,EAAE,MAAM,CAAC;IAE1B,gGAAgG;IAChG,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kGAAkG;IAClG,mBAAmB,EAAE,MAAM,CAAC;IAE5B,uGAAuG;IACvG,SAAS,CAAC,qBAAqB;;;;MAAyB;IACxD,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC;IAC1C,iEAAiE;IACjE,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAU;IAC/C,qDAAqD;IACrD,SAAS,CAAC,SAAS,UAAS;IAC5B,+FAA+F;IAC/F,SAAS,CAAC,yBAAyB,EAAE,OAAO,CAAQ;IAEpD,QAAQ,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC;IAE5C,QAAQ,IAAI,MAAM;gBAIN,KAAK,CAAC,EAAE,kBAAkB;IA+CtC,OAAO;IASP,QAAQ,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI;IAQhD,gFAAgF;IAChF,qBAAqB,CAAC,OAAO,CAAC,EAAE;QAC9B,kBAAkB,CAAC,EAAE,yBAAyB,GAAG,KAAK,CAAC;KACxD,GAAG,WAAW;IAKf,UAAU,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9B,WAAW;IAIX,kBAAkB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAItC,oBAAoB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAIxC,uBAAuB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAK3C,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAWlD,mBAAmB,IAAI,MAAM;IAK7B,iBAAiB,CACf,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,OAAO,GAAE,OAAc,GACtB;QACD,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB;IAMD,8CAA8C;IAC9C,YAAY;IAIZ,4EAA4E;IAC5E,SAAS,IAAI,MAAM;IAKnB,6EAA6E;IAC7E,gBAAgB,IAAI,MAAM;IAU1B,2DAA2D;IAC3D,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAInD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,IAAI;IAE3C,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE;QAClD,kBAAkB,CAAC,EAAE,yBAAyB,GAAG,KAAK,CAAC;KACxD,GAAG,WAAW;IAEf,SAAS,CAAC,uBAAuB,CAAC,EAAE,EAAE,MAAM;IAM5C;;;;;;;OAOG;IACH,eAAe,IAAI,IAAI;IAOvB;;;;;;;OAOG;IACH,cAAc,IAAI,IAAI;IAItB,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,yBAAyB,EAAE;IAgBlE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,mBAAmB,EAAE;IAiCtD,SAAS,CAAC,wBAAwB;IAqBlC,4BAA4B;IAc5B,wBAAwB;IAcxB,cAAc;CAmBf"}
1
+ {"version":3,"file":"canvas-surface.d.ts","sourceRoot":"","sources":["../../src/adapter/canvas-surface.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ export class CanvasSurface {
26
26
  width: 800,
27
27
  height: 600,
28
28
  useDevicePixels: true,
29
+ pixelSizeSource: 'exact',
29
30
  autoResize: true,
30
31
  container: null,
31
32
  visible: true,
@@ -113,6 +114,7 @@ export class CanvasSurface {
113
114
  this._canvasObserver = new CanvasObserver({
114
115
  canvas: this.htmlCanvas,
115
116
  trackPosition: this.props.trackPosition,
117
+ resizeObserverBox: this.props.pixelSizeSource === 'css-dpr' ? 'content-box' : 'device-pixel-content-box',
116
118
  onResize: entries => this._handleResize(entries),
117
119
  onIntersection: entries => this._handleIntersection(entries),
118
120
  onDevicePixelRatioChange: () => this._observeDevicePixelRatio(),
@@ -254,13 +256,7 @@ export class CanvasSurface {
254
256
  this.cssWidth = contentBoxSize.inlineSize;
255
257
  this.cssHeight = contentBoxSize.blockSize;
256
258
  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));
259
+ this._setDevicePixelSize(this._getDevicePixelSizeFromResizeEntry(entry));
264
260
  this._updateDrawingBufferSize();
265
261
  this.device.props.onResize(this, { oldPixelSize });
266
262
  }
@@ -281,6 +277,30 @@ export class CanvasSurface {
281
277
  this.isInitialized = true;
282
278
  this.updatePosition();
283
279
  }
280
+ _getDevicePixelSizeFromResizeEntry(entry) {
281
+ const contentBoxSize = assertDefined(entry.contentBoxSize?.[0]);
282
+ if (this.props.pixelSizeSource === 'css-dpr') {
283
+ return this._getDevicePixelSizeFromCSSSize(contentBoxSize.inlineSize, contentBoxSize.blockSize);
284
+ }
285
+ return {
286
+ devicePixelWidth: entry.devicePixelContentBoxSize?.[0]?.inlineSize ||
287
+ contentBoxSize.inlineSize * devicePixelRatio,
288
+ devicePixelHeight: entry.devicePixelContentBoxSize?.[0]?.blockSize ||
289
+ contentBoxSize.blockSize * devicePixelRatio
290
+ };
291
+ }
292
+ _getDevicePixelSizeFromCSSSize(cssWidth, cssHeight) {
293
+ const devicePixelRatio = this.getDevicePixelRatio();
294
+ return {
295
+ devicePixelWidth: Math.floor(cssWidth * devicePixelRatio),
296
+ devicePixelHeight: Math.floor(cssHeight * devicePixelRatio)
297
+ };
298
+ }
299
+ _setDevicePixelSize({ devicePixelWidth, devicePixelHeight }) {
300
+ const [maxDevicePixelWidth, maxDevicePixelHeight] = this.getMaxDrawingBufferSize();
301
+ this.devicePixelWidth = Math.max(1, Math.min(devicePixelWidth, maxDevicePixelWidth));
302
+ this.devicePixelHeight = Math.max(1, Math.min(devicePixelHeight, maxDevicePixelHeight));
303
+ }
284
304
  _resizeDrawingBufferIfNeeded() {
285
305
  if (this._needsDrawingBufferResize) {
286
306
  this._needsDrawingBufferResize = false;
@@ -299,6 +319,14 @@ export class CanvasSurface {
299
319
  }
300
320
  const oldRatio = this.devicePixelRatio;
301
321
  this.devicePixelRatio = window.devicePixelRatio;
322
+ if (this.props.pixelSizeSource === 'css-dpr') {
323
+ // In css-dpr mode the ResizeObserver watches content-box, which won't fire on a pure DPR
324
+ // change (CSS size unchanged). Recalculate the drawing buffer from the new DPR here.
325
+ const oldPixelSize = this.getDevicePixelSize();
326
+ this._setDevicePixelSize(this._getDevicePixelSizeFromCSSSize(this.cssWidth, this.cssHeight));
327
+ this._updateDrawingBufferSize();
328
+ this.device.props.onResize(this, { oldPixelSize });
329
+ }
302
330
  this.updatePosition();
303
331
  this.device.props.onDevicePixelRatioChange?.(this, {
304
332
  oldRatio
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-surface.js","sourceRoot":"","sources":["../../src/adapter/canvas-surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-surface.js","sourceRoot":"","sources":["../../src/adapter/canvas-surface.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ export class Luma {
32
32
  VERSION =
33
33
  // Version detection using build plugin
34
34
  // @ts-expect-error no-undef
35
- typeof "9.3.3" !== 'undefined' ? "9.3.3" : 'running from source';
35
+ typeof "9.3.5" !== 'undefined' ? "9.3.5" : 'running from source';
36
36
  spector;
37
37
  preregisteredAdapters = new Map();
38
38
  constructor() {
package/dist/dist.dev.js CHANGED
@@ -2584,6 +2584,7 @@ or create a device with the 'debug: true' prop.`;
2584
2584
 
2585
2585
  // src/adapter/canvas-observer.ts
2586
2586
  var CanvasObserver = class {
2587
+ /** Observer options and event callbacks. */
2587
2588
  props;
2588
2589
  _resizeObserver;
2589
2590
  _intersectionObserver;
@@ -2592,12 +2593,19 @@ or create a device with the 'debug: true' prop.`;
2592
2593
  _handleDevicePixelRatioChange = () => this._refreshDevicePixelRatio();
2593
2594
  _trackPositionInterval = null;
2594
2595
  _started = false;
2596
+ /** Whether the DOM observers and polling loops have been started. */
2595
2597
  get started() {
2596
2598
  return this._started;
2597
2599
  }
2600
+ /**
2601
+ * Creates an observer coordinator for one HTML canvas.
2602
+ *
2603
+ * @param props - Observer options and event callbacks.
2604
+ */
2598
2605
  constructor(props) {
2599
2606
  this.props = props;
2600
2607
  }
2608
+ /** Starts DOM observation and optional position polling. */
2601
2609
  start() {
2602
2610
  if (this._started || !this.props.canvas) {
2603
2611
  return;
@@ -2608,8 +2616,9 @@ or create a device with the 'debug: true' prop.`;
2608
2616
  );
2609
2617
  this._resizeObserver ||= new ResizeObserver((entries) => this.props.onResize(entries));
2610
2618
  this._intersectionObserver.observe(this.props.canvas);
2619
+ const box = this.props.resizeObserverBox;
2611
2620
  try {
2612
- this._resizeObserver.observe(this.props.canvas, { box: "device-pixel-content-box" });
2621
+ this._resizeObserver.observe(this.props.canvas, { box });
2613
2622
  } catch {
2614
2623
  this._resizeObserver.observe(this.props.canvas, { box: "content-box" });
2615
2624
  }
@@ -2618,6 +2627,7 @@ or create a device with the 'debug: true' prop.`;
2618
2627
  this._trackPosition();
2619
2628
  }
2620
2629
  }
2630
+ /** Stops DOM observation, media-query listeners, and position polling. */
2621
2631
  stop() {
2622
2632
  if (!this._started) {
2623
2633
  return;
@@ -2641,6 +2651,7 @@ or create a device with the 'debug: true' prop.`;
2641
2651
  this._resizeObserver?.disconnect();
2642
2652
  this._intersectionObserver?.disconnect();
2643
2653
  }
2654
+ /** Reports the current device pixel ratio and arms the media query for its next change. */
2644
2655
  _refreshDevicePixelRatio() {
2645
2656
  if (!this._started) {
2646
2657
  return;
@@ -2659,6 +2670,11 @@ or create a device with the 'debug: true' prop.`;
2659
2670
  { once: true }
2660
2671
  );
2661
2672
  }
2673
+ /**
2674
+ * Starts periodic position callbacks while the observer remains active.
2675
+ *
2676
+ * @param intervalMs - Poll interval in milliseconds.
2677
+ */
2662
2678
  _trackPosition(intervalMs = 100) {
2663
2679
  if (this._trackPositionInterval) {
2664
2680
  return;
@@ -2783,6 +2799,7 @@ or create a device with the 'debug: true' prop.`;
2783
2799
  this._canvasObserver = new CanvasObserver({
2784
2800
  canvas: this.htmlCanvas,
2785
2801
  trackPosition: this.props.trackPosition,
2802
+ resizeObserverBox: this.props.pixelSizeSource === "css-dpr" ? "content-box" : "device-pixel-content-box",
2786
2803
  onResize: (entries) => this._handleResize(entries),
2787
2804
  onIntersection: (entries) => this._handleIntersection(entries),
2788
2805
  onDevicePixelRatioChange: () => this._observeDevicePixelRatio(),
@@ -2922,11 +2939,7 @@ or create a device with the 'debug: true' prop.`;
2922
2939
  this.cssWidth = contentBoxSize.inlineSize;
2923
2940
  this.cssHeight = contentBoxSize.blockSize;
2924
2941
  const oldPixelSize = this.getDevicePixelSize();
2925
- const devicePixelWidth = entry.devicePixelContentBoxSize?.[0]?.inlineSize || contentBoxSize.inlineSize * devicePixelRatio;
2926
- const devicePixelHeight = entry.devicePixelContentBoxSize?.[0]?.blockSize || contentBoxSize.blockSize * devicePixelRatio;
2927
- const [maxDevicePixelWidth, maxDevicePixelHeight] = this.getMaxDrawingBufferSize();
2928
- this.devicePixelWidth = Math.max(1, Math.min(devicePixelWidth, maxDevicePixelWidth));
2929
- this.devicePixelHeight = Math.max(1, Math.min(devicePixelHeight, maxDevicePixelHeight));
2942
+ this._setDevicePixelSize(this._getDevicePixelSizeFromResizeEntry(entry));
2930
2943
  this._updateDrawingBufferSize();
2931
2944
  this.device.props.onResize(this, { oldPixelSize });
2932
2945
  }
@@ -2948,6 +2961,31 @@ or create a device with the 'debug: true' prop.`;
2948
2961
  this.isInitialized = true;
2949
2962
  this.updatePosition();
2950
2963
  }
2964
+ _getDevicePixelSizeFromResizeEntry(entry) {
2965
+ const contentBoxSize = assertDefined(entry.contentBoxSize?.[0]);
2966
+ if (this.props.pixelSizeSource === "css-dpr") {
2967
+ return this._getDevicePixelSizeFromCSSSize(
2968
+ contentBoxSize.inlineSize,
2969
+ contentBoxSize.blockSize
2970
+ );
2971
+ }
2972
+ return {
2973
+ devicePixelWidth: entry.devicePixelContentBoxSize?.[0]?.inlineSize || contentBoxSize.inlineSize * devicePixelRatio,
2974
+ devicePixelHeight: entry.devicePixelContentBoxSize?.[0]?.blockSize || contentBoxSize.blockSize * devicePixelRatio
2975
+ };
2976
+ }
2977
+ _getDevicePixelSizeFromCSSSize(cssWidth, cssHeight) {
2978
+ const devicePixelRatio2 = this.getDevicePixelRatio();
2979
+ return {
2980
+ devicePixelWidth: Math.floor(cssWidth * devicePixelRatio2),
2981
+ devicePixelHeight: Math.floor(cssHeight * devicePixelRatio2)
2982
+ };
2983
+ }
2984
+ _setDevicePixelSize({ devicePixelWidth, devicePixelHeight }) {
2985
+ const [maxDevicePixelWidth, maxDevicePixelHeight] = this.getMaxDrawingBufferSize();
2986
+ this.devicePixelWidth = Math.max(1, Math.min(devicePixelWidth, maxDevicePixelWidth));
2987
+ this.devicePixelHeight = Math.max(1, Math.min(devicePixelHeight, maxDevicePixelHeight));
2988
+ }
2951
2989
  _resizeDrawingBufferIfNeeded() {
2952
2990
  if (this._needsDrawingBufferResize) {
2953
2991
  this._needsDrawingBufferResize = false;
@@ -2965,6 +3003,12 @@ or create a device with the 'debug: true' prop.`;
2965
3003
  }
2966
3004
  const oldRatio = this.devicePixelRatio;
2967
3005
  this.devicePixelRatio = window.devicePixelRatio;
3006
+ if (this.props.pixelSizeSource === "css-dpr") {
3007
+ const oldPixelSize = this.getDevicePixelSize();
3008
+ this._setDevicePixelSize(this._getDevicePixelSizeFromCSSSize(this.cssWidth, this.cssHeight));
3009
+ this._updateDrawingBufferSize();
3010
+ this.device.props.onResize(this, { oldPixelSize });
3011
+ }
2968
3012
  this.updatePosition();
2969
3013
  this.device.props.onDevicePixelRatioChange?.(this, {
2970
3014
  oldRatio
@@ -2996,6 +3040,7 @@ or create a device with the 'debug: true' prop.`;
2996
3040
  width: 800,
2997
3041
  height: 600,
2998
3042
  useDevicePixels: true,
3043
+ pixelSizeSource: "exact",
2999
3044
  autoResize: true,
3000
3045
  container: null,
3001
3046
  visible: true,