pixi-effects 0.48.0 → 0.48.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +5 -5
  3. package/ai/chat-template.html +3 -3
  4. package/dist/Composition-5FKV2IBP.js +7 -0
  5. package/dist/{Composition-ZCRJHBB5.js.map → Composition-5FKV2IBP.js.map} +1 -1
  6. package/dist/Composition-TJ5D7Z63.cjs +16 -0
  7. package/dist/{Composition-PMWLJQPI.cjs.map → Composition-TJ5D7Z63.cjs.map} +1 -1
  8. package/dist/{Spans-KTUPDFSR.cjs → Spans-5ENZ3XGS.cjs} +9 -9
  9. package/dist/{Spans-KTUPDFSR.cjs.map → Spans-5ENZ3XGS.cjs.map} +1 -1
  10. package/dist/{Spans-FMAVPATS.js → Spans-6A3VLHRH.js} +4 -4
  11. package/dist/{Spans-FMAVPATS.js.map → Spans-6A3VLHRH.js.map} +1 -1
  12. package/dist/{chunk-NGK4E536.cjs → chunk-45ALIMAF.cjs} +85 -60
  13. package/dist/chunk-45ALIMAF.cjs.map +1 -0
  14. package/dist/{chunk-UI7CEUTP.js → chunk-6D4W2KZQ.js} +3 -3
  15. package/dist/{chunk-UI7CEUTP.js.map → chunk-6D4W2KZQ.js.map} +1 -1
  16. package/dist/{chunk-OGLRSR6C.cjs → chunk-CCPJD76D.cjs} +63 -63
  17. package/dist/{chunk-OGLRSR6C.cjs.map → chunk-CCPJD76D.cjs.map} +1 -1
  18. package/dist/{chunk-4PYVHLIK.js → chunk-IVKI6CPH.js} +23 -22
  19. package/dist/chunk-IVKI6CPH.js.map +1 -0
  20. package/dist/{chunk-GX2WQV4A.js → chunk-RCKLUCB7.js} +45 -20
  21. package/dist/chunk-RCKLUCB7.js.map +1 -0
  22. package/dist/{chunk-ECLBZV4N.cjs → chunk-Z3DM4ETD.cjs} +68 -86
  23. package/dist/chunk-Z3DM4ETD.cjs.map +1 -0
  24. package/dist/index.cjs +33 -33
  25. package/dist/index.js +3 -3
  26. package/dist/loader.css +1 -1
  27. package/dist/present.cjs +3 -3
  28. package/dist/present.js +3 -3
  29. package/dist/three.cjs +5 -5
  30. package/dist/three.js +1 -1
  31. package/llms-full.txt +2 -2
  32. package/package.json +1 -1
  33. package/skills/pixi-effects/SKILL.md +1 -1
  34. package/skills/pixi-effects/reference/pitfalls.md +1 -1
  35. package/skills/pixi-effects/template.html +6 -6
  36. package/dist/Composition-PMWLJQPI.cjs +0 -16
  37. package/dist/Composition-ZCRJHBB5.js +0 -7
  38. package/dist/chunk-4PYVHLIK.js.map +0 -1
  39. package/dist/chunk-ECLBZV4N.cjs.map +0 -1
  40. package/dist/chunk-GX2WQV4A.js.map +0 -1
  41. package/dist/chunk-NGK4E536.cjs.map +0 -1
@@ -1,11 +1,11 @@
1
- import { CompositionSequence, maskSourceOf } from './chunk-UI7CEUTP.js';
1
+ import { CompositionSequence, maskSourceOf } from './chunk-6D4W2KZQ.js';
2
2
  import { loadMediabunny } from './chunk-K3XOEC3C.js';
3
- import { EXPRESSION_NAMES, createTimeline, lengthen, ensureFilterLibrary, checkEase, parseEase, homeDistance, DEFAULT_FOV, random, noise, flattenSvgPath, trimPolylines, rand, DEG, timeRemapOf, contentLength, resolveAt, parseSpring, springDuration, spansMeta } from './chunk-4PYVHLIK.js';
3
+ import { EXPRESSION_NAMES, createTimeline, lengthen, ensureFilterLibrary, checkEase, parseEase, homeDistance, DEFAULT_FOV, random, noise, flattenSvgPath, trimPolylines, rand, DEG, timeRemapOf, contentLength, resolveAt, parseSpring, springDuration, spansMeta } from './chunk-IVKI6CPH.js';
4
4
  import { analyzeAudio, fft, resampleThrough, playSpan, measureLoudness } from './chunk-G4PXCV2B.js';
5
5
  import { usesAdvancedBlend, enableAdvancedBlend } from './chunk-JBDBICS2.js';
6
6
  import { describeLayer } from './chunk-BFRWSV3R.js';
7
7
  import { warnUnknownOptions, suggestName } from './chunk-WGRWFQOB.js';
8
- import { extensions, CullerPlugin, Application, Container, Rectangle, Culler, CanvasTextMetrics, TextStyle, Assets, ExtensionType, Filter, Texture, UniformGroup, GpuProgram, GlProgram, defaultFilterVert, Text, CanvasTextGenerator, CanvasPool } from 'pixi.js';
8
+ import { extensions, CullerPlugin, Application, Container, Rectangle, Culler, BindGroup, CanvasTextMetrics, TextStyle, Assets, ExtensionType, Filter, Texture, UniformGroup, GpuProgram, GlProgram, defaultFilterVert, Text, CanvasTextGenerator, CanvasPool } from 'pixi.js';
9
9
 
10
10
  // src/core/gpuShare.ts
11
11
  function sharedGpuOf(renderer) {
@@ -2930,6 +2930,7 @@ var Movie = class {
2930
2930
  preserveDrawingBuffer: true,
2931
2931
  canvas: options.canvas
2932
2932
  };
2933
+ installQuietUnbind();
2933
2934
  this.app = new Application();
2934
2935
  try {
2935
2936
  await this.app.init({ ...baseAppOptions, preference: "webgpu" });
@@ -3209,11 +3210,11 @@ var Movie = class {
3209
3210
  commitReuse(sequence);
3210
3211
  this.timeline = timeline;
3211
3212
  this._timeFilters = collectTimeFilters(sequence);
3212
- const unmute = muteBoundTextureWarning();
3213
+ const loud = quietUnbind();
3213
3214
  try {
3214
3215
  safeRun(() => old?.destroy());
3215
3216
  } finally {
3216
- unmute();
3217
+ loud();
3217
3218
  }
3218
3219
  safeRun(() => oldTimeline?.kill());
3219
3220
  this._vars = vars;
@@ -3886,12 +3887,17 @@ var Movie = class {
3886
3887
  async destroy() {
3887
3888
  safeRun(() => this.pause());
3888
3889
  this._timeFilters = [];
3889
- safeRun(() => this._rootSequence?.destroy());
3890
- this._rootSequence = null;
3891
- safeRun(() => this.timeline?.kill());
3892
- this.timeline = null;
3893
- safeRun(() => this.app?.destroy(true, { children: true, texture: true }));
3894
- this.app = null;
3890
+ const loud = quietUnbind();
3891
+ try {
3892
+ safeRun(() => this._rootSequence?.destroy());
3893
+ this._rootSequence = null;
3894
+ safeRun(() => this.timeline?.kill());
3895
+ this.timeline = null;
3896
+ safeRun(() => this.app?.destroy(true, { children: true, texture: true }));
3897
+ this.app = null;
3898
+ } finally {
3899
+ loud();
3900
+ }
3895
3901
  this.audioBuffer = null;
3896
3902
  this._audioSources = [];
3897
3903
  this._mixStats = null;
@@ -3903,15 +3909,34 @@ var Movie = class {
3903
3909
  }
3904
3910
  };
3905
3911
  var END_MARGIN = 1e-4;
3906
- function muteBoundTextureWarning() {
3907
- const original = console.warn;
3908
- const ours = (...args) => {
3909
- if (args.some((a) => /destroyed while still bound/.test(String(a)))) return;
3910
- original.apply(console, args);
3912
+ var quietDepth = 0;
3913
+ var quietInstalled = false;
3914
+ function installQuietUnbind() {
3915
+ if (quietInstalled) return;
3916
+ quietInstalled = true;
3917
+ const proto = BindGroup.prototype;
3918
+ const original = proto.onResourceChange;
3919
+ if (typeof original !== "function") return;
3920
+ proto.onResourceChange = function(resource) {
3921
+ if (!quietDepth || !resource?.destroyed) {
3922
+ original.call(this, resource);
3923
+ return;
3924
+ }
3925
+ this._dirty = true;
3926
+ const resources = this.resources;
3927
+ if (resources) {
3928
+ for (const i in resources) if (resources[i] === resource) resources[i] = null;
3929
+ }
3911
3930
  };
3912
- console.warn = ours;
3931
+ }
3932
+ function quietUnbind() {
3933
+ quietDepth++;
3934
+ let done = false;
3913
3935
  return () => {
3914
- if (console.warn === ours) console.warn = original;
3936
+ if (!done) {
3937
+ done = true;
3938
+ quietDepth--;
3939
+ }
3915
3940
  };
3916
3941
  }
3917
3942
  var clampFrame = (f, last) => Math.max(0, Math.min(Math.round(f), last));
@@ -5023,5 +5048,5 @@ function withFade(spec, opts) {
5023
5048
  }
5024
5049
 
5025
5050
  export { Movie, animateText, audioEnvelope, bpmEnvelope, cameraPath, computeEnvelope, dismissLoader, failLoader, followPath, kenBurns, measureText, musicBuffer, musicEnvelope, musicEvents, orbit, parseEase2 as parseEase, particles, react, resolveLoader, samplePath, splitText, stagger, wiggle, withFade };
5026
- //# sourceMappingURL=chunk-GX2WQV4A.js.map
5027
- //# sourceMappingURL=chunk-GX2WQV4A.js.map
5051
+ //# sourceMappingURL=chunk-RCKLUCB7.js.map
5052
+ //# sourceMappingURL=chunk-RCKLUCB7.js.map