modern-canvas 0.14.3 → 0.14.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.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineProperty as ts, Observable as we, Reactivable as rs, parseColor as ai, property as h, isGradient as ni, isColorFillObject as Nr, clearUndef as ss, idGenerator as is, normalizeFill as li, isNone as V, normalizeBackground as ci, normalizeForeground as hi, normalizeOutline as ui, normalizeShadow as di, normalizeShape as fi, getDefaultStyle as pi, normalizeText as _i, normalizeTextContent as mi, getDefaultTextStyle as gi, getDefaultLayoutStyle as vi, RawWeakMap as bi } from "modern-idoc";
1
+ import { defineProperty as ts, Observable as he, Reactivable as rs, parseColor as ai, property as h, isGradient as ni, isColorFillObject as Nr, clearUndef as ss, idGenerator as is, normalizeFill as li, isNone as V, normalizeBackground as ci, normalizeForeground as hi, normalizeOutline as ui, normalizeShadow as di, normalizeShape as fi, getDefaultStyle as pi, normalizeText as _i, normalizeTextContent as mi, getDefaultTextStyle as gi, getDefaultLayoutStyle as vi, RawWeakMap as bi } from "modern-idoc";
2
2
  import { fonts as yi } from "modern-font";
3
3
  import { extend as xi } from "colord";
4
4
  import wi from "colord/plugins/names";
@@ -183,7 +183,7 @@ function as(r, e, t = {}) {
183
183
  }
184
184
  return n;
185
185
  }
186
- const Ii = "WebGL2RenderingContext" in globalThis, Mi = "ImageBitmap" in globalThis, Ni = "ResizeObserver" in globalThis, et = "PointerEvent" in globalThis, ki = "WheelEvent" in globalThis, dc = "MouseEvent" in globalThis, ve = "ontouchstart" in globalThis, Ui = "onclick" in globalThis, fc = "createImageBitmap" in globalThis, ns = "AudioContext" in globalThis, ls = "webkitAudioContext" in globalThis, cs = "OfflineAudioContext" in globalThis, Bi = "webkitOfflineAudioContext" in globalThis, Li = ns || ls, pr = typeof window < "u", Fi = typeof navigator < "u" && navigator?.userAgent?.indexOf("Mac") >= 0, hs = globalThis.devicePixelRatio || 1, us = (r) => r !== null && typeof r == "object" && r.nodeType === 1, zi = (r) => us(r) && r.tagName === "VIDEO", pc = (r) => us(r) && r.tagName === "IMG";
186
+ const Ii = "WebGL2RenderingContext" in globalThis, Mi = "ImageBitmap" in globalThis, Ni = "ResizeObserver" in globalThis, et = "PointerEvent" in globalThis, ki = "WheelEvent" in globalThis, dc = "MouseEvent" in globalThis, be = "ontouchstart" in globalThis, Ui = "onclick" in globalThis, fc = "createImageBitmap" in globalThis, ns = "AudioContext" in globalThis, ls = "webkitAudioContext" in globalThis, cs = "OfflineAudioContext" in globalThis, Bi = "webkitOfflineAudioContext" in globalThis, Li = ns || ls, pr = typeof window < "u", Fi = typeof navigator < "u" && navigator?.userAgent?.indexOf("Mac") >= 0, hs = globalThis.devicePixelRatio || 1, us = (r) => r !== null && typeof r == "object" && r.nodeType === 1, zi = (r) => us(r) && r.tagName === "VIDEO", pc = (r) => us(r) && r.tagName === "IMG";
187
187
  function Gi(r) {
188
188
  return typeof r == "object" && r !== null && r.nodeType === 1 && r.tagName === "CANVAS";
189
189
  }
@@ -342,7 +342,7 @@ const Ki = {
342
342
  touchmove: "pointermove",
343
343
  touchcancel: "pointercancel"
344
344
  };
345
- class Zi extends we {
345
+ class Zi extends he {
346
346
  /**
347
347
  * Current event
348
348
  */
@@ -364,17 +364,17 @@ class Zi extends we {
364
364
  if (!this.setuped || !this.target)
365
365
  return;
366
366
  const e = this.target.style;
367
- globalThis.navigator.msPointerEnabled ? (e.msContentZooming = "", e.msTouchAction = "") : et && (e.touchAction = ""), et ? (this.target.removeEventListener("pointerdown", this._onPointerDown), this.target.removeEventListener("pointerleave", this._onPointerOver), this.target.removeEventListener("pointerover", this._onPointerOver), this.target.removeEventListener("pointermove", this._onPointerMove), this.target.removeEventListener("pointerup", this._onPointerUp)) : (this.target.removeEventListener("mousedown", this._onPointerDown), this.target.removeEventListener("mouseout", this._onPointerOver), this.target.removeEventListener("mouseover", this._onPointerOver), this.target.removeEventListener("mousemove", this._onPointerMove), this.target.removeEventListener("mouseup", this._onPointerUp)), ve && (this.target.removeEventListener("touchstart", this._onPointerDown), this.target.removeEventListener("touchmove", this._onPointerMove), this.target.removeEventListener("touchend", this._onPointerUp)), this.target.removeEventListener("wheel", this._onWheel), document.removeEventListener("keydown", this._onKeyDown), document.removeEventListener("keypress", this._onKeyPress), document.removeEventListener("keyup", this._onKeyUp), this.target = void 0, this.setuped = !1;
367
+ globalThis.navigator.msPointerEnabled ? (e.msContentZooming = "", e.msTouchAction = "") : et && (e.touchAction = ""), et ? (this.target.removeEventListener("pointerdown", this._onPointerDown), this.target.removeEventListener("pointerleave", this._onPointerOver), this.target.removeEventListener("pointerover", this._onPointerOver), this.target.removeEventListener("pointermove", this._onPointerMove), this.target.removeEventListener("pointerup", this._onPointerUp)) : (this.target.removeEventListener("mousedown", this._onPointerDown), this.target.removeEventListener("mouseout", this._onPointerOver), this.target.removeEventListener("mouseover", this._onPointerOver), this.target.removeEventListener("mousemove", this._onPointerMove), this.target.removeEventListener("mouseup", this._onPointerUp)), be && (this.target.removeEventListener("touchstart", this._onPointerDown), this.target.removeEventListener("touchmove", this._onPointerMove), this.target.removeEventListener("touchend", this._onPointerUp)), this.target.removeEventListener("wheel", this._onWheel), document.removeEventListener("keydown", this._onKeyDown), document.removeEventListener("keypress", this._onKeyPress), document.removeEventListener("keyup", this._onKeyUp), this.target = void 0, this.setuped = !1;
368
368
  }
369
369
  addEventListeners() {
370
370
  if (this.setuped || !this.target)
371
371
  return;
372
372
  const e = this.target.style;
373
- e && (globalThis.navigator.msPointerEnabled ? (e.msContentZooming = "none", e.msTouchAction = "none") : et && (e.touchAction = "none")), et ? (this.target.addEventListener("pointerdown", this._onPointerDown), this.target.addEventListener("pointerleave", this._onPointerOver), this.target.addEventListener("pointerover", this._onPointerOver), this.target.addEventListener("pointermove", this._onPointerMove), this.target.addEventListener("pointerup", this._onPointerUp)) : (this.target.addEventListener("mousedown", this._onPointerDown), this.target.addEventListener("mouseout", this._onPointerOver), this.target.addEventListener("mouseover", this._onPointerOver), this.target.addEventListener("mousemove", this._onPointerMove), this.target.addEventListener("mouseup", this._onPointerUp)), ve && (this.target.addEventListener("touchstart", this._onPointerDown), this.target.addEventListener("touchmove", this._onPointerMove), this.target.addEventListener("touchend", this._onPointerUp)), this.target.addEventListener("wheel", this._onWheel), document.addEventListener("keydown", this._onKeyDown), document.addEventListener("keypress", this._onKeyPress), document.addEventListener("keyup", this._onKeyUp), this.setuped = !0;
373
+ e && (globalThis.navigator.msPointerEnabled ? (e.msContentZooming = "none", e.msTouchAction = "none") : et && (e.touchAction = "none")), et ? (this.target.addEventListener("pointerdown", this._onPointerDown), this.target.addEventListener("pointerleave", this._onPointerOver), this.target.addEventListener("pointerover", this._onPointerOver), this.target.addEventListener("pointermove", this._onPointerMove), this.target.addEventListener("pointerup", this._onPointerUp)) : (this.target.addEventListener("mousedown", this._onPointerDown), this.target.addEventListener("mouseout", this._onPointerOver), this.target.addEventListener("mouseover", this._onPointerOver), this.target.addEventListener("mousemove", this._onPointerMove), this.target.addEventListener("mouseup", this._onPointerUp)), be && (this.target.addEventListener("touchstart", this._onPointerDown), this.target.addEventListener("touchmove", this._onPointerMove), this.target.addEventListener("touchend", this._onPointerUp)), this.target.addEventListener("wheel", this._onWheel), document.addEventListener("keydown", this._onKeyDown), document.addEventListener("keypress", this._onKeyPress), document.addEventListener("keyup", this._onKeyUp), this.setuped = !0;
374
374
  }
375
375
  normalize(e) {
376
376
  const t = [];
377
- if (ve && e instanceof globalThis.TouchEvent)
377
+ if (be && e instanceof globalThis.TouchEvent)
378
378
  for (let s = 0, i = e.changedTouches.length; s < i; s++) {
379
379
  const o = e.changedTouches[s];
380
380
  typeof o.button > "u" && (o.button = 0), typeof o.buttons > "u" && (o.buttons = 1), typeof o.isPrimary > "u" && (o.isPrimary = e.touches.length === 1 && e.type === "touchstart"), typeof o.width > "u" && (o.width = o.radiusX || 1), typeof o.height > "u" && (o.height = o.radiusY || 1), typeof o.tiltX > "u" && (o.tiltX = 0), typeof o.tiltY > "u" && (o.tiltY = 0), typeof o.pointerType > "u" && (o.pointerType = "touch"), typeof o.pointerId > "u" && (o.pointerId = o.identifier || 0), typeof o.pressure > "u" && (o.pressure = o.force || 0.5), typeof o.twist > "u" && (o.twist = 0), typeof o.tangentialPressure > "u" && (o.tangentialPressure = 0), typeof o.layerX > "u" && (o.layerX = o.offsetX = o.clientX), typeof o.layerY > "u" && (o.layerY = o.offsetY = o.clientY), o.type = e.type, t.push(o);
@@ -451,7 +451,7 @@ class Zi extends we {
451
451
  this.event?.cursor && this.setCursor(this.event.cursor);
452
452
  };
453
453
  _onPointerDown = (e) => {
454
- if (ve && e.pointerType === "touch")
454
+ if (be && e.pointerType === "touch")
455
455
  return;
456
456
  const t = this.normalize(e);
457
457
  for (let s = 0, i = t.length; s < i; s++)
@@ -459,7 +459,7 @@ class Zi extends we {
459
459
  this.event?.cursor && this.setCursor(this.event.cursor);
460
460
  };
461
461
  _onPointerOver = (e) => {
462
- if (!this.enableClickEvent || ve && e.pointerType === "touch")
462
+ if (!this.enableClickEvent || be && e.pointerType === "touch")
463
463
  return;
464
464
  const t = this.normalize(e);
465
465
  for (let s = 0, i = t.length; s < i; s++)
@@ -467,7 +467,7 @@ class Zi extends we {
467
467
  this.event?.cursor && this.setCursor(this.event.cursor);
468
468
  };
469
469
  _onPointerMove = (e) => {
470
- if (!this.enableMoveEvent || ve && e.pointerType === "touch")
470
+ if (!this.enableMoveEvent || be && e.pointerType === "touch")
471
471
  return;
472
472
  const t = this.normalize(e);
473
473
  for (let s = 0, i = t.length; s < i; s++)
@@ -475,7 +475,7 @@ class Zi extends we {
475
475
  this.event?.cursor && this.setCursor(this.event.cursor);
476
476
  };
477
477
  _onPointerUp = (e) => {
478
- if (!this.enableClickEvent || ve && e.pointerType === "touch")
478
+ if (!this.enableClickEvent || be && e.pointerType === "touch")
479
479
  return;
480
480
  let t = e.target;
481
481
  e.composedPath && e.composedPath().length > 0 && (t = e.composedPath()[0]);
@@ -516,7 +516,7 @@ class Pe extends rs {
516
516
  class Ji extends Pe {
517
517
  //
518
518
  }
519
- class he extends Ji {
519
+ class ue extends Ji {
520
520
  //
521
521
  }
522
522
  xi([wi]);
@@ -596,7 +596,7 @@ class oe {
596
596
  return [this.r, this.g, this.b, this.a];
597
597
  }
598
598
  }
599
- class ee extends we {
599
+ class ee extends he {
600
600
  constructor(e) {
601
601
  super(), this.dim = e;
602
602
  }
@@ -706,7 +706,7 @@ class ee extends we {
706
706
  return this.toArray();
707
707
  }
708
708
  }
709
- class ae extends we {
709
+ class ae extends he {
710
710
  constructor(e, t, s) {
711
711
  super(), this.rows = e, this.cols = t, s ? this.set(s) : this.identity();
712
712
  }
@@ -1560,7 +1560,7 @@ class io {
1560
1560
  byteLength = 0;
1561
1561
  dirty = !0;
1562
1562
  }
1563
- var be = /* @__PURE__ */ ((r) => (r[r.mapRead = 1] = "mapRead", r[r.mapWrite = 2] = "mapWrite", r[r.copySrc = 4] = "copySrc", r[r.copyDst = 8] = "copyDst", r[r.index = 16] = "index", r[r.vertex = 32] = "vertex", r[r.uniform = 64] = "uniform", r[r.storage = 128] = "storage", r[r.indirect = 256] = "indirect", r[r.queryResolve = 512] = "queryResolve", r[r.static = 1024] = "static", r))(be || {}), oo = Object.defineProperty, ms = (r, e, t, s) => {
1563
+ var ye = /* @__PURE__ */ ((r) => (r[r.mapRead = 1] = "mapRead", r[r.mapWrite = 2] = "mapWrite", r[r.copySrc = 4] = "copySrc", r[r.copyDst = 8] = "copyDst", r[r.index = 16] = "index", r[r.vertex = 32] = "vertex", r[r.uniform = 64] = "uniform", r[r.storage = 128] = "storage", r[r.indirect = 256] = "indirect", r[r.queryResolve = 512] = "queryResolve", r[r.static = 1024] = "static", r))(ye || {}), oo = Object.defineProperty, ms = (r, e, t, s) => {
1564
1564
  for (var i = void 0, o = r.length - 1, a; o >= 0; o--)
1565
1565
  (a = r[o]) && (i = a(e, t, i) || i);
1566
1566
  return i && oo(e, t, i), i;
@@ -1590,25 +1590,25 @@ function ao(r, e) {
1590
1590
  let t = Lr[r];
1591
1591
  return t === void 0 && (Zt[e] === void 0 && (Zt[e] = 1), Lr[r] = t = Zt[e]++), t;
1592
1592
  }
1593
- class q {
1593
+ class q extends he {
1594
1594
  get _gl() {
1595
1595
  return this._renderer.gl;
1596
1596
  }
1597
- get gl() {
1598
- return this._renderer.gl;
1597
+ constructor() {
1598
+ super(), this.on("updateContext", this._updateContext.bind(this)), this.on("setup", this._setup.bind(this));
1599
1599
  }
1600
1600
  install(e) {
1601
1601
  this._renderer = e;
1602
1602
  }
1603
1603
  // eslint-disable-next-line unused-imports/no-unused-vars
1604
- onUpdateContext(e) {
1604
+ _updateContext(e) {
1605
+ }
1606
+ _setup() {
1605
1607
  }
1606
1608
  flush() {
1607
1609
  }
1608
1610
  reset() {
1609
1611
  }
1610
- destroy() {
1611
- }
1612
1612
  }
1613
1613
  class no extends q {
1614
1614
  install(e) {
@@ -1622,7 +1622,7 @@ class no extends q {
1622
1622
  _createGlBuffer(e) {
1623
1623
  const t = this._gl, s = new io(t.createBuffer());
1624
1624
  let i = it.arrayBuffer;
1625
- return e.usage & be.index ? i = it.elementArrayBuffer : e.usage & be.uniform && (i = it.uniformBuffer), s.target = i, this.glBuffers.set(e.instanceId, s), this.buffers.get(e.instanceId) || ("on" in e && (e.on("updateProperty", (o) => {
1625
+ return e.usage & ye.index ? i = it.elementArrayBuffer : e.usage & ye.uniform && (i = it.uniformBuffer), s.target = i, this.glBuffers.set(e.instanceId, s), this.buffers.get(e.instanceId) || ("on" in e && (e.on("updateProperty", (o) => {
1626
1626
  switch (o) {
1627
1627
  case "usage":
1628
1628
  case "data":
@@ -1644,7 +1644,7 @@ class no extends q {
1644
1644
  s.dirty = !1;
1645
1645
  const { _gl: i } = this, { usage: o, data: a } = e;
1646
1646
  i.bindBuffer(s.target, s.native);
1647
- const n = o & be.static ? i.STATIC_DRAW : i.DYNAMIC_DRAW;
1647
+ const n = o & ye.static ? i.STATIC_DRAW : i.DYNAMIC_DRAW;
1648
1648
  if (a)
1649
1649
  if (s.byteLength >= a.byteLength) {
1650
1650
  const l = a.length * a.BYTES_PER_ELEMENT;
@@ -1970,7 +1970,7 @@ class xo extends q {
1970
1970
  return e.uniforms = c, t.deleteShader(i), t.deleteShader(o), s;
1971
1971
  }
1972
1972
  _createGlShader(e, t) {
1973
- const s = this.gl, i = s.createShader(t);
1973
+ const s = this._gl, i = s.createShader(t);
1974
1974
  if (!i)
1975
1975
  throw new Error("Failed to create shader");
1976
1976
  if (s.shaderSource(i, e), s.compileShader(i), !s.getShaderParameter(i, s.COMPILE_STATUS))
@@ -2144,8 +2144,8 @@ class Po extends q {
2144
2144
  boundBlendMode;
2145
2145
  blendModes;
2146
2146
  defaultState = new ze({ blend: !0 });
2147
- onUpdateContext(e) {
2148
- super.onUpdateContext(e), this.blendModes = wo(e);
2147
+ _updateContext(e) {
2148
+ super._updateContext(e), this.blendModes = wo(e);
2149
2149
  }
2150
2150
  toggle(e, t) {
2151
2151
  this._renderer.gl[t ? "enable" : "disable"](e);
@@ -2280,11 +2280,11 @@ ${Array.from({ length: e }, (l, c) => {
2280
2280
  })
2281
2281
  }, i = {
2282
2282
  instanceId: rt(),
2283
- usage: be.vertex,
2283
+ usage: ye.vertex,
2284
2284
  data: new Float32Array()
2285
2285
  }, o = {
2286
2286
  instanceId: rt(),
2287
- usage: be.index,
2287
+ usage: ye.index,
2288
2288
  data: new Uint32Array()
2289
2289
  }, a = {
2290
2290
  instanceId: rt(),
@@ -2326,15 +2326,15 @@ ${Array.from({ length: e }, (l, c) => {
2326
2326
  const d = [];
2327
2327
  let f = 0;
2328
2328
  for (let p = s.length, _ = { id: ++f }, g = [], v = /* @__PURE__ */ new Map(), w = 0, S = 0, O = 0; O < p; O++) {
2329
- const k = s[O].texture, me = O === p - 1;
2329
+ const k = s[O].texture, ge = O === p - 1;
2330
2330
  if (!k || v.has(k)) {
2331
- if (!me)
2331
+ if (!ge)
2332
2332
  continue;
2333
2333
  } else
2334
2334
  g.push(k), v.set(k, w++);
2335
- if (me || w >= i) {
2335
+ if (ge || w >= i) {
2336
2336
  _.textures = g, _.textureLocationMap = v, w = 0, _.start = u;
2337
- for (let ge = S; ge <= O; ge++) {
2337
+ for (let ve = S; ve <= O; ve++) {
2338
2338
  const {
2339
2339
  indices: Or,
2340
2340
  vertices: jt,
@@ -2344,8 +2344,8 @@ ${Array.from({ length: e }, (l, c) => {
2344
2344
  blendMode: Mr = lt.normal,
2345
2345
  clipOutsideUv: ei,
2346
2346
  roundPixels: ti
2347
- } = s[ge];
2348
- S < ge && _.blendMode !== Mr && (_.size = u - _.start, d.push(_), S = ge, _ = { id: ++f }, _.textures = g, _.start = u);
2347
+ } = s[ve];
2348
+ S < ve && _.blendMode !== Mr && (_.size = u - _.start, d.push(_), S = ve, _ = { id: ++f }, _.textures = g, _.start = u);
2349
2349
  const { width: Wt, height: qt } = Qs, ri = c / this._vertexSize, si = (Ir ? v.get(Ir) : 255) ?? 255, ii = ti ? 1 : 0, oi = ei ? 1 : 0;
2350
2350
  let xt, wt;
2351
2351
  for (let Yt = jt.length, Q = 0; Q < Yt; Q += 2) {
@@ -2365,8 +2365,8 @@ ${Array.from({ length: e }, (l, c) => {
2365
2365
  for (let p = d.length, _ = 0; _ < p; _++) {
2366
2366
  const g = d[_], { start: v = 0, textures: w, textureLocationMap: S } = g;
2367
2367
  for (let O = w.length, k = 0; k < O; k++) {
2368
- const me = w[k], ge = S.get(me);
2369
- ge !== void 0 && this._renderer.texture.bind(me, ge);
2368
+ const ge = w[k], ve = S.get(ge);
2369
+ ve !== void 0 && this._renderer.texture.bind(ge, ve);
2370
2370
  }
2371
2371
  this._state.blendMode = g.blendMode, this._renderer.state.bind(this._state), m.draw({
2372
2372
  size: g.size,
@@ -2827,8 +2827,8 @@ class Uo extends q {
2827
2827
  install(e) {
2828
2828
  super.install(e), e.texture = this;
2829
2829
  }
2830
- onUpdateContext(e) {
2831
- super.onUpdateContext(e), Object.keys(this._mapFormatToInternalFormat).length || (this._mapFormatToInternalFormat = Ao(e, this._renderer.extensions), this._mapFormatToType = Co(e), this._mapFormatToFormat = Ro(e)), this.maxTextureSize = e.getParameter(e.MAX_TEXTURE_SIZE), this.maxTextureImageUnits = e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS);
2830
+ _updateContext(e) {
2831
+ super._updateContext(e), Object.keys(this._mapFormatToInternalFormat).length || (this._mapFormatToInternalFormat = Ao(e, this._renderer.extensions), this._mapFormatToType = Co(e), this._mapFormatToFormat = Ro(e)), this.maxTextureSize = e.getParameter(e.MAX_TEXTURE_SIZE), this.maxTextureImageUnits = e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS);
2832
2832
  for (let t = 0; t < this.maxTextureImageUnits; t++)
2833
2833
  this.unbind(t);
2834
2834
  }
@@ -2836,7 +2836,7 @@ class Uo extends q {
2836
2836
  return this.glTextures.get(e.instanceId) || this._createGlTexture(e);
2837
2837
  }
2838
2838
  _createGlTexture(e) {
2839
- const t = this.gl, s = new To(t.createTexture());
2839
+ const t = this._gl, s = new To(t.createTexture());
2840
2840
  if (t.bindTexture(s.target, s.native), s.type = this._mapFormatToType[e.format], s.internalFormat = this._mapFormatToInternalFormat[e.format], s.format = this._mapFormatToFormat[e.format], this.glTextures.set(e.instanceId, s), e.mipmap && (this._renderer.supports.nonPowOf2mipmaps || e.isPowerOfTwo)) {
2841
2841
  const i = Math.max(e.width, e.height);
2842
2842
  e.mipLevelCount = Math.floor(Math.log2(i)) + 1;
@@ -3154,28 +3154,50 @@ function Go(r, e) {
3154
3154
  };
3155
3155
  }
3156
3156
  class Vo extends q {
3157
- scissorCounter = 0;
3158
3157
  install(e) {
3159
3158
  super.install(e), e.scissor = this;
3160
3159
  }
3160
+ current = {
3161
+ [-1]: {
3162
+ refCount: 0
3163
+ }
3164
+ };
3165
+ _setup() {
3166
+ super._setup(), this._renderer.renderTarget.on("updateRenderTarget", this._updateRenderTarget);
3167
+ }
3168
+ _updateRenderTarget = (e) => {
3169
+ if (e) {
3170
+ let t = this.current[e.instanceId];
3171
+ t || (t = this.current[e.instanceId] = {
3172
+ refCount: 0
3173
+ }), t.rect && t.refCount > 0 ? this.bind(t.rect) : this.bind(null);
3174
+ }
3175
+ };
3161
3176
  push(e) {
3162
3177
  const t = this._gl;
3163
- t.enable(t.SCISSOR_TEST), this.scissorCounter++, this.bind(e);
3178
+ t.enable(t.SCISSOR_TEST);
3179
+ const s = this.current[this._renderer.renderTarget.current?.instanceId ?? -1];
3180
+ s.refCount++, s.rect = e, this.bind(e);
3164
3181
  }
3165
3182
  pop() {
3166
- if (this.scissorCounter > 0 && this.scissorCounter--, this.scissorCounter <= 0) {
3167
- const e = this._gl;
3168
- e.disable(e.SCISSOR_TEST);
3169
- }
3183
+ const e = this.current[this._renderer.renderTarget.current?.instanceId ?? -1];
3184
+ e.refCount > 0 && e.refCount--, e.refCount <= 0 && this.bind(null);
3170
3185
  }
3171
3186
  bind(e) {
3172
- const { pixelRatio: t, viewport: s } = this._renderer, { viewMatrix: i } = this._renderer.shader.uniforms, { x: o, y: a, width: n, height: l } = Go(i, e), c = s.current.height / t - (a + l);
3173
- this._renderer.gl.scissor(
3174
- o * t,
3175
- c * t,
3176
- n * t,
3177
- l * t
3178
- );
3187
+ const t = this._gl;
3188
+ if (e) {
3189
+ const { pixelRatio: s, viewport: i } = this._renderer, { viewMatrix: o } = this._renderer.shader.uniforms, { x: a, y: n, width: l, height: c } = Go(o, e), u = i.current.height / s - (n + c);
3190
+ t.scissor(
3191
+ a * s,
3192
+ u * s,
3193
+ l * s,
3194
+ c * s
3195
+ );
3196
+ } else
3197
+ t.disable(t.SCISSOR_TEST);
3198
+ }
3199
+ destroy() {
3200
+ super.destroy(), this._renderer.renderTarget.off("updateRenderTarget", this._updateRenderTarget);
3179
3201
  }
3180
3202
  }
3181
3203
  const Ie = [];
@@ -3235,11 +3257,16 @@ class $o extends q {
3235
3257
  stencilMode: D.none,
3236
3258
  refCount: 0
3237
3259
  };
3238
- current = /* @__PURE__ */ Object.create(null);
3260
+ current = {
3261
+ [-1]: {
3262
+ stencilMode: D.disabled,
3263
+ refCount: 0
3264
+ }
3265
+ };
3239
3266
  _passOpMap;
3240
3267
  _compareMap;
3241
- onUpdateContext(e) {
3242
- super.onUpdateContext(e), this._compareMap = {
3268
+ _updateContext(e) {
3269
+ super._updateContext(e), this._compareMap = {
3243
3270
  always: e.ALWAYS,
3244
3271
  never: e.NEVER,
3245
3272
  equal: e.EQUAL,
@@ -3259,30 +3286,32 @@ class $o extends q {
3259
3286
  "decrement-wrap": e.DECR_WRAP
3260
3287
  }, this.reset();
3261
3288
  }
3289
+ _setup() {
3290
+ super._setup(), this._renderer.renderTarget.on("updateRenderTarget", this._updateRenderTarget);
3291
+ }
3262
3292
  reset() {
3263
3293
  this._cache.enabled = !1, this._cache.stencilMode = D.none, this._cache.refCount = 0;
3264
3294
  }
3265
- _activeRenderTarget = null;
3266
- onRenderTargetChange(e) {
3267
- if (this._activeRenderTarget !== e && (this._activeRenderTarget = e, e)) {
3295
+ _updateRenderTarget = (e) => {
3296
+ if (e) {
3268
3297
  let t = this.current[e.instanceId];
3269
3298
  t || (t = this.current[e.instanceId] = {
3270
3299
  stencilMode: D.disabled,
3271
3300
  refCount: 0
3272
3301
  }), this.bind(t.stencilMode, t.refCount);
3273
3302
  }
3274
- }
3303
+ };
3275
3304
  bind(e, t) {
3276
- const s = this._activeRenderTarget ? this.current[this._activeRenderTarget.instanceId] : {
3277
- stencilMode: D.disabled,
3278
- refCount: 0
3279
- }, i = this._gl, o = Ie[e], a = this._cache;
3305
+ const s = this.current[this._renderer.renderTarget.current?.instanceId ?? -1], i = this._gl, o = Ie[e], a = this._cache;
3280
3306
  if (s.stencilMode = e, s.refCount = t, e === D.disabled) {
3281
3307
  this._cache.enabled && (this._cache.enabled = !1, i.disable(i.STENCIL_TEST));
3282
3308
  return;
3283
3309
  }
3284
3310
  this._cache.enabled || (this._cache.enabled = !0, i.enable(i.STENCIL_TEST)), (e !== a.stencilMode || a.refCount !== t) && (a.stencilMode = e, a.refCount = t, o.stencilBack && (i.stencilFunc(this._compareMap[o.stencilBack.compare], t, 255), i.stencilOp(i.KEEP, i.KEEP, this._passOpMap[o.stencilBack.passOp])));
3285
3311
  }
3312
+ destroy() {
3313
+ super.destroy(), this._renderer.renderTarget.off("updateRenderTarget", this._updateRenderTarget);
3314
+ }
3286
3315
  }
3287
3316
  class Ho extends q {
3288
3317
  current = new Fe(0, 0, 0, 0);
@@ -3316,15 +3345,13 @@ class jo extends q {
3316
3345
  _hasMRT = !0;
3317
3346
  _writeDepthTexture = !0;
3318
3347
  projectionMatrix = new ro();
3319
- onUpdateContext() {
3320
- if (this._hasMRT = !0, this._writeDepthTexture = !0, this._renderer.version === 1) {
3321
- const e = this._renderer.gl, t = this._renderer.extensions.drawBuffers, s = this._renderer.extensions.depthTexture;
3348
+ _updateContext(e) {
3349
+ if (super._updateContext(e), this._hasMRT = !0, this._writeDepthTexture = !0, this._renderer.version === 1) {
3350
+ const t = this._renderer.extensions.drawBuffers, s = this._renderer.extensions.depthTexture;
3322
3351
  t ? e.drawBuffers = (i) => t.drawBuffersWEBGL(i) : (this._hasMRT = !1, e.drawBuffers = () => {
3323
3352
  }), s || (this._writeDepthTexture = !1);
3324
- } else {
3325
- const e = this._renderer.gl;
3353
+ } else
3326
3354
  this._msaaSamples = e.getInternalformatParameter(e.RENDERBUFFER, e.RGBA8, e.SAMPLES);
3327
- }
3328
3355
  }
3329
3356
  bind(e, t) {
3330
3357
  const s = this._gl, i = this.current !== e;
@@ -3345,7 +3372,7 @@ class jo extends q {
3345
3372
  width: this._renderer.screen.width * this._renderer.pixelRatio,
3346
3373
  height: this._renderer.screen.height * this._renderer.pixelRatio
3347
3374
  });
3348
- i && this._renderer.stencil.onRenderTargetChange(this.current);
3375
+ i && this.emit("updateRenderTarget", this.current);
3349
3376
  }
3350
3377
  unbind() {
3351
3378
  return this.bind(null);
@@ -3524,7 +3551,7 @@ class Wo extends mr {
3524
3551
  constructor(e = $i(), t) {
3525
3552
  if (super(), !e)
3526
3553
  throw new Error("Failed to createHTMLCanvas");
3527
- Gi(e) ? this._setupContext(e, t) : (this.gl = e, this.version = Vi(this.gl) ? 2 : 1), this._setupBindPoints()._setupExtensions()._setupPolyfill()._setupSupports(), this._systems.forEach((s) => s.install(this)), this._systems.forEach((s) => s.onUpdateContext(this.gl));
3554
+ Gi(e) ? this._setupContext(e, t) : (this.gl = e, this.version = Vi(this.gl) ? 2 : 1), this._setupBindPoints()._setupExtensions()._setupPolyfill()._setupSupports(), this._systems.forEach((s) => s.install(this)), this._systems.forEach((s) => s.emit("updateContext", this.gl)), this._systems.forEach((s) => s.emit("setup"));
3528
3555
  }
3529
3556
  _setupContext(e, t) {
3530
3557
  this.view = e;
@@ -3604,7 +3631,7 @@ class Wo extends mr {
3604
3631
  }, 0);
3605
3632
  }
3606
3633
  _contextRestored() {
3607
- this.contextLost = !1, this._setupExtensions(), this._systems.forEach((e) => e.onUpdateContext(this.gl));
3634
+ this.contextLost = !1, this._setupExtensions(), this._systems.forEach((e) => e.emit("updateContext", this.gl));
3608
3635
  }
3609
3636
  resize(e, t, s = !0) {
3610
3637
  super.resize(e, t, s), this.viewport.bind({
@@ -3656,13 +3683,13 @@ var Yo = Object.defineProperty, bs = (r, e, t, s) => {
3656
3683
  (a = r[o]) && (i = a(e, t, i) || i);
3657
3684
  return i && Yo(e, t, i), i;
3658
3685
  };
3659
- class We extends he {
3686
+ class We extends ue {
3660
3687
  constructor(e) {
3661
3688
  super(), this.setProperties(e);
3662
3689
  }
3663
3690
  }
3664
3691
  bs([
3665
- h({ fallback: be.index })
3692
+ h({ fallback: ye.index })
3666
3693
  ], We.prototype, "usage");
3667
3694
  bs([
3668
3695
  h({ default: () => new Uint32Array() })
@@ -3672,7 +3699,7 @@ var Ko = Object.defineProperty, zt = (r, e, t, s) => {
3672
3699
  (a = r[o]) && (i = a(e, t, i) || i);
3673
3700
  return i && Ko(e, t, i), i;
3674
3701
  };
3675
- class Ne extends he {
3702
+ class Ne extends ue {
3676
3703
  constructor(e = {}) {
3677
3704
  super(), this.setProperties(e);
3678
3705
  }
@@ -3697,29 +3724,29 @@ var Zo = Object.defineProperty, ys = (r, e, t, s) => {
3697
3724
  (a = r[o]) && (i = a(e, t, i) || i);
3698
3725
  return i && Zo(e, t, i), i;
3699
3726
  };
3700
- class ye extends he {
3727
+ class xe extends ue {
3701
3728
  constructor(e) {
3702
3729
  super(), this.setProperties(e);
3703
3730
  }
3704
3731
  }
3705
3732
  ys([
3706
- h({ fallback: be.vertex })
3707
- ], ye.prototype, "usage");
3733
+ h({ fallback: ye.vertex })
3734
+ ], xe.prototype, "usage");
3708
3735
  ys([
3709
3736
  h({ default: () => new Float32Array() })
3710
- ], ye.prototype, "data");
3737
+ ], xe.prototype, "data");
3711
3738
  var Jo = Object.defineProperty, ke = (r, e, t, s) => {
3712
3739
  for (var i = void 0, o = r.length - 1, a; o >= 0; o--)
3713
3740
  (a = r[o]) && (i = a(e, t, i) || i);
3714
3741
  return i && Jo(e, t, i), i;
3715
3742
  };
3716
- class H extends he {
3743
+ class H extends ue {
3717
3744
  constructor(e) {
3718
3745
  super(), this.setProperties(e);
3719
3746
  }
3720
3747
  }
3721
3748
  ke([
3722
- h({ default: () => new ye() })
3749
+ h({ default: () => new xe() })
3723
3750
  ], H.prototype, "buffer");
3724
3751
  ke([
3725
3752
  h({ fallback: "float32" })
@@ -3746,7 +3773,7 @@ class bc extends Ne {
3746
3773
  attributes: {
3747
3774
  position: new H({
3748
3775
  format: "float32x2",
3749
- buffer: new ye({
3776
+ buffer: new xe({
3750
3777
  data: new Float32Array([0, 0, 1, 0, 1, 1, 0, 1])
3751
3778
  })
3752
3779
  })
@@ -3769,7 +3796,7 @@ function ta() {
3769
3796
  tint: new Float32Array([1, 1, 1, 1])
3770
3797
  };
3771
3798
  }
3772
- class E extends he {
3799
+ class E extends ue {
3773
3800
  static instance = new this();
3774
3801
  glProgram;
3775
3802
  constructor(e = {}) {
@@ -3914,13 +3941,13 @@ class P extends Ne {
3914
3941
  attributes: {
3915
3942
  position: new H({
3916
3943
  format: "float32x2",
3917
- buffer: new ye({
3944
+ buffer: new xe({
3918
3945
  data: new Float32Array([-1, -1, 1, -1, 1, 1, -1, 1])
3919
3946
  })
3920
3947
  }),
3921
3948
  uv: new H({
3922
3949
  format: "float32x2",
3923
- buffer: new ye({
3950
+ buffer: new xe({
3924
3951
  data: new Float32Array([0, 0, 1, 0, 1, 1, 0, 1])
3925
3952
  })
3926
3953
  })
@@ -3935,7 +3962,7 @@ class yc extends Ne {
3935
3962
  positionBuffer;
3936
3963
  uvBuffer;
3937
3964
  constructor(e) {
3938
- const t = new ye({ data: new Float32Array() }), s = new ye({ data: new Float32Array() });
3965
+ const t = new xe({ data: new Float32Array() }), s = new xe({ data: new Float32Array() });
3939
3966
  super({
3940
3967
  ...e,
3941
3968
  attributes: {
@@ -3952,12 +3979,12 @@ class yc extends Ne {
3952
3979
  }), this.positionBuffer = t, this.uvBuffer = s;
3953
3980
  }
3954
3981
  }
3955
- var oa = Object.defineProperty, aa = Object.getOwnPropertyDescriptor, ue = (r, e, t, s) => {
3982
+ var oa = Object.defineProperty, aa = Object.getOwnPropertyDescriptor, de = (r, e, t, s) => {
3956
3983
  for (var i = s > 1 ? void 0 : s ? aa(e, t) : e, o = r.length - 1, a; o >= 0; o--)
3957
3984
  (a = r[o]) && (i = (s ? a(e, t, i) : a(i)) || i);
3958
3985
  return s && i && oa(e, t, i), i;
3959
3986
  };
3960
- let X = class extends he {
3987
+ let X = class extends ue {
3961
3988
  get valid() {
3962
3989
  return !!(this.width && this.height);
3963
3990
  }
@@ -3968,31 +3995,31 @@ let X = class extends he {
3968
3995
  return this.valid ? (r.renderTarget.bind(this, e), !0) : !1;
3969
3996
  }
3970
3997
  };
3971
- ue([
3998
+ de([
3972
3999
  h({ fallback: !1 })
3973
4000
  ], X.prototype, "isRoot", 2);
3974
- ue([
4001
+ de([
3975
4002
  h({ fallback: 0 })
3976
4003
  ], X.prototype, "x", 2);
3977
- ue([
4004
+ de([
3978
4005
  h({ fallback: 0 })
3979
4006
  ], X.prototype, "y", 2);
3980
- ue([
4007
+ de([
3981
4008
  h({ fallback: 0 })
3982
4009
  ], X.prototype, "width", 2);
3983
- ue([
4010
+ de([
3984
4011
  h({ fallback: 0 })
3985
4012
  ], X.prototype, "height", 2);
3986
- ue([
4013
+ de([
3987
4014
  h({ fallback: 0 })
3988
4015
  ], X.prototype, "mipLevel", 2);
3989
- ue([
4016
+ de([
3990
4017
  h({ fallback: !1 })
3991
4018
  ], X.prototype, "msaa", 2);
3992
- ue([
4019
+ de([
3993
4020
  h({ default: () => [new x()] })
3994
4021
  ], X.prototype, "colorTextures", 2);
3995
- X = ue([
4022
+ X = de([
3996
4023
  b("RenderTarget")
3997
4024
  ], X);
3998
4025
  var na = Object.defineProperty, N = (r, e, t, s) => {
@@ -4000,7 +4027,7 @@ var na = Object.defineProperty, N = (r, e, t, s) => {
4000
4027
  (a = r[o]) && (i = a(e, t, i) || i);
4001
4028
  return i && na(e, t, i), i;
4002
4029
  };
4003
- class x extends he {
4030
+ class x extends ue {
4004
4031
  static get EMPTY() {
4005
4032
  return new this({ width: 1, height: 1 });
4006
4033
  }
@@ -4115,7 +4142,7 @@ N([
4115
4142
  N([
4116
4143
  h({ fallback: !1 })
4117
4144
  ], x.prototype, "isPowerOfTwo");
4118
- class la extends he {
4145
+ class la extends ue {
4119
4146
  frames;
4120
4147
  frameIndex = 0;
4121
4148
  get currentFrame() {
@@ -4192,7 +4219,7 @@ class Gt extends x {
4192
4219
  if (!o)
4193
4220
  throw new Error("Failed to parse linear gradient, get canvas context is null.");
4194
4221
  const { angle: a = 0, stops: n } = e, l = t, c = s, u = l / 2, d = c / 2, f = (a + 90) * Math.PI / 180, m = Math.sin(f), p = -Math.cos(f), _ = Math.abs(l * Math.sin(f)) + Math.abs(c * Math.cos(f)), g = u - m * (_ / 2), v = d - p * (_ / 2), w = u + m * (_ / 2), S = d + p * (_ / 2), O = o.createLinearGradient(g, v, w, S);
4195
- for (const me of n) O.addColorStop(me.offset, me.color);
4222
+ for (const ge of n) O.addColorStop(ge.offset, ge.color);
4196
4223
  o.fillStyle = O, o.fillRect(0, 0, l, c);
4197
4224
  const k = o.getImageData(0, 0, i.width, i.height);
4198
4225
  return {
@@ -4526,7 +4553,7 @@ class _a extends Pe {
4526
4553
  return { internalKey: `____${e}` };
4527
4554
  }
4528
4555
  }
4529
- var ma = Object.defineProperty, ga = Object.getOwnPropertyDescriptor, de = (r, e, t, s) => {
4556
+ var ma = Object.defineProperty, ga = Object.getOwnPropertyDescriptor, fe = (r, e, t, s) => {
4530
4557
  for (var i = s > 1 ? void 0 : s ? ga(e, t) : e, o = r.length - 1, a; o >= 0; o--)
4531
4558
  (a = r[o]) && (i = (s ? a(e, t, i) : a(i)) || i);
4532
4559
  return s && i && ma(e, t, i), i;
@@ -4892,31 +4919,31 @@ let M = class extends Pe {
4892
4919
  return s?.forEach((n) => a.appendChild(this.parse(n))), a;
4893
4920
  }
4894
4921
  };
4895
- de([
4922
+ fe([
4896
4923
  h({ fallback: is() })
4897
4924
  ], M.prototype, "id", 2);
4898
- de([
4925
+ fe([
4899
4926
  h({ fallback: is() })
4900
4927
  ], M.prototype, "name", 2);
4901
- de([
4928
+ fe([
4902
4929
  h({ fallback: "inherit" })
4903
4930
  ], M.prototype, "processMode", 2);
4904
- de([
4931
+ fe([
4905
4932
  h({ fallback: "default" })
4906
4933
  ], M.prototype, "processSortMode", 2);
4907
- de([
4934
+ fe([
4908
4935
  h({ fallback: "inherit" })
4909
4936
  ], M.prototype, "renderMode", 2);
4910
- de([
4937
+ fe([
4911
4938
  h({ fallback: "inherit" })
4912
4939
  ], M.prototype, "inputMode", 2);
4913
- de([
4940
+ fe([
4914
4941
  h({ fallback: "default" })
4915
4942
  ], M.prototype, "internalMode", 2);
4916
- de([
4943
+ fe([
4917
4944
  h({ internal: !0 })
4918
4945
  ], M.prototype, "mask", 2);
4919
- M = de([
4946
+ M = fe([
4920
4947
  b("Node")
4921
4948
  ], M);
4922
4949
  var ba = Object.defineProperty, ya = Object.getOwnPropertyDescriptor, qe = (r, e, t, s) => {
@@ -5305,6 +5332,7 @@ let T = class extends Y {
5305
5332
  break;
5306
5333
  }
5307
5334
  }
5335
+ _rect = { x: 0, y: 0, width: 0, height: 0 };
5308
5336
  _processParent() {
5309
5337
  const r = this._tree?.renderStack;
5310
5338
  if (!r)
@@ -5314,10 +5342,33 @@ let T = class extends Y {
5314
5342
  return;
5315
5343
  const t = e.calls;
5316
5344
  let s, i;
5317
- t.forEach((o, a) => {
5318
- const n = o.renderable;
5319
- (n.equal(this._parent) || n.parent?.equal(this._parent)) && (n.needsRender && (this.needsRender = !0), s = s ?? a, i = a);
5320
- }), !(s === void 0 || i === void 0) && (this.needsRender ? (t.splice(i + 1, 0, r.createCall(this)), t.splice(s, 0, r.createCall(this))) : t.splice(s, i + 1, r.createCall(this)));
5345
+ const o = {
5346
+ minX: Number.MAX_SAFE_INTEGER,
5347
+ minY: Number.MAX_SAFE_INTEGER,
5348
+ maxX: 0,
5349
+ maxY: 0
5350
+ };
5351
+ if (t.forEach((n, l) => {
5352
+ const c = n.renderable;
5353
+ if (c.equal(this._parent) || c.parent?.equal(this._parent)) {
5354
+ if (c.needsRender && (this.needsRender = !0), "getRect" in c) {
5355
+ const u = c.getRect(), d = {
5356
+ x: [u.x, u.x + u.width],
5357
+ y: [u.y, u.y + u.height]
5358
+ };
5359
+ o.minX = Math.min(...d.x), o.maxX = Math.max(...d.x), o.minY = Math.min(...d.y), o.maxY = Math.max(...d.y);
5360
+ }
5361
+ s = s ?? l, i = l;
5362
+ }
5363
+ }), s === void 0 || i === void 0)
5364
+ return;
5365
+ const a = {
5366
+ x: o.minX,
5367
+ y: o.minY,
5368
+ width: o.maxX - o.minX,
5369
+ height: o.maxY - o.minY
5370
+ };
5371
+ a.width === Number.MAX_SAFE_INTEGER || a.height === Number.MAX_SAFE_INTEGER || (!this.needsRender && (this._rect.width !== a.width || this._rect.height !== a.height) && (this.needsRender = !0), this.needsRender ? (t.splice(i + 1, 0, r.createCall(this)), t.splice(s, 0, r.createCall(this))) : t.splice(s, i + 1, r.createCall(this)), this._rect = a);
5321
5372
  }
5322
5373
  _processChildren() {
5323
5374
  this.children.length && (super.emit("process"), this._tree?.renderStack.push(this));
@@ -5353,9 +5404,8 @@ let T = class extends Y {
5353
5404
  }
5354
5405
  }
5355
5406
  _renderParentOrChildren(r) {
5356
- const e = this._tree?.getCurrentViewport();
5357
- let t = { x: 0, y: 0, width: 0, height: 0 };
5358
- this._parent && "getRect" in this._parent ? t = this._parent.getRect() : e && (t.width = e.width, t.height = e.height), this.needsRender ? this._renderId % 2 === 0 ? (this._renderViewport = e, t.width && t.height && this.viewport1.resize(t.width, t.height), this.viewport1.canvasTransform.identity().translate(-t.x, -t.y), this.viewport1.renderStart(r)) : e && e.equal(this.viewport1) && this._renderViewport && !this._renderViewport.equal(this.viewport1) && (this.apply(r, this.viewport1, {
5407
+ const e = this._tree?.getCurrentViewport(), t = this._rect;
5408
+ this.needsRender ? (this._renderId % 2 === 0 ? (this._renderViewport = e, t.width && t.height && this.viewport1.resize(t.width, t.height), this.viewport1.canvasTransform.identity().translate(-t.x, -t.y), this.viewport1.renderStart(r)) : e && e.equal(this.viewport1) && this._renderViewport && !this._renderViewport.equal(this.viewport1) && (this.apply(r, this.viewport1, {
5359
5409
  redraw: !0,
5360
5410
  target: this._effectMode === "parent" ? this._parent ?? void 0 : void 0
5361
5411
  }), this._renderViewport.activate(r), this._renderViewport = void 0, r.batch2D.render({
@@ -5372,7 +5422,7 @@ let T = class extends Y {
5372
5422
  uvs: new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]),
5373
5423
  indices: new Uint32Array([0, 1, 2, 0, 2, 3]),
5374
5424
  texture: this.viewport1.texture
5375
- }), this.needsRender = !1) : r.batch2D.render({
5425
+ }), this.needsRender = !1), this._renderId++) : r.batch2D.render({
5376
5426
  vertices: new Float32Array([
5377
5427
  t.x,
5378
5428
  t.y,
@@ -5391,10 +5441,10 @@ let T = class extends Y {
5391
5441
  _render(r) {
5392
5442
  switch (this._effectMode) {
5393
5443
  case "before":
5394
- this._renderBefore(r);
5444
+ this._renderBefore(r), this._renderId++;
5395
5445
  break;
5396
5446
  case "transition":
5397
- this._renderTransition(r);
5447
+ this._renderTransition(r), this._renderId++;
5398
5448
  break;
5399
5449
  case "parent":
5400
5450
  case "children":
@@ -5402,7 +5452,6 @@ let T = class extends Y {
5402
5452
  this._renderParentOrChildren(r);
5403
5453
  break;
5404
5454
  }
5405
- this.needsRender && this._renderId++;
5406
5455
  }
5407
5456
  apply(r, e, t) {
5408
5457
  this.material && (t?.redraw ? e.redraw(r, () => {
@@ -5536,7 +5585,7 @@ var Ia = Object.defineProperty, Ee = (r, e, t, s) => {
5536
5585
  (a = r[o]) && (i = a(e, t, i) || i);
5537
5586
  return i && Ia(e, t, i), i;
5538
5587
  };
5539
- class fe extends _r {
5588
+ class pe extends _r {
5540
5589
  input = new Zi();
5541
5590
  renderStack = new Ra();
5542
5591
  root = new or().setTree(this);
@@ -5585,28 +5634,28 @@ class fe extends _r {
5585
5634
  }
5586
5635
  Ee([
5587
5636
  h({ alias: "root.msaa" })
5588
- ], fe.prototype, "msaa");
5637
+ ], pe.prototype, "msaa");
5589
5638
  Ee([
5590
5639
  h({ fallback: !1 })
5591
- ], fe.prototype, "pixelate");
5640
+ ], pe.prototype, "pixelate");
5592
5641
  Ee([
5593
5642
  h({ fallback: !1 })
5594
- ], fe.prototype, "roundPixels");
5643
+ ], pe.prototype, "roundPixels");
5595
5644
  Ee([
5596
5645
  h()
5597
- ], fe.prototype, "backgroundColor");
5646
+ ], pe.prototype, "backgroundColor");
5598
5647
  Ee([
5599
5648
  h({ internal: !0, fallback: !1 })
5600
- ], fe.prototype, "debug");
5649
+ ], pe.prototype, "debug");
5601
5650
  Ee([
5602
5651
  h({ internal: !0, fallback: !1 })
5603
- ], fe.prototype, "processPaused");
5652
+ ], pe.prototype, "processPaused");
5604
5653
  Ee([
5605
5654
  h({ internal: !0, default: () => yi })
5606
- ], fe.prototype, "fonts");
5655
+ ], pe.prototype, "fonts");
5607
5656
  Ee([
5608
5657
  h({ internal: !0, default: () => new le() })
5609
- ], fe.prototype, "timeline");
5658
+ ], pe.prototype, "timeline");
5610
5659
  var Ma = Object.getOwnPropertyDescriptor, Na = (r, e, t, s) => {
5611
5660
  for (var i = s > 1 ? void 0 : s ? Ma(e, t) : e, o = r.length - 1, a; o >= 0; o--)
5612
5661
  (a = r[o]) && (i = a(i) || i);
@@ -5973,7 +6022,7 @@ function za(r) {
5973
6022
  }
5974
6023
  });
5975
6024
  }
5976
- var Es = Object.defineProperty, Ga = Object.getOwnPropertyDescriptor, Va = (r, e, t) => e in r ? Es(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, pe = (r, e, t, s) => {
6025
+ var Es = Object.defineProperty, Ga = Object.getOwnPropertyDescriptor, Va = (r, e, t) => e in r ? Es(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, _e = (r, e, t, s) => {
5977
6026
  for (var i = s > 1 ? void 0 : s ? Ga(e, t) : e, o = r.length - 1, a; o >= 0; o--)
5978
6027
  (a = r[o]) && (i = (s ? a(e, t, i) : a(i)) || i);
5979
6028
  return s && i && Es(e, t, i), i;
@@ -6035,31 +6084,31 @@ void main(void) {
6035
6084
  }`
6036
6085
  }
6037
6086
  }));
6038
- pe([
6087
+ _e([
6039
6088
  h({ fallback: 1 })
6040
6089
  ], W.prototype, "saturation", 2);
6041
- pe([
6090
+ _e([
6042
6091
  h({ fallback: 1 })
6043
6092
  ], W.prototype, "contrast", 2);
6044
- pe([
6093
+ _e([
6045
6094
  h({ fallback: 1 })
6046
6095
  ], W.prototype, "brightness", 2);
6047
- pe([
6096
+ _e([
6048
6097
  h({ fallback: 1 })
6049
6098
  ], W.prototype, "red", 2);
6050
- pe([
6099
+ _e([
6051
6100
  h({ fallback: 1 })
6052
6101
  ], W.prototype, "green", 2);
6053
- pe([
6102
+ _e([
6054
6103
  h({ fallback: 1 })
6055
6104
  ], W.prototype, "blue", 2);
6056
- pe([
6105
+ _e([
6057
6106
  h({ fallback: 1 })
6058
6107
  ], W.prototype, "alpha", 2);
6059
- pe([
6108
+ _e([
6060
6109
  h({ fallback: 1 })
6061
6110
  ], W.prototype, "gamma", 2);
6062
- W = pe([
6111
+ W = _e([
6063
6112
  b("ColorAdjustEffect")
6064
6113
  ], W);
6065
6114
  var Ss = Object.defineProperty, Ha = Object.getOwnPropertyDescriptor, Xa = (r, e, t) => e in r ? Ss(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, Ts = (r, e, t, s) => {
@@ -7607,13 +7656,13 @@ var Hs = Object.defineProperty, kn = Object.getOwnPropertyDescriptor, Un = (r, e
7607
7656
  (a = r[o]) && (i = (s ? a(e, t, i) : a(i)) || i);
7608
7657
  return s && i && Hs(e, t, i), i;
7609
7658
  }, Bn = (r, e, t) => Un(r, e + "", t);
7610
- let xe = class extends T {
7659
+ let we = class extends T {
7611
7660
  constructor(r, e = []) {
7612
7661
  super(), this.setProperties(r).append(e);
7613
7662
  }
7614
7663
  apply(r, e) {
7615
7664
  e.redraw(r, () => {
7616
- P.draw(r, xe.material, {
7665
+ P.draw(r, we.material, {
7617
7666
  sampler: 0,
7618
7667
  uCenter: [e.width / 2, e.height / 2],
7619
7668
  uInnerRadius: this.innerRadius,
@@ -7624,7 +7673,7 @@ let xe = class extends T {
7624
7673
  });
7625
7674
  }
7626
7675
  };
7627
- Bn(xe, "material", new E({
7676
+ Bn(we, "material", new E({
7628
7677
  gl: {
7629
7678
  vertex: `attribute vec2 position;
7630
7679
  attribute vec2 uv;
@@ -7712,19 +7761,19 @@ void main() {
7712
7761
  }));
7713
7762
  mt([
7714
7763
  h()
7715
- ], xe.prototype, "center", 2);
7764
+ ], we.prototype, "center", 2);
7716
7765
  mt([
7717
7766
  h({ fallback: 20 })
7718
- ], xe.prototype, "innerRadius", 2);
7767
+ ], we.prototype, "innerRadius", 2);
7719
7768
  mt([
7720
7769
  h({ fallback: -1 })
7721
- ], xe.prototype, "radius", 2);
7770
+ ], we.prototype, "radius", 2);
7722
7771
  mt([
7723
7772
  h({ fallback: 0.1 })
7724
- ], xe.prototype, "strength", 2);
7725
- xe = mt([
7773
+ ], we.prototype, "strength", 2);
7774
+ we = mt([
7726
7775
  b("ZoomBlurEffect")
7727
- ], xe);
7776
+ ], we);
7728
7777
  function Mt(r, e) {
7729
7778
  const { x: t, y: s, width: i, height: o } = e;
7730
7779
  let a = !1;
@@ -8110,7 +8159,7 @@ bt([
8110
8159
  bt([
8111
8160
  h()
8112
8161
  ], Qe.prototype, "paths");
8113
- class ar extends he {
8162
+ class ar extends ue {
8114
8163
  constructor(e) {
8115
8164
  super(), this.setProperties(e);
8116
8165
  }
@@ -8124,7 +8173,7 @@ const Wr = {
8124
8173
  };
8125
8174
  for (const r in Wr)
8126
8175
  ts(ar, r, { fallback: Wr[r] });
8127
- var jn = Object.defineProperty, _e = (r, e, t, s) => {
8176
+ var jn = Object.defineProperty, me = (r, e, t, s) => {
8128
8177
  for (var i = void 0, o = r.length - 1, a; o >= 0; o--)
8129
8178
  (a = r[o]) && (i = a(e, t, i) || i);
8130
8179
  return i && jn(e, t, i), i;
@@ -8302,31 +8351,31 @@ class ie extends Pe {
8302
8351
  }
8303
8352
  }
8304
8353
  }
8305
- _e([
8354
+ me([
8306
8355
  h({ fallback: !0 })
8307
8356
  ], ie.prototype, "enabled");
8308
- _e([
8357
+ me([
8309
8358
  h({ fallback: () => [] })
8310
8359
  ], ie.prototype, "content");
8311
- _e([
8360
+ me([
8312
8361
  h({ alias: "parent.style.json" })
8313
8362
  ], ie.prototype, "style");
8314
- _e([
8363
+ me([
8315
8364
  h()
8316
8365
  ], ie.prototype, "effects");
8317
- _e([
8366
+ me([
8318
8367
  h()
8319
8368
  ], ie.prototype, "fill");
8320
- _e([
8369
+ me([
8321
8370
  h()
8322
8371
  ], ie.prototype, "outline");
8323
- _e([
8372
+ me([
8324
8373
  h({ alias: "base.measureDom" })
8325
8374
  ], ie.prototype, "measureDom");
8326
- _e([
8375
+ me([
8327
8376
  h({ alias: "base.fonts" })
8328
8377
  ], ie.prototype, "fonts");
8329
- _e([
8378
+ me([
8330
8379
  h({ fallback: "auto" })
8331
8380
  ], ie.prototype, "drawMode");
8332
8381
  var Wn = Object.getOwnPropertyDescriptor, qn = (r, e, t, s) => {
@@ -8496,7 +8545,6 @@ let nr = class extends Oe {
8496
8545
  this._allowPointerEvents = !V(e);
8497
8546
  break;
8498
8547
  case "borderRadius":
8499
- default:
8500
8548
  this.requestRender();
8501
8549
  break;
8502
8550
  }
@@ -9366,7 +9414,7 @@ dt = Ht([
9366
9414
  duration: 2e3
9367
9415
  })
9368
9416
  ], dt);
9369
- class Ar extends we {
9417
+ class Ar extends he {
9370
9418
  static _instance;
9371
9419
  static get instance() {
9372
9420
  return this._instance || (this._instance = new Ar()), this._instance;
@@ -9397,7 +9445,7 @@ class Ar extends we {
9397
9445
  return this.paused = !this.paused, this.refreshPaused(), this.paused;
9398
9446
  }
9399
9447
  }
9400
- class Nt extends we {
9448
+ class Nt extends he {
9401
9449
  static PADDING = 0.1;
9402
9450
  _source = null;
9403
9451
  _audio = null;
@@ -9564,7 +9612,7 @@ class pl {
9564
9612
  return new Nt();
9565
9613
  }
9566
9614
  }
9567
- class Zs extends we {
9615
+ class Zs extends he {
9568
9616
  constructor(e, t) {
9569
9617
  super(), this._input = e, this._output = t;
9570
9618
  }
@@ -9664,7 +9712,7 @@ class Ae extends Zs {
9664
9712
  2,
9665
9713
  cs ? Math.max(8e3, Math.min(96e3, e.sampleRate)) : 44100
9666
9714
  ), s = e.createDynamicsCompressor(), i = e.createAnalyser();
9667
- i.connect(s), s.connect(e.destination), super(i, s), this._context = e, this._offlineContext = t, this._compressor = s, this._analyser = i, this._locked = e.state === "suspended" && (ve || Ui), pr && (this._locked && (this._unlock(), document.addEventListener("mousedown", this._unlock, !0), document.addEventListener("touchstart", this._unlock, !0), document.addEventListener("touchend", this._unlock, !0)), globalThis.addEventListener("focus", this._onFocus), globalThis.addEventListener("blur", this._onBlur));
9715
+ i.connect(s), s.connect(e.destination), super(i, s), this._context = e, this._offlineContext = t, this._compressor = s, this._analyser = i, this._locked = e.state === "suspended" && (be || Ui), pr && (this._locked && (this._unlock(), document.addEventListener("mousedown", this._unlock, !0), document.addEventListener("touchstart", this._unlock, !0), document.addEventListener("touchend", this._unlock, !0)), globalThis.addEventListener("focus", this._onFocus), globalThis.addEventListener("blur", this._onBlur));
9668
9716
  }
9669
9717
  _onFocus() {
9670
9718
  if (!this.autoPause)
@@ -9706,7 +9754,7 @@ class Ae extends Zs {
9706
9754
  e.setValueAtTime ? e.setValueAtTime(t, this._context.currentTime) : e.value = t;
9707
9755
  }
9708
9756
  }
9709
- class gl extends we {
9757
+ class gl extends he {
9710
9758
  _audio = null;
9711
9759
  _sourceNode = null;
9712
9760
  _gain = null;
@@ -10548,7 +10596,7 @@ function ec(r) {
10548
10596
  return e;
10549
10597
  }
10550
10598
  const Rt = "WeakRef" in globalThis;
10551
- class tc extends we {
10599
+ class tc extends he {
10552
10600
  defaultHandler = (e) => e;
10553
10601
  _handlers = /* @__PURE__ */ new Map();
10554
10602
  _handleing = /* @__PURE__ */ new Map();
@@ -10655,7 +10703,7 @@ const Le = {
10655
10703
  preserveDrawingBuffer: !1,
10656
10704
  powerPreference: "default"
10657
10705
  };
10658
- class Cr extends fe {
10706
+ class Cr extends pe {
10659
10707
  renderer;
10660
10708
  get view() {
10661
10709
  return this.renderer.view;
@@ -10860,7 +10908,7 @@ export {
10860
10908
  Pc as AudioSpectrum,
10861
10909
  ft as AudioWaveform,
10862
10910
  nr as BaseElement2D,
10863
- be as BufferUsage,
10911
+ ye as BufferUsage,
10864
10912
  It as Camera2D,
10865
10913
  fa as CanvasContext,
10866
10914
  Ge as CanvasItem,
@@ -10956,7 +11004,7 @@ export {
10956
11004
  Ji as RefCounted,
10957
11005
  X as RenderTarget,
10958
11006
  mr as Renderer,
10959
- he as Resource,
11007
+ ue as Resource,
10960
11008
  ns as SUPPORTS_AUDIO_CONTEXT,
10961
11009
  Ui as SUPPORTS_CLICK_EVENTS,
10962
11010
  fc as SUPPORTS_CREATE_IMAGE_BITMAP,
@@ -10965,13 +11013,13 @@ export {
10965
11013
  cs as SUPPORTS_OFFLINE_AUDIO_CONTEXT,
10966
11014
  et as SUPPORTS_POINTER_EVENTS,
10967
11015
  Ni as SUPPORTS_RESIZE_OBSERVER,
10968
- ve as SUPPORTS_TOUCH_EVENTS,
11016
+ be as SUPPORTS_TOUCH_EVENTS,
10969
11017
  Ii as SUPPORTS_WEBGL2,
10970
11018
  ls as SUPPORTS_WEBKIT_AUDIO_CONTEXT,
10971
11019
  Bi as SUPPORTS_WEBKIT_OFFLINE_AUDIO_CONTEXT,
10972
11020
  Li as SUPPORTS_WEB_AUDIO,
10973
11021
  ki as SUPPORTS_WHEEL_EVENTS,
10974
- fe as SceneTree,
11022
+ pe as SceneTree,
10975
11023
  Yl as TextLoader,
10976
11024
  x as Texture2D,
10977
11025
  Kl as TextureLoader,
@@ -10991,7 +11039,7 @@ export {
10991
11039
  vc as Vector3,
10992
11040
  to as Vector4,
10993
11041
  H as VertexAttribute,
10994
- ye as VertexBuffer,
11042
+ xe as VertexBuffer,
10995
11043
  hr as Video2D,
10996
11044
  Zl as VideoLoader,
10997
11045
  da as VideoTexture,
@@ -11002,7 +11050,7 @@ export {
11002
11050
  gl as WebSound,
11003
11051
  Yi as WheelInputEvent,
11004
11052
  or as Window,
11005
- xe as ZoomBlurEffect,
11053
+ we as ZoomBlurEffect,
11006
11054
  Be as alignMap,
11007
11055
  $ as assets,
11008
11056
  es as boxSizingMap,