@kurot/core 1.0.19 → 1.0.21

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 (109) hide show
  1. package/dist/kurot/display/DisplayObject.d.ts.map +1 -1
  2. package/dist/kurot/display/DisplayObject.js +6 -0
  3. package/dist/kurot/display/DisplayObject.js.map +1 -1
  4. package/dist/kurot/display/Mesh.d.ts +5 -2
  5. package/dist/kurot/display/Mesh.d.ts.map +1 -1
  6. package/dist/kurot/display/Mesh.js +5 -2
  7. package/dist/kurot/display/Mesh.js.map +1 -1
  8. package/dist/kurot/filters/BloomFilter.d.ts +40 -0
  9. package/dist/kurot/filters/BloomFilter.d.ts.map +1 -0
  10. package/dist/kurot/filters/BloomFilter.js +51 -0
  11. package/dist/kurot/filters/BloomFilter.js.map +1 -0
  12. package/dist/kurot/filters/BloomShaders.d.ts +10 -0
  13. package/dist/kurot/filters/BloomShaders.d.ts.map +1 -0
  14. package/dist/kurot/filters/BloomShaders.js +54 -0
  15. package/dist/kurot/filters/BloomShaders.js.map +1 -0
  16. package/dist/kurot/filters/BlurFilter.d.ts +4 -0
  17. package/dist/kurot/filters/BlurFilter.d.ts.map +1 -1
  18. package/dist/kurot/filters/BlurFilter.js +23 -6
  19. package/dist/kurot/filters/BlurFilter.js.map +1 -1
  20. package/dist/kurot/filters/CustomFilter.d.ts +44 -1
  21. package/dist/kurot/filters/CustomFilter.d.ts.map +1 -1
  22. package/dist/kurot/filters/CustomFilter.js +56 -17
  23. package/dist/kurot/filters/CustomFilter.js.map +1 -1
  24. package/dist/kurot/filters/DropShadowFilter.d.ts.map +1 -1
  25. package/dist/kurot/filters/DropShadowFilter.js +1 -0
  26. package/dist/kurot/filters/DropShadowFilter.js.map +1 -1
  27. package/dist/kurot/filters/Filter.d.ts +15 -0
  28. package/dist/kurot/filters/Filter.d.ts.map +1 -1
  29. package/dist/kurot/filters/Filter.js +58 -0
  30. package/dist/kurot/filters/Filter.js.map +1 -1
  31. package/dist/kurot/filters/FilterTexture.d.ts +21 -0
  32. package/dist/kurot/filters/FilterTexture.d.ts.map +1 -0
  33. package/dist/kurot/filters/FilterTexture.js +2 -0
  34. package/dist/kurot/filters/FilterTexture.js.map +1 -0
  35. package/dist/kurot/filters/GlowFilter.d.ts.map +1 -1
  36. package/dist/kurot/filters/GlowFilter.js +6 -0
  37. package/dist/kurot/filters/GlowFilter.js.map +1 -1
  38. package/dist/kurot/filters/MultiPassFilter.d.ts +41 -0
  39. package/dist/kurot/filters/MultiPassFilter.d.ts.map +1 -0
  40. package/dist/kurot/filters/MultiPassFilter.js +53 -0
  41. package/dist/kurot/filters/MultiPassFilter.js.map +1 -0
  42. package/dist/kurot/filters/index.d.ts +6 -0
  43. package/dist/kurot/filters/index.d.ts.map +1 -1
  44. package/dist/kurot/filters/index.js +2 -0
  45. package/dist/kurot/filters/index.js.map +1 -1
  46. package/dist/kurot/player/Player.d.ts.map +1 -1
  47. package/dist/kurot/player/Player.js +1 -0
  48. package/dist/kurot/player/Player.js.map +1 -1
  49. package/dist/kurot/player/canvas/CanvasRenderer.d.ts.map +1 -1
  50. package/dist/kurot/player/canvas/CanvasRenderer.js +15 -13
  51. package/dist/kurot/player/canvas/CanvasRenderer.js.map +1 -1
  52. package/dist/kurot/player/pipes/FilterPipe.d.ts.map +1 -1
  53. package/dist/kurot/player/pipes/FilterPipe.js +23 -18
  54. package/dist/kurot/player/pipes/FilterPipe.js.map +1 -1
  55. package/dist/kurot/player/pipes/MaskPipe.d.ts.map +1 -1
  56. package/dist/kurot/player/pipes/MaskPipe.js +6 -0
  57. package/dist/kurot/player/pipes/MaskPipe.js.map +1 -1
  58. package/dist/kurot/player/pipes/filter-bounds.d.ts +8 -0
  59. package/dist/kurot/player/pipes/filter-bounds.d.ts.map +1 -0
  60. package/dist/kurot/player/pipes/filter-bounds.js +25 -0
  61. package/dist/kurot/player/pipes/filter-bounds.js.map +1 -0
  62. package/dist/kurot/player/webgl/WebGLFilterSystem.d.ts +27 -0
  63. package/dist/kurot/player/webgl/WebGLFilterSystem.d.ts.map +1 -0
  64. package/dist/kurot/player/webgl/WebGLFilterSystem.js +119 -0
  65. package/dist/kurot/player/webgl/WebGLFilterSystem.js.map +1 -0
  66. package/dist/kurot/player/webgl/WebGLFilterTargetPool.d.ts +18 -0
  67. package/dist/kurot/player/webgl/WebGLFilterTargetPool.d.ts.map +1 -0
  68. package/dist/kurot/player/webgl/WebGLFilterTargetPool.js +80 -0
  69. package/dist/kurot/player/webgl/WebGLFilterTargetPool.js.map +1 -0
  70. package/dist/kurot/player/webgl/WebGLFilterTextures.d.ts +17 -0
  71. package/dist/kurot/player/webgl/WebGLFilterTextures.d.ts.map +1 -0
  72. package/dist/kurot/player/webgl/WebGLFilterTextures.js +124 -0
  73. package/dist/kurot/player/webgl/WebGLFilterTextures.js.map +1 -0
  74. package/dist/kurot/player/webgl/WebGLProgram.d.ts +6 -2
  75. package/dist/kurot/player/webgl/WebGLProgram.d.ts.map +1 -1
  76. package/dist/kurot/player/webgl/WebGLProgram.js +29 -8
  77. package/dist/kurot/player/webgl/WebGLProgram.js.map +1 -1
  78. package/dist/kurot/player/webgl/WebGLRenderBuffer.d.ts +2 -0
  79. package/dist/kurot/player/webgl/WebGLRenderBuffer.d.ts.map +1 -1
  80. package/dist/kurot/player/webgl/WebGLRenderBuffer.js +3 -0
  81. package/dist/kurot/player/webgl/WebGLRenderBuffer.js.map +1 -1
  82. package/dist/kurot/player/webgl/WebGLRenderContext.d.ts +15 -6
  83. package/dist/kurot/player/webgl/WebGLRenderContext.d.ts.map +1 -1
  84. package/dist/kurot/player/webgl/WebGLRenderContext.js +200 -145
  85. package/dist/kurot/player/webgl/WebGLRenderContext.js.map +1 -1
  86. package/dist/kurot/player/webgl/WebGLRenderer.d.ts.map +1 -1
  87. package/dist/kurot/player/webgl/WebGLRenderer.js +143 -110
  88. package/dist/kurot/player/webgl/WebGLRenderer.js.map +1 -1
  89. package/dist/kurot/player/webgl/WebGLUtils.d.ts +2 -2
  90. package/dist/kurot/player/webgl/WebGLUtils.d.ts.map +1 -1
  91. package/dist/kurot/player/webgl/WebGLUtils.js +35 -12
  92. package/dist/kurot/player/webgl/WebGLUtils.js.map +1 -1
  93. package/dist/kurot/player/webgl/WebGLVertexArrayObject.d.ts +2 -0
  94. package/dist/kurot/player/webgl/WebGLVertexArrayObject.d.ts.map +1 -1
  95. package/dist/kurot/player/webgl/WebGLVertexArrayObject.js +3 -1
  96. package/dist/kurot/player/webgl/WebGLVertexArrayObject.js.map +1 -1
  97. package/dist/kurot/player/webgl/custom-filter-uniforms.d.ts +6 -0
  98. package/dist/kurot/player/webgl/custom-filter-uniforms.d.ts.map +1 -0
  99. package/dist/kurot/player/webgl/custom-filter-uniforms.js +116 -0
  100. package/dist/kurot/player/webgl/custom-filter-uniforms.js.map +1 -0
  101. package/dist/kurot/player/webgl/split-mesh.d.ts +9 -0
  102. package/dist/kurot/player/webgl/split-mesh.d.ts.map +1 -0
  103. package/dist/kurot/player/webgl/split-mesh.js +29 -0
  104. package/dist/kurot/player/webgl/split-mesh.js.map +1 -0
  105. package/dist/kurot/system/Capabilities.js +1 -1
  106. package/dist/kurot/text/TextField.d.ts.map +1 -1
  107. package/dist/kurot/text/TextField.js +2 -1
  108. package/dist/kurot/text/TextField.js.map +1 -1
  109. package/package.json +1 -1
@@ -1,41 +1,80 @@
1
1
  import { Filter } from './Filter.js';
2
- const sourceKeyMap = new Map();
3
- function generateUUID() {
4
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
5
- const r = (Math.random() * 16) | 0;
6
- return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);
7
- });
8
- }
2
+ /**
3
+ * A single-input GPU filter. Sources are compiled verbatim, without GLSL translation.
4
+ * Use from() for explicit backend variants and an optional default vertex shader.
5
+ */
9
6
  export class CustomFilter extends Filter {
10
- // ── Instance fields ───────────────────────────────────────────────────────
7
+ static from(options) {
8
+ const first = options.webgl1 ?? options.webgl2;
9
+ if (!first)
10
+ throw new Error('CustomFilter requires at least one backend program.');
11
+ const filter = new CustomFilter(first.vertex ?? '', first.fragment, options.uniforms);
12
+ filter._programs = {
13
+ webgl1: options.webgl1 ? { ...options.webgl1 } : undefined,
14
+ webgl2: options.webgl2 ? { ...options.webgl2 } : undefined,
15
+ };
16
+ filter.padding = options.padding ?? 0;
17
+ for (const [name, texture] of Object.entries(options.textures ?? {})) {
18
+ filter.setTexture(name, texture);
19
+ }
20
+ return filter;
21
+ }
22
+ // ── Instance fields ────────────────────────────────────────────────────
11
23
  vertexSrc;
12
24
  fragmentSrc;
13
25
  shaderKey;
26
+ textures = {};
27
+ _programs;
14
28
  _padding = 0;
15
- // ── Constructor ───────────────────────────────────────────────────────────
29
+ /**
30
+ * Uses this exact source pair on either WebGL backend. Uniform values must
31
+ * match linked GLSL types. An empty vertex source selects the standard vertex.
32
+ */
16
33
  constructor(vertexSrc, fragmentSrc, uniforms = {}) {
17
34
  super();
18
35
  this.type = 'custom';
19
36
  this.vertexSrc = vertexSrc;
20
37
  this.fragmentSrc = fragmentSrc;
21
- const tempKey = vertexSrc + fragmentSrc;
22
- if (!sourceKeyMap.has(tempKey))
23
- sourceKeyMap.set(tempKey, generateUUID());
24
- this.shaderKey = sourceKeyMap.get(tempKey);
25
- this.uniforms = uniforms;
26
- this.onPropertyChange();
38
+ this.shaderKey = JSON.stringify([vertexSrc, fragmentSrc]);
39
+ this.uniforms = { ...uniforms };
27
40
  }
28
- // ── Getters / Setters ─────────────────────────────────────────────────────
41
+ // ── Getters / Setters ───────────────────────────────────────────────────
29
42
  get padding() {
30
43
  return this._padding;
31
44
  }
32
45
  set padding(value) {
46
+ if (!Number.isFinite(value) || value < 0)
47
+ throw new RangeError('Filter padding must be finite and non-negative.');
33
48
  if (this._padding === value)
34
49
  return;
35
50
  this._padding = value;
36
51
  this.onPropertyChange();
37
52
  }
38
- // ── Internal methods ──────────────────────────────────────────────────────
53
+ // ── Public methods ─────────────────────────────────────────────────────
54
+ setUniform(name, value) {
55
+ this.uniforms[name] = value;
56
+ this.invalidate();
57
+ }
58
+ setTexture(name, texture) {
59
+ if (['uSampler', 'projectionVector', 'uTextureSize', 'uInputSize', 'uInputClamp', 'uResolution', 'uOutputSize'].includes(name)) {
60
+ throw new Error(`CustomFilter texture ${name} is reserved.`);
61
+ }
62
+ if (texture) {
63
+ this.textures[name] = { ...texture };
64
+ }
65
+ else {
66
+ delete this.textures[name];
67
+ }
68
+ this.invalidate();
69
+ }
70
+ $getProgram(isWebGL2) {
71
+ if (!this._programs)
72
+ return { vertex: this.vertexSrc || undefined, fragment: this.fragmentSrc };
73
+ const program = isWebGL2 ? this._programs.webgl2 : this._programs.webgl1;
74
+ if (!program)
75
+ throw new Error(`CustomFilter has no WebGL ${isWebGL2 ? '2' : '1'} program.`);
76
+ return program;
77
+ }
39
78
  updatePadding() {
40
79
  this.paddingTop = this.paddingBottom = this.paddingLeft = this.paddingRight = this._padding;
41
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CustomFilter.js","sourceRoot":"","sources":["../../../src/kurot/filters/CustomFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE/C,SAAS,YAAY;IACpB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;QAClE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,MAAM;IACvC,6EAA6E;IAE7D,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,SAAS,CAAS;IAE1B,QAAQ,GAAG,CAAC,CAAC;IAErB,6EAA6E;IAE7E,YAAmB,SAAiB,EAAE,WAAmB,EAAE,WAAoC,EAAE;QAChG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,MAAM,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,6EAA6E;IAE7E,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,IAAW,OAAO,CAAC,KAAa;QAC/B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;YAAE,OAAO;QACpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,6EAA6E;IAE1D,aAAa;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7F,CAAC;CACD"}
1
+ {"version":3,"file":"CustomFilter.js","sourceRoot":"","sources":["../../../src/kurot/filters/CustomFilter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropShadowFilter.d.ts","sourceRoot":"","sources":["../../../src/kurot/filters/DropShadowFilter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,gBAAiB,SAAQ,UAAU;IAG/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAU;gBAK5B,QAAQ,SAAI,EACZ,KAAK,SAAK,EACV,KAAK,SAAI,EACT,KAAK,SAAI,EACT,KAAK,SAAI,EACT,KAAK,SAAI,EACT,QAAQ,SAAI,EACZ,OAAO,SAAI,EACX,KAAK,UAAQ,EACb,QAAQ,UAAQ,EAChB,UAAU,UAAQ;IAcnB,IAAW,QAAQ,IAAI,MAAM,CAE5B;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAKhC;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;IACD,IAAW,UAAU,CAAC,KAAK,EAAE,OAAO,EAInC;cAIkB,aAAa,IAAI,IAAI;IAmB/B,MAAM,IAAI,MAAM;CAGzB"}
1
+ {"version":3,"file":"DropShadowFilter.d.ts","sourceRoot":"","sources":["../../../src/kurot/filters/DropShadowFilter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,gBAAiB,SAAQ,UAAU;IAG/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAU;gBAK5B,QAAQ,SAAI,EACZ,KAAK,SAAK,EACV,KAAK,SAAI,EACT,KAAK,SAAI,EACT,KAAK,SAAI,EACT,KAAK,SAAI,EACT,QAAQ,SAAI,EACZ,OAAO,SAAI,EACX,KAAK,UAAQ,EACb,QAAQ,UAAQ,EAChB,UAAU,UAAQ;IAcnB,IAAW,QAAQ,IAAI,MAAM,CAE5B;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAKhC;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;IACD,IAAW,UAAU,CAAC,KAAK,EAAE,OAAO,EAKnC;cAIkB,aAAa,IAAI,IAAI;IAmB/B,MAAM,IAAI,MAAM;CAGzB"}
@@ -45,6 +45,7 @@ export class DropShadowFilter extends GlowFilter {
45
45
  return;
46
46
  this._hideObject = value;
47
47
  this.uniforms.hideObject = value ? 1 : 0;
48
+ this.invalidate();
48
49
  }
49
50
  // ── Internal methods ──────────────────────────────────────────────────────
50
51
  updatePadding() {
@@ -1 +1 @@
1
- {"version":3,"file":"DropShadowFilter.js","sourceRoot":"","sources":["../../../src/kurot/filters/DropShadowFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC/C,6EAA6E;IAErE,SAAS,CAAS;IAClB,MAAM,CAAS;IACf,WAAW,CAAU;IAE7B,6EAA6E;IAE7E,YACC,QAAQ,GAAG,CAAC,EACZ,KAAK,GAAG,EAAE,EACV,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,EACT,QAAQ,GAAG,CAAC,EACZ,OAAO,GAAG,CAAC,EACX,KAAK,GAAG,KAAK,EACb,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,KAAK;QAElB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,6EAA6E;IAE7E,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IACD,IAAW,QAAQ,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;YAAE,OAAO;QACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,IAAW,KAAK;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IACD,IAAW,KAAK,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO;QAClC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IACD,IAAW,UAAU,CAAC,KAAc;QACnC,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK;YAAE,OAAO;QACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,6EAA6E;IAE1D,aAAa;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;QAClD,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC;QACF,CAAC;IACF,CAAC;IAEQ,MAAM;QACd,OAAO,eAAe,IAAI,CAAC,SAAS,YAAY,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,QAAQ,cAAc,IAAI,CAAC,OAAO,YAAY,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,QAAQ,iBAAiB,IAAI,CAAC,WAAW,GAAG,CAAC;IACjS,CAAC;CACD"}
1
+ {"version":3,"file":"DropShadowFilter.js","sourceRoot":"","sources":["../../../src/kurot/filters/DropShadowFilter.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { DisplayObject } from '../display/DisplayObject.js';
1
2
  export declare class Filter {
2
3
  type: string;
3
4
  uniforms: Record<string, unknown>;
@@ -5,7 +6,21 @@ export declare class Filter {
5
6
  protected paddingBottom: number;
6
7
  protected paddingLeft: number;
7
8
  protected paddingRight: number;
9
+ private readonly _targets;
10
+ private _resolution?;
11
+ /**
12
+ * Physical pixels per logical unit for GPU effects. Undefined inherits the
13
+ * parent resolution; a chain uses the minimum requested resolution.
14
+ */
15
+ get resolution(): number | undefined;
16
+ set resolution(value: number | undefined);
8
17
  onPropertyChange(): void;
18
+ /**
19
+ * Invalidates users after directly editing uniforms or other mutable effect data.
20
+ */
21
+ invalidate(): void;
22
+ $attach(target: DisplayObject): void;
23
+ $detach(target: DisplayObject): void;
9
24
  protected updatePadding(): void;
10
25
  getPadding(): {
11
26
  left: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/kurot/filters/Filter.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IAGX,IAAI,SAAM;IAEjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAEvC,SAAS,CAAC,UAAU,SAAK;IACzB,SAAS,CAAC,aAAa,SAAK;IAC5B,SAAS,CAAC,WAAW,SAAK;IAC1B,SAAS,CAAC,YAAY,SAAK;IAIpB,gBAAgB,IAAI,IAAI;IAM/B,SAAS,CAAC,aAAa,IAAI,IAAI;IAExB,UAAU,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAIjF,MAAM,IAAI,MAAM;CAGhB"}
1
+ {"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/kurot/filters/Filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,qBAAa,MAAM;IAGX,IAAI,SAAM;IAEjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAEvC,SAAS,CAAC,UAAU,SAAK;IACzB,SAAS,CAAC,aAAa,SAAK;IAC5B,SAAS,CAAC,WAAW,SAAK;IAC1B,SAAS,CAAC,YAAY,SAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE,OAAO,CAAC,WAAW,CAAC,CAAS;IAE7B;;;OAGG;IACH,IAAW,UAAU,IAAI,MAAM,GAAG,SAAS,CAA6B;IACxE,IAAW,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAO9C;IAIM,gBAAgB,IAAI,IAAI;IAK/B;;OAEG;IACI,UAAU,IAAI,IAAI;IAalB,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAUpC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAc3C,SAAS,CAAC,aAAa,IAAI,IAAI;IAExB,UAAU,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAIjF,MAAM,IAAI,MAAM;CAGhB"}
@@ -6,9 +6,67 @@ export class Filter {
6
6
  paddingBottom = 0;
7
7
  paddingLeft = 0;
8
8
  paddingRight = 0;
9
+ _targets = new Map();
10
+ _resolution;
11
+ /**
12
+ * Physical pixels per logical unit for GPU effects. Undefined inherits the
13
+ * parent resolution; a chain uses the minimum requested resolution.
14
+ */
15
+ get resolution() { return this._resolution; }
16
+ set resolution(value) {
17
+ if (value !== undefined && (!Number.isFinite(value) || value <= 0)) {
18
+ throw new RangeError('Filter resolution must be finite and positive.');
19
+ }
20
+ if (this._resolution === value)
21
+ return;
22
+ this._resolution = value;
23
+ this.invalidate();
24
+ }
9
25
  // ── Public methods ────────────────────────────────────────────────────────
10
26
  onPropertyChange() {
11
27
  this.updatePadding();
28
+ this.invalidate();
29
+ }
30
+ /**
31
+ * Invalidates users after directly editing uniforms or other mutable effect data.
32
+ */
33
+ invalidate() {
34
+ for (const ref of this._targets.keys()) {
35
+ const target = ref.deref();
36
+ if (target) {
37
+ target.$cacheDirty = true;
38
+ target.$cacheDirtyUp();
39
+ target.$markDirty();
40
+ }
41
+ else {
42
+ this._targets.delete(ref);
43
+ }
44
+ }
45
+ }
46
+ $attach(target) {
47
+ for (const ref of this._targets.keys()) {
48
+ if (ref.deref() === target) {
49
+ this._targets.set(ref, this._targets.get(ref) + 1);
50
+ return;
51
+ }
52
+ }
53
+ this._targets.set(new WeakRef(target), 1);
54
+ }
55
+ $detach(target) {
56
+ for (const ref of this._targets.keys()) {
57
+ if (!ref.deref()) {
58
+ this._targets.delete(ref);
59
+ }
60
+ else if (ref.deref() === target) {
61
+ const remaining = this._targets.get(ref) - 1;
62
+ if (remaining > 0) {
63
+ this._targets.set(ref, remaining);
64
+ }
65
+ else {
66
+ this._targets.delete(ref);
67
+ }
68
+ }
69
+ }
12
70
  }
13
71
  // ── Internal methods ──────────────────────────────────────────────────────
14
72
  updatePadding() { }
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../../src/kurot/filters/Filter.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IAClB,2EAA2E;IAEpE,IAAI,GAAG,EAAE,CAAC;IAEjB,QAAQ,GAA4B,EAAE,CAAC;IAE7B,UAAU,GAAG,CAAC,CAAC;IACf,aAAa,GAAG,CAAC,CAAC;IAClB,WAAW,GAAG,CAAC,CAAC;IAChB,YAAY,GAAG,CAAC,CAAC;IAE3B,6EAA6E;IAEtE,gBAAgB;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;IAED,6EAA6E;IAEnE,aAAa,KAAU,CAAC;IAE3B,UAAU;QAChB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;IAC/G,CAAC;IAED,MAAM;QACL,OAAO,EAAE,CAAC;IACX,CAAC;CACD"}
1
+ {"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../../src/kurot/filters/Filter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { BitmapData } from '../display/texture/BitmapData.js';
2
+ /**
3
+ * A full-image auxiliary sampler. The caller owns its BitmapData.
4
+ * Cropped atlas Texture objects are not accepted; use a dedicated image.
5
+ */
6
+ export interface FilterTexture {
7
+ source: BitmapData;
8
+ /**
9
+ * Linear filtering by default; false uses nearest-neighbor sampling.
10
+ * Auxiliary sampling never changes the same image's sprite sampling state.
11
+ */
12
+ smoothing?: boolean;
13
+ /**
14
+ * Affine transform [a,b,c,d,tx,ty] from filter UV to image UV.
15
+ * Defaults to [1,0,0,-1,0,1], converting bottom-left filter UVs to
16
+ * top-left image UVs. Uploaded as <samplerName>Matrix (mat3).
17
+ * <samplerName>Clamp (vec4) contains the image's texel-center UV bounds.
18
+ */
19
+ transform?: readonly [number, number, number, number, number, number];
20
+ }
21
+ //# sourceMappingURL=FilterTexture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterTexture.d.ts","sourceRoot":"","sources":["../../../src/kurot/filters/FilterTexture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACtE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FilterTexture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterTexture.js","sourceRoot":"","sources":["../../../src/kurot/filters/FilterTexture.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"GlowFilter.d.ts","sourceRoot":"","sources":["../../../src/kurot/filters/GlowFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,UAAW,SAAQ,MAAM;IAGrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,SAAS,CAAU;gBAK1B,KAAK,SAAW,EAChB,KAAK,SAAI,EACT,KAAK,SAAI,EACT,KAAK,SAAI,EACT,QAAQ,SAAI,EACZ,OAAO,SAAI,EACX,KAAK,UAAQ,EACb,QAAQ,UAAQ;IAgCjB,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAU7B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAI7B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAIhC;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IACD,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAE/B;IAED,IAAW,KAAK,IAAI,OAAO,CAE1B;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,OAAO,EAI9B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAIjC;cAIkB,aAAa,IAAI,IAAI;IAK/B,MAAM,IAAI,MAAM;CAGzB"}
1
+ {"version":3,"file":"GlowFilter.d.ts","sourceRoot":"","sources":["../../../src/kurot/filters/GlowFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,UAAW,SAAQ,MAAM;IAGrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,SAAS,CAAU;gBAK1B,KAAK,SAAW,EAChB,KAAK,SAAI,EACT,KAAK,SAAI,EACT,KAAK,SAAI,EACT,QAAQ,SAAI,EACZ,OAAO,SAAI,EACX,KAAK,UAAQ,EACb,QAAQ,UAAQ;IAgCjB,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAW7B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAKhC;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IACD,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAG/B;IAED,IAAW,KAAK,IAAI,OAAO,CAE1B;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,OAAO,EAK9B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAKjC;cAIkB,aAAa,IAAI,IAAI;IAK/B,MAAM,IAAI,MAAM;CAGzB"}
@@ -56,6 +56,7 @@ export class GlowFilter extends Filter {
56
56
  c.x = this._red / 255;
57
57
  c.y = this._green / 255;
58
58
  c.z = this._blue / 255;
59
+ this.invalidate();
59
60
  }
60
61
  get alpha() {
61
62
  return this._alpha;
@@ -65,6 +66,7 @@ export class GlowFilter extends Filter {
65
66
  return;
66
67
  this._alpha = value;
67
68
  this.uniforms.alpha = value;
69
+ this.invalidate();
68
70
  }
69
71
  get blurX() {
70
72
  return this._blurX;
@@ -94,12 +96,14 @@ export class GlowFilter extends Filter {
94
96
  return;
95
97
  this._strength = value;
96
98
  this.uniforms.strength = value;
99
+ this.invalidate();
97
100
  }
98
101
  get quality() {
99
102
  return this._quality;
100
103
  }
101
104
  set quality(value) {
102
105
  this._quality = value;
106
+ this.invalidate();
103
107
  }
104
108
  get inner() {
105
109
  return this._inner;
@@ -109,6 +113,7 @@ export class GlowFilter extends Filter {
109
113
  return;
110
114
  this._inner = value;
111
115
  this.uniforms.inner = value ? 1 : 0;
116
+ this.invalidate();
112
117
  }
113
118
  get knockout() {
114
119
  return this._knockout;
@@ -118,6 +123,7 @@ export class GlowFilter extends Filter {
118
123
  return;
119
124
  this._knockout = value;
120
125
  this.uniforms.knockout = value ? 0 : 1;
126
+ this.invalidate();
121
127
  }
122
128
  // ── Internal methods ──────────────────────────────────────────────────────
123
129
  updatePadding() {
@@ -1 +1 @@
1
- {"version":3,"file":"GlowFilter.js","sourceRoot":"","sources":["../../../src/kurot/filters/GlowFilter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GlowFilter.js","sourceRoot":"","sources":["../../../src/kurot/filters/GlowFilter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { Filter } from './Filter.js';
2
+ import type { DisplayObject } from '../display/DisplayObject.js';
3
+ /**
4
+ * 'original' is this effect's input; numbers refer to earlier pass outputs.
5
+ */
6
+ export type FilterPassInput = 'original' | number;
7
+ export interface FilterPass {
8
+ filter: Filter;
9
+ /**
10
+ * Defaults to the previous pass, or 'original' for the first pass.
11
+ */
12
+ input?: FilterPassInput;
13
+ /**
14
+ * Additional framebuffer inputs for a CustomFilter's sampler2D uniforms.
15
+ * These use bottom-left UVs; their automatic <name>Matrix is identity.
16
+ */
17
+ textures?: Readonly<Record<string, FilterPassInput>>;
18
+ /**
19
+ * Output resolution relative to this effect's resolution, in (0, 1].
20
+ * Each pass covers the same logical rectangle, regardless of resolution.
21
+ */
22
+ scale?: number;
23
+ }
24
+ /**
25
+ * An immutable acyclic sequence of 1–32 GPU passes. Intermediate images are
26
+ * borrowed only within one render; the renderer owns and recycles them.
27
+ * Nested MultiPassFilter instances are intentionally not supported.
28
+ */
29
+ export declare class MultiPassFilter extends Filter {
30
+ readonly passes: readonly FilterPass[];
31
+ constructor(passes: readonly FilterPass[]);
32
+ getPadding(): {
33
+ left: number;
34
+ right: number;
35
+ top: number;
36
+ bottom: number;
37
+ };
38
+ $attach(target: DisplayObject): void;
39
+ $detach(target: DisplayObject): void;
40
+ }
41
+ //# sourceMappingURL=MultiPassFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiPassFilter.d.ts","sourceRoot":"","sources":["../../../src/kurot/filters/MultiPassFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IACrD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,MAAM;IAC1C,SAAgB,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;gBAE3B,MAAM,EAAE,SAAS,UAAU,EAAE;IAkBhC,UAAU,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAY1E,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKpC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;CAIpD"}
@@ -0,0 +1,53 @@
1
+ import { Filter } from './Filter.js';
2
+ /**
3
+ * An immutable acyclic sequence of 1–32 GPU passes. Intermediate images are
4
+ * borrowed only within one render; the renderer owns and recycles them.
5
+ * Nested MultiPassFilter instances are intentionally not supported.
6
+ */
7
+ export class MultiPassFilter extends Filter {
8
+ passes;
9
+ constructor(passes) {
10
+ super();
11
+ if (passes.length < 1 || passes.length > 32)
12
+ throw new RangeError('MultiPassFilter requires 1–32 passes.');
13
+ this.type = 'multiPass';
14
+ this.passes = Object.freeze(passes.map((pass, index) => {
15
+ if (pass.filter instanceof MultiPassFilter)
16
+ throw new Error('MultiPassFilter cannot contain another MultiPassFilter.');
17
+ const input = pass.input ?? (index === 0 ? 'original' : index - 1);
18
+ const scale = pass.scale ?? 1;
19
+ if (!Number.isFinite(scale) || scale <= 0 || scale > 1)
20
+ throw new RangeError('Filter pass scale must be in (0, 1].');
21
+ for (const ref of [input, ...Object.values(pass.textures ?? {})]) {
22
+ if (ref !== 'original' && (!Number.isInteger(ref) || ref < 0 || ref >= index)) {
23
+ throw new Error('Filter pass inputs must refer to the original or an earlier pass.');
24
+ }
25
+ }
26
+ return Object.freeze({ filter: pass.filter, input, scale, textures: Object.freeze({ ...pass.textures }) });
27
+ }));
28
+ }
29
+ getPadding() {
30
+ const padding = { left: 0, right: 0, top: 0, bottom: 0 };
31
+ for (const pass of this.passes) {
32
+ const next = pass.filter.getPadding();
33
+ padding.left += next.left;
34
+ padding.right += next.right;
35
+ padding.top += next.top;
36
+ padding.bottom += next.bottom;
37
+ }
38
+ return padding;
39
+ }
40
+ $attach(target) {
41
+ super.$attach(target);
42
+ for (const pass of this.passes) {
43
+ pass.filter.$attach(target);
44
+ }
45
+ }
46
+ $detach(target) {
47
+ super.$detach(target);
48
+ for (const pass of this.passes) {
49
+ pass.filter.$detach(target);
50
+ }
51
+ }
52
+ }
53
+ //# sourceMappingURL=MultiPassFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiPassFilter.js","sourceRoot":"","sources":["../../../src/kurot/filters/MultiPassFilter.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,10 @@ export { ColorMatrixFilter } from './ColorMatrixFilter.js';
4
4
  export { GlowFilter } from './GlowFilter.js';
5
5
  export { DropShadowFilter } from './DropShadowFilter.js';
6
6
  export { CustomFilter } from './CustomFilter.js';
7
+ export type { CustomFilterOptions, CustomFilterUniform, FilterProgramSource } from './CustomFilter.js';
8
+ export type { FilterTexture } from './FilterTexture.js';
9
+ export { MultiPassFilter } from './MultiPassFilter.js';
10
+ export type { FilterPass, FilterPassInput } from './MultiPassFilter.js';
11
+ export { BloomFilter } from './BloomFilter.js';
12
+ export type { BloomFilterOptions } from './BloomFilter.js';
7
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kurot/filters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kurot/filters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACvG,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -4,4 +4,6 @@ export { ColorMatrixFilter } from './ColorMatrixFilter.js';
4
4
  export { GlowFilter } from './GlowFilter.js';
5
5
  export { DropShadowFilter } from './DropShadowFilter.js';
6
6
  export { CustomFilter } from './CustomFilter.js';
7
+ export { MultiPassFilter } from './MultiPassFilter.js';
8
+ export { BloomFilter } from './BloomFilter.js';
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kurot/filters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kurot/filters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../../src/kurot/player/Player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG5D;;;GAGG;AACH,qBAAa,MAAO,YAAW,UAAU;IAExC,SAAgB,KAAK,EAAE,KAAK,CAAC;IAC7B,SAAgB,IAAI;;;;;;;;;;;;;MAalB;IAEF,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAgB;IAC9B,OAAO,CAAC,eAAe,CAAC,CAAe;IACvC,OAAO,CAAC,iBAAiB,CAAC,CAAiB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAoB;IACzC,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,oBAAoB,CAAyB;IACrD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAqB;gBAGtB,MAAM,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,KAAK;IA8B3D,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,+EAA+E;IAC/E,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,0EAA0E;IAC1E,IAAW,oBAAoB,IAAI,MAAM,CAExC;IAEM,KAAK,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI;IAWjC,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;IAMpB;;OAEG;IACI,OAAO,IAAI,IAAI;IAStB;;OAEG;IACI,eAAe,CACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAAc,EAC3B,YAAY,GAAE,MAAe,GAC3B,IAAI;IAsBA,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;CAwClE"}
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../../src/kurot/player/Player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG5D;;;GAGG;AACH,qBAAa,MAAO,YAAW,UAAU;IAExC,SAAgB,KAAK,EAAE,KAAK,CAAC;IAC7B,SAAgB,IAAI;;;;;;;;;;;;;MAalB;IAEF,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAgB;IAC9B,OAAO,CAAC,eAAe,CAAC,CAAe;IACvC,OAAO,CAAC,iBAAiB,CAAC,CAAiB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAoB;IACzC,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,oBAAoB,CAAyB;IACrD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAqB;gBAGtB,MAAM,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,KAAK;IA8B3D,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,+EAA+E;IAC/E,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,0EAA0E;IAC1E,IAAW,oBAAoB,IAAI,MAAM,CAExC;IAEM,KAAK,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI;IAWjC,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;IAMpB;;OAEG;IACI,OAAO,IAAI,IAAI;IAUtB;;OAEG;IACI,eAAe,CACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAAc,EAC3B,YAAY,GAAE,MAAe,GAC3B,IAAI;IAsBA,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;CAwClE"}
@@ -99,6 +99,7 @@ export class Player {
99
99
  */
100
100
  destroy() {
101
101
  this.pause();
102
+ this._webglContext?.releaseFilterResources();
102
103
  for (const fn of this._unregisterCallbacks)
103
104
  fn();
104
105
  this._unregisterCallbacks = [];
@@ -1 +1 @@
1
- {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../../src/kurot/player/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../../src/kurot/player/Player.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasRenderer.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/canvas/CanvasRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAyB,MAAM,yBAAyB,CAAC;AAIxE,OAAO,EAAE,QAAQ,EAAsB,MAAM,2BAA2B,CAAC;AAGzE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAM9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKpD,OAAO,EAAE,YAAY,EAAiB,MAAM,mBAAmB,CAAC;AAsBhE;;GAEG;AACH,qBAAa,cAAc;IAG1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4C;IAC7E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8C;IACjF,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAK;IAIxB;;OAEG;IACI,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAmBnF,eAAe,CACrB,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,SAAI,GACZ,IAAI;IAUA,uBAAuB,CAC7B,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,UAAQ,EAClB,SAAS,UAAQ,GACf,IAAI;IAIA,wBAAwB,CAC9B,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACb,IAAI;IAIA,qBAAqB,CAC3B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACb,IAAI;IAKP,OAAO,CAAC,iBAAiB;IAgHzB,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,cAAc;IAuGtB,OAAO,CAAC,YAAY;IAuFpB,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,UAAU;IA+ClB,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,oBAAoB;IA8E5B,OAAO,CAAC,cAAc;IAoEtB,OAAO,CAAC,eAAe;IA6KvB,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,sBAAsB;CAmI9B"}
1
+ {"version":3,"file":"CanvasRenderer.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/canvas/CanvasRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAyB,MAAM,yBAAyB,CAAC;AAIxE,OAAO,EAAE,QAAQ,EAAsB,MAAM,2BAA2B,CAAC;AAGzE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAM9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKpD,OAAO,EAAE,YAAY,EAAiB,MAAM,mBAAmB,CAAC;AAsBhE;;GAEG;AACH,qBAAa,cAAc;IAG1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4C;IAC7E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8C;IACjF,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAK;IAIxB;;OAEG;IACI,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAmBnF,eAAe,CACrB,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,SAAI,GACZ,IAAI;IAUA,uBAAuB,CAC7B,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,UAAQ,EAClB,SAAS,UAAQ,GACf,IAAI;IAIA,wBAAwB,CAC9B,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACb,IAAI;IAIA,qBAAqB,CAC3B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACb,IAAI;IAKP,OAAO,CAAC,iBAAiB;IAgHzB,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,cAAc;IAuGtB,OAAO,CAAC,YAAY;IAuFpB,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,UAAU;IAgDlB,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,qBAAqB;IAgC7B,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,oBAAoB;IA+E5B,OAAO,CAAC,cAAc;IAoEtB,OAAO,CAAC,eAAe;IA6KvB,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,sBAAsB;CAmI9B"}