@basmilius/sparkle 2.2.0 → 2.3.0

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.
package/dist/index.d.mts CHANGED
@@ -52,7 +52,7 @@ declare abstract class Effect<TConfig = Record<string, unknown>> implements Simu
52
52
  * Mount this effect to a canvas element or CSS selector, creating the render loop.
53
53
  * Must be called before start().
54
54
  */
55
- mount(canvas: HTMLCanvasElement | string, options?: CanvasRenderingContext2DSettings): this;
55
+ mount(canvas: HTMLCanvasElement | string, options?: CanvasRenderingContext2DSettings, frameRate?: number): this;
56
56
  /**
57
57
  * Remove this effect from its canvas and clean up the render loop.
58
58
  */
@@ -203,12 +203,23 @@ declare class LimitedFrameRateCanvas {
203
203
  #private;
204
204
  static get globalSpeed(): number;
205
205
  static set globalSpeed(value: number);
206
+ /**
207
+ * Global frame rate override for all canvas instances.
208
+ * null = use each instance's own frame rate.
209
+ * 0 = unlimited (render as fast as the browser allows).
210
+ * Any positive number = cap at that many frames per second.
211
+ */
212
+ static get globalFrameRate(): number | null;
213
+ static set globalFrameRate(value: number | null);
214
+ static get showFps(): boolean;
215
+ static set showFps(value: boolean);
206
216
  get canvas(): HTMLCanvasElement;
207
217
  get context(): CanvasRenderingContext2D;
208
218
  get delta(): number;
209
219
  get deltaFactor(): number;
210
220
  get speed(): number;
211
221
  set speed(value: number);
222
+ get dpr(): number;
212
223
  get frameRate(): number;
213
224
  get isSmall(): boolean;
214
225
  get isTicking(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/layer.ts","../src/effect.ts","../src/aurora/layer.ts","../src/aurora/types.ts","../src/aurora/index.ts","../src/balloons/layer.ts","../src/point.ts","../src/balloons/particle.ts","../src/balloons/types.ts","../src/balloons/index.ts","../src/bubbles/layer.ts","../src/bubbles/types.ts","../src/bubbles/index.ts","../src/canvas.ts","../src/color.ts","../src/confetti/types.ts","../src/confetti/layer.ts","../src/confetti/particle.ts","../src/confetti/consts.ts","../src/confetti/shapes.ts","../src/confetti/index.ts","../src/donuts/layer.ts","../src/donuts/index.ts","../src/fireflies/layer.ts","../src/fireflies/particle.ts","../src/fireflies/types.ts","../src/fireflies/index.ts","../src/firepit/layer.ts","../src/firepit/types.ts","../src/firepit/index.ts","../src/fireworks/types.ts","../src/fireworks/explosion.ts","../src/fireworks/create-explosion.ts","../src/fireworks/spark.ts","../src/fireworks/firework.ts","../src/fireworks/index.ts","../src/glitter/types.ts","../src/glitter/index.ts","../src/lanterns/types.ts","../src/lanterns/index.ts","../src/leaves/types.ts","../src/leaves/index.ts","../src/lightning/types.ts","../src/lightning/system.ts","../src/lightning/index.ts","../src/matrix/types.ts","../src/matrix/index.ts","../src/orbits/types.ts","../src/orbits/index.ts","../src/particles/types.ts","../src/particles/layer.ts","../src/particles/index.ts","../src/petals/layer.ts","../src/petals/types.ts","../src/petals/index.ts","../src/plasma/types.ts","../src/plasma/layer.ts","../src/plasma/index.ts","../src/rain/types.ts","../src/rain/layer.ts","../src/rain/particle.ts","../src/rain/index.ts","../src/sandstorm/layer.ts","../src/sandstorm/types.ts","../src/sandstorm/index.ts","../src/scene.ts","../src/shooting-stars/system.ts","../src/shooting-stars/types.ts","../src/snow/layer.ts","../src/snow/index.ts","../src/sparklers/layer.ts","../src/sparklers/particle.ts","../src/sparklers/types.ts","../src/sparklers/index.ts","../src/stars/types.ts","../src/stars/layer.ts","../src/stars/index.ts","../src/streamers/layer.ts","../src/streamers/types.ts","../src/streamers/index.ts","../src/trail.ts","../src/waves/layer.ts","../src/waves/types.ts","../src/waves/index.ts","../src/wormhole/types.ts","../src/wormhole/layer.ts","../src/wormhole/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/layer.ts","../src/effect.ts","../src/aurora/layer.ts","../src/aurora/types.ts","../src/aurora/index.ts","../src/balloons/layer.ts","../src/point.ts","../src/balloons/particle.ts","../src/balloons/types.ts","../src/balloons/index.ts","../src/bubbles/layer.ts","../src/bubbles/types.ts","../src/bubbles/index.ts","../src/canvas.ts","../src/color.ts","../src/confetti/types.ts","../src/confetti/layer.ts","../src/confetti/particle.ts","../src/confetti/consts.ts","../src/confetti/shapes.ts","../src/confetti/index.ts","../src/donuts/layer.ts","../src/donuts/index.ts","../src/fireflies/layer.ts","../src/fireflies/particle.ts","../src/fireflies/types.ts","../src/fireflies/index.ts","../src/firepit/layer.ts","../src/firepit/types.ts","../src/firepit/index.ts","../src/fireworks/types.ts","../src/fireworks/explosion.ts","../src/fireworks/create-explosion.ts","../src/fireworks/spark.ts","../src/fireworks/firework.ts","../src/fireworks/index.ts","../src/glitter/types.ts","../src/glitter/index.ts","../src/lanterns/types.ts","../src/lanterns/index.ts","../src/leaves/types.ts","../src/leaves/index.ts","../src/lightning/types.ts","../src/lightning/system.ts","../src/lightning/index.ts","../src/matrix/types.ts","../src/matrix/index.ts","../src/orbits/types.ts","../src/orbits/index.ts","../src/particles/types.ts","../src/particles/layer.ts","../src/particles/index.ts","../src/petals/layer.ts","../src/petals/types.ts","../src/petals/index.ts","../src/plasma/types.ts","../src/plasma/layer.ts","../src/plasma/index.ts","../src/rain/types.ts","../src/rain/layer.ts","../src/rain/particle.ts","../src/rain/index.ts","../src/sandstorm/layer.ts","../src/sandstorm/types.ts","../src/sandstorm/index.ts","../src/scene.ts","../src/shooting-stars/system.ts","../src/shooting-stars/types.ts","../src/snow/layer.ts","../src/snow/index.ts","../src/sparklers/layer.ts","../src/sparklers/particle.ts","../src/sparklers/types.ts","../src/sparklers/index.ts","../src/stars/types.ts","../src/stars/layer.ts","../src/stars/index.ts","../src/streamers/layer.ts","../src/streamers/types.ts","../src/streamers/index.ts","../src/trail.ts","../src/waves/layer.ts","../src/waves/types.ts","../src/waves/index.ts","../src/wormhole/types.ts","../src/wormhole/layer.ts","../src/wormhole/index.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -2,12 +2,32 @@ import { hexToRGB, mulberry32 } from "@basmilius/utils";
2
2
  //#region src/canvas.ts
3
3
  var LimitedFrameRateCanvas = class LimitedFrameRateCanvas {
4
4
  static #globalSpeed = 1;
5
+ static #globalFrameRate = null;
6
+ static #showFps = false;
5
7
  static get globalSpeed() {
6
8
  return LimitedFrameRateCanvas.#globalSpeed;
7
9
  }
8
10
  static set globalSpeed(value) {
9
11
  LimitedFrameRateCanvas.#globalSpeed = value;
10
12
  }
13
+ /**
14
+ * Global frame rate override for all canvas instances.
15
+ * null = use each instance's own frame rate.
16
+ * 0 = unlimited (render as fast as the browser allows).
17
+ * Any positive number = cap at that many frames per second.
18
+ */
19
+ static get globalFrameRate() {
20
+ return LimitedFrameRateCanvas.#globalFrameRate;
21
+ }
22
+ static set globalFrameRate(value) {
23
+ LimitedFrameRateCanvas.#globalFrameRate = value;
24
+ }
25
+ static get showFps() {
26
+ return LimitedFrameRateCanvas.#showFps;
27
+ }
28
+ static set showFps(value) {
29
+ LimitedFrameRateCanvas.#showFps = value;
30
+ }
11
31
  #canvas;
12
32
  #context;
13
33
  #frameRate;
@@ -22,6 +42,9 @@ var LimitedFrameRateCanvas = class LimitedFrameRateCanvas {
22
42
  #isStopped = true;
23
43
  #height = 540;
24
44
  #width = 960;
45
+ #fps = "0.0";
46
+ #fpsFrames = 0;
47
+ #fpsTime = 0;
25
48
  get canvas() {
26
49
  return this.#canvas;
27
50
  }
@@ -40,6 +63,9 @@ var LimitedFrameRateCanvas = class LimitedFrameRateCanvas {
40
63
  set speed(value) {
41
64
  this.#speed = value;
42
65
  }
66
+ get dpr() {
67
+ return devicePixelRatio;
68
+ }
43
69
  get frameRate() {
44
70
  return this.#frameRate;
45
71
  }
@@ -62,7 +88,7 @@ var LimitedFrameRateCanvas = class LimitedFrameRateCanvas {
62
88
  this.#canvas = canvas;
63
89
  this.#context = canvas.getContext("2d", options);
64
90
  this.#frameRate = frameRate;
65
- this.#target = 1e3 / frameRate;
91
+ this.#target = frameRate > 0 ? 1e3 / frameRate : 0;
66
92
  this.onVisibilityChange = this.onVisibilityChange.bind(this);
67
93
  this.onResize = this.onResize.bind(this);
68
94
  document.addEventListener("visibilitychange", this.onVisibilityChange, { passive: true });
@@ -72,12 +98,27 @@ var LimitedFrameRateCanvas = class LimitedFrameRateCanvas {
72
98
  if (this.#isStopped) return;
73
99
  this.#current = Date.now();
74
100
  this.#frame = requestAnimationFrame(this.loop.bind(this));
75
- if (this.#then > 0 && this.#current - this.#then + 1 < this.#target) return;
101
+ const globalRate = LimitedFrameRateCanvas.#globalFrameRate;
102
+ const effectiveTarget = globalRate !== null ? globalRate > 0 ? 1e3 / globalRate : 0 : this.#target;
103
+ if (effectiveTarget > 0 && this.#then > 0 && this.#current - this.#then + 1 < effectiveTarget) return;
76
104
  this.#now = this.#current;
77
105
  this.#delta = this.#now - this.#then;
78
106
  ++this.#ticks;
79
107
  this.tick();
80
108
  this.draw();
109
+ if (LimitedFrameRateCanvas.#showFps) {
110
+ ++this.#fpsFrames;
111
+ if (this.#fpsTime === 0) this.#fpsTime = this.#current;
112
+ else {
113
+ const elapsed = this.#current - this.#fpsTime;
114
+ if (elapsed >= 1e3) {
115
+ this.#fps = (Math.round(this.#fpsFrames * 1e4 / elapsed) / 10).toFixed(1);
116
+ this.#fpsFrames = 0;
117
+ this.#fpsTime = this.#current;
118
+ }
119
+ }
120
+ this.#drawFps();
121
+ }
81
122
  this.#then = this.#now;
82
123
  }
83
124
  start() {
@@ -99,6 +140,26 @@ var LimitedFrameRateCanvas = class LimitedFrameRateCanvas {
99
140
  this.#frame = requestAnimationFrame(this.loop.bind(this));
100
141
  }
101
142
  }
143
+ #drawFps() {
144
+ const ctx = this.#context;
145
+ const text = `${this.#fps} FPS`;
146
+ const x = 9;
147
+ const y = 9;
148
+ const paddingX = 6;
149
+ const paddingY = 4;
150
+ ctx.save();
151
+ ctx.font = "700 10px ui-monospace, monospace";
152
+ const boxWidth = ctx.measureText(text).width + paddingX * 2;
153
+ const boxHeight = 11 + paddingY * 2;
154
+ ctx.fillStyle = "rgba(0, 0, 0, 0.45)";
155
+ ctx.beginPath();
156
+ ctx.roundRect(x, y, boxWidth, boxHeight, 3);
157
+ ctx.fill();
158
+ ctx.fillStyle = "rgba(255, 255, 255, 0.8)";
159
+ ctx.textBaseline = "middle";
160
+ ctx.fillText(text, x + paddingX, y + boxHeight / 1.9);
161
+ ctx.restore();
162
+ }
102
163
  draw() {
103
164
  throw new Error("LimitedFrameRateCanvas::draw() should be overwritten.");
104
165
  }
@@ -229,15 +290,18 @@ var SimulationCanvas = class extends LimitedFrameRateCanvas {
229
290
  super.destroy();
230
291
  }
231
292
  draw() {
232
- this.canvas.height = this.height;
233
- this.canvas.width = this.width;
293
+ const dpr = this.dpr;
294
+ this.canvas.height = this.height * dpr;
295
+ this.canvas.width = this.width * dpr;
234
296
  const ctx = this.context;
297
+ ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
235
298
  if (this.#simulation.fade) {
236
- const offCtx = this.#getOffscreenCtx(this.width, this.height);
299
+ const offCtx = this.#getOffscreenCtx(this.width * dpr, this.height * dpr);
300
+ offCtx.setTransform(dpr, 0, 0, dpr, 0, 0);
237
301
  offCtx.clearRect(0, 0, this.width, this.height);
238
302
  this.#simulation.draw(offCtx, this.width, this.height);
239
303
  applyEdgeFade(offCtx, this.width, this.height, this.#simulation.fade);
240
- ctx.drawImage(this.#offscreen, 0, 0);
304
+ ctx.drawImage(this.#offscreen, 0, 0, this.width, this.height);
241
305
  } else {
242
306
  ctx.save();
243
307
  this.#simulation.draw(ctx, this.width, this.height);
@@ -251,8 +315,8 @@ var SimulationCanvas = class extends LimitedFrameRateCanvas {
251
315
  onResize() {
252
316
  super.onResize();
253
317
  if (this.#offscreen) {
254
- this.#offscreen.width = this.width;
255
- this.#offscreen.height = this.height;
318
+ this.#offscreen.width = this.width * this.dpr;
319
+ this.#offscreen.height = this.height * this.dpr;
256
320
  }
257
321
  this.#simulation.onResize(this.width, this.height);
258
322
  }
@@ -301,13 +365,13 @@ var Effect = class {
301
365
  * Mount this effect to a canvas element or CSS selector, creating the render loop.
302
366
  * Must be called before start().
303
367
  */
304
- mount(canvas, options = { colorSpace: "display-p3" }) {
368
+ mount(canvas, options = { colorSpace: "display-p3" }, frameRate = 60) {
305
369
  if (typeof canvas === "string") {
306
370
  const el = document.querySelector(canvas);
307
371
  if (!el) throw new Error(`Effect.mount(): no element found for selector "${canvas}".`);
308
372
  canvas = el;
309
373
  }
310
- this.#canvas = new SimulationCanvas(canvas, this, 60, options);
374
+ this.#canvas = new SimulationCanvas(canvas, this, frameRate, options);
311
375
  return this;
312
376
  }
313
377
  /**
@@ -940,97 +1004,81 @@ const MULBERRY$20 = mulberry32(13);
940
1004
  //#endregion
941
1005
  //#region src/confetti/shapes.ts
942
1006
  const TWO_PI$1 = Math.PI * 2;
943
- const SHAPE_PATHS = {
944
- bowtie: (() => {
945
- const path = new Path2D();
946
- path.moveTo(-1, -.7);
947
- path.lineTo(0, 0);
948
- path.lineTo(-1, .7);
949
- path.closePath();
950
- path.moveTo(1, -.7);
951
- path.lineTo(0, 0);
952
- path.lineTo(1, .7);
953
- path.closePath();
954
- return path;
955
- })(),
956
- circle: (() => {
957
- const path = new Path2D();
958
- path.ellipse(0, 0, .6, 1, 0, 0, TWO_PI$1);
959
- return path;
960
- })(),
961
- crescent: (() => {
962
- const path = new Path2D();
963
- path.arc(0, 0, 1, 0, TWO_PI$1, false);
964
- path.arc(.45, 0, .9, 0, TWO_PI$1, true);
965
- return path;
966
- })(),
967
- diamond: (() => {
968
- const path = new Path2D();
969
- path.moveTo(0, -1);
970
- path.lineTo(.6, 0);
971
- path.lineTo(0, 1);
972
- path.lineTo(-.6, 0);
973
- path.closePath();
974
- return path;
975
- })(),
976
- heart: (() => {
977
- const path = new Path2D();
978
- path.moveTo(0, 1);
979
- path.bezierCurveTo(-.4, .55, -1, .1, -1, -.35);
980
- path.bezierCurveTo(-1, -.8, -.5, -1, 0, -.6);
981
- path.bezierCurveTo(.5, -1, 1, -.8, 1, -.35);
982
- path.bezierCurveTo(1, .1, .4, .55, 0, 1);
983
- path.closePath();
984
- return path;
985
- })(),
986
- hexagon: (() => {
987
- const path = new Path2D();
988
- for (let i = 0; i < 6; i++) {
989
- const angle = i * Math.PI / 3 - Math.PI / 2;
990
- if (i === 0) path.moveTo(Math.cos(angle), Math.sin(angle));
991
- else path.lineTo(Math.cos(angle), Math.sin(angle));
992
- }
993
- path.closePath();
994
- return path;
995
- })(),
996
- ribbon: (() => {
997
- const path = new Path2D();
998
- path.rect(-.2, -1, .4, 2);
999
- return path;
1000
- })(),
1001
- ring: (() => {
1002
- const path = new Path2D();
1003
- path.arc(0, 0, 1, 0, TWO_PI$1, false);
1004
- path.arc(0, 0, .55, 0, TWO_PI$1, true);
1005
- return path;
1006
- })(),
1007
- square: (() => {
1008
- const path = new Path2D();
1009
- path.rect(-.7, -.7, 1.4, 1.4);
1010
- return path;
1011
- })(),
1012
- star: (() => {
1013
- const path = new Path2D();
1014
- for (let i = 0; i < 10; i++) {
1015
- const r = i % 2 === 0 ? 1 : .42;
1016
- const angle = i * Math.PI / 5 - Math.PI / 2;
1017
- if (i === 0) path.moveTo(r * Math.cos(angle), r * Math.sin(angle));
1018
- else path.lineTo(r * Math.cos(angle), r * Math.sin(angle));
1019
- }
1020
- path.closePath();
1021
- return path;
1022
- })(),
1023
- triangle: (() => {
1024
- const path = new Path2D();
1025
- for (let i = 0; i < 3; i++) {
1026
- const angle = i * 2 * Math.PI / 3 - Math.PI / 2;
1027
- if (i === 0) path.moveTo(Math.cos(angle), Math.sin(angle));
1028
- else path.lineTo(Math.cos(angle), Math.sin(angle));
1029
- }
1030
- path.closePath();
1031
- return path;
1032
- })()
1033
- };
1007
+ function buildShapePaths() {
1008
+ const bowtie = new Path2D();
1009
+ bowtie.moveTo(-1, -.7);
1010
+ bowtie.lineTo(0, 0);
1011
+ bowtie.lineTo(-1, .7);
1012
+ bowtie.closePath();
1013
+ bowtie.moveTo(1, -.7);
1014
+ bowtie.lineTo(0, 0);
1015
+ bowtie.lineTo(1, .7);
1016
+ bowtie.closePath();
1017
+ const circle = new Path2D();
1018
+ circle.ellipse(0, 0, .6, 1, 0, 0, TWO_PI$1);
1019
+ const crescent = new Path2D();
1020
+ crescent.arc(0, 0, 1, 0, TWO_PI$1, false);
1021
+ crescent.arc(.45, 0, .9, 0, TWO_PI$1, true);
1022
+ const diamond = new Path2D();
1023
+ diamond.moveTo(0, -1);
1024
+ diamond.lineTo(.6, 0);
1025
+ diamond.lineTo(0, 1);
1026
+ diamond.lineTo(-.6, 0);
1027
+ diamond.closePath();
1028
+ const heart = new Path2D();
1029
+ heart.moveTo(0, 1);
1030
+ heart.bezierCurveTo(-.4, .55, -1, .1, -1, -.35);
1031
+ heart.bezierCurveTo(-1, -.8, -.5, -1, 0, -.6);
1032
+ heart.bezierCurveTo(.5, -1, 1, -.8, 1, -.35);
1033
+ heart.bezierCurveTo(1, .1, .4, .55, 0, 1);
1034
+ heart.closePath();
1035
+ const hexagon = new Path2D();
1036
+ for (let i = 0; i < 6; i++) {
1037
+ const angle = i * Math.PI / 3 - Math.PI / 2;
1038
+ if (i === 0) hexagon.moveTo(Math.cos(angle), Math.sin(angle));
1039
+ else hexagon.lineTo(Math.cos(angle), Math.sin(angle));
1040
+ }
1041
+ hexagon.closePath();
1042
+ const ribbon = new Path2D();
1043
+ ribbon.rect(-.2, -1, .4, 2);
1044
+ const ring = new Path2D();
1045
+ ring.arc(0, 0, 1, 0, TWO_PI$1, false);
1046
+ ring.arc(0, 0, .55, 0, TWO_PI$1, true);
1047
+ const square = new Path2D();
1048
+ square.rect(-.7, -.7, 1.4, 1.4);
1049
+ const star = new Path2D();
1050
+ for (let i = 0; i < 10; i++) {
1051
+ const r = i % 2 === 0 ? 1 : .42;
1052
+ const angle = i * Math.PI / 5 - Math.PI / 2;
1053
+ if (i === 0) star.moveTo(r * Math.cos(angle), r * Math.sin(angle));
1054
+ else star.lineTo(r * Math.cos(angle), r * Math.sin(angle));
1055
+ }
1056
+ star.closePath();
1057
+ const triangle = new Path2D();
1058
+ for (let i = 0; i < 3; i++) {
1059
+ const angle = i * 2 * Math.PI / 3 - Math.PI / 2;
1060
+ if (i === 0) triangle.moveTo(Math.cos(angle), Math.sin(angle));
1061
+ else triangle.lineTo(Math.cos(angle), Math.sin(angle));
1062
+ }
1063
+ triangle.closePath();
1064
+ return {
1065
+ bowtie,
1066
+ circle,
1067
+ crescent,
1068
+ diamond,
1069
+ heart,
1070
+ hexagon,
1071
+ ribbon,
1072
+ ring,
1073
+ square,
1074
+ star,
1075
+ triangle
1076
+ };
1077
+ }
1078
+ let _shapePaths = null;
1079
+ const SHAPE_PATHS = new Proxy({}, { get(_, key) {
1080
+ return (_shapePaths ??= buildShapePaths())[key];
1081
+ } });
1034
1082
  //#endregion
1035
1083
  //#region src/confetti/layer.ts
1036
1084
  const TWO_PI = Math.PI * 2;
@@ -4483,16 +4531,19 @@ var SceneCanvas = class extends LimitedFrameRateCanvas {
4483
4531
  super.destroy();
4484
4532
  }
4485
4533
  draw() {
4486
- this.canvas.height = this.height;
4487
- this.canvas.width = this.width;
4534
+ const dpr = this.dpr;
4535
+ this.canvas.height = this.height * dpr;
4536
+ this.canvas.width = this.width * dpr;
4488
4537
  const ctx = this.context;
4538
+ ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
4489
4539
  ctx.clearRect(0, 0, this.width, this.height);
4490
4540
  for (const layer of this.#layers) if (layer.fade) {
4491
- const offCtx = this.#getOffscreenCtx(this.width, this.height);
4541
+ const offCtx = this.#getOffscreenCtx(this.width * dpr, this.height * dpr);
4542
+ offCtx.setTransform(dpr, 0, 0, dpr, 0, 0);
4492
4543
  offCtx.clearRect(0, 0, this.width, this.height);
4493
4544
  layer.draw(offCtx, this.width, this.height);
4494
4545
  applyEdgeFade(offCtx, this.width, this.height, layer.fade);
4495
- ctx.drawImage(this.#offscreen, 0, 0);
4546
+ ctx.drawImage(this.#offscreen, 0, 0, this.width, this.height);
4496
4547
  } else {
4497
4548
  ctx.save();
4498
4549
  layer.draw(ctx, this.width, this.height);
@@ -4506,8 +4557,8 @@ var SceneCanvas = class extends LimitedFrameRateCanvas {
4506
4557
  onResize() {
4507
4558
  super.onResize();
4508
4559
  if (this.#offscreen) {
4509
- this.#offscreen.width = this.width;
4510
- this.#offscreen.height = this.height;
4560
+ this.#offscreen.width = this.width * this.dpr;
4561
+ this.#offscreen.height = this.height * this.dpr;
4511
4562
  }
4512
4563
  for (const layer of this.#layers) layer.onResize(this.width, this.height);
4513
4564
  }