@swf2es/player 0.1.0 → 0.1.1

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 (277) hide show
  1. package/package.json +7 -7
  2. package/dist/audio.d.ts +0 -22
  3. package/dist/audio.d.ts.map +0 -1
  4. package/dist/audio.js +0 -106
  5. package/dist/audio.js.map +0 -1
  6. package/dist/bitmap-filters.d.ts +0 -29
  7. package/dist/bitmap-filters.d.ts.map +0 -1
  8. package/dist/bitmap-filters.js +0 -906
  9. package/dist/bitmap-filters.js.map +0 -1
  10. package/dist/bitmap-ops.d.ts +0 -113
  11. package/dist/bitmap-ops.d.ts.map +0 -1
  12. package/dist/bitmap-ops.js +0 -725
  13. package/dist/bitmap-ops.js.map +0 -1
  14. package/dist/bitmap.d.ts +0 -98
  15. package/dist/bitmap.d.ts.map +0 -1
  16. package/dist/bitmap.js +0 -314
  17. package/dist/bitmap.js.map +0 -1
  18. package/dist/bounds.d.ts +0 -26
  19. package/dist/bounds.d.ts.map +0 -1
  20. package/dist/bounds.js +0 -300
  21. package/dist/bounds.js.map +0 -1
  22. package/dist/color.d.ts +0 -7
  23. package/dist/color.d.ts.map +0 -1
  24. package/dist/color.js +0 -42
  25. package/dist/color.js.map +0 -1
  26. package/dist/display.d.ts +0 -425
  27. package/dist/display.d.ts.map +0 -1
  28. package/dist/display.js +0 -1274
  29. package/dist/display.js.map +0 -1
  30. package/dist/drawing.d.ts +0 -52
  31. package/dist/drawing.d.ts.map +0 -1
  32. package/dist/drawing.js +0 -204
  33. package/dist/drawing.js.map +0 -1
  34. package/dist/filters.d.ts +0 -54
  35. package/dist/filters.d.ts.map +0 -1
  36. package/dist/filters.js +0 -155
  37. package/dist/filters.js.map +0 -1
  38. package/dist/fonts.d.ts +0 -23
  39. package/dist/fonts.d.ts.map +0 -1
  40. package/dist/fonts.js +0 -91
  41. package/dist/fonts.js.map +0 -1
  42. package/dist/geometry.d.ts +0 -21
  43. package/dist/geometry.d.ts.map +0 -1
  44. package/dist/geometry.js +0 -76
  45. package/dist/geometry.js.map +0 -1
  46. package/dist/gradients.d.ts +0 -29
  47. package/dist/gradients.d.ts.map +0 -1
  48. package/dist/gradients.js +0 -116
  49. package/dist/gradients.js.map +0 -1
  50. package/dist/images.d.ts +0 -22
  51. package/dist/images.d.ts.map +0 -1
  52. package/dist/images.js +0 -147
  53. package/dist/images.js.map +0 -1
  54. package/dist/input.d.ts +0 -79
  55. package/dist/input.d.ts.map +0 -1
  56. package/dist/input.js +0 -366
  57. package/dist/input.js.map +0 -1
  58. package/dist/keyboard.d.ts +0 -97
  59. package/dist/keyboard.d.ts.map +0 -1
  60. package/dist/keyboard.js +0 -583
  61. package/dist/keyboard.js.map +0 -1
  62. package/dist/morph.d.ts +0 -17
  63. package/dist/morph.d.ts.map +0 -1
  64. package/dist/morph.js +0 -218
  65. package/dist/morph.js.map +0 -1
  66. package/dist/pixi-blend.d.ts +0 -7
  67. package/dist/pixi-blend.d.ts.map +0 -1
  68. package/dist/pixi-blend.js +0 -253
  69. package/dist/pixi-blend.js.map +0 -1
  70. package/dist/pixi-color.d.ts +0 -54
  71. package/dist/pixi-color.d.ts.map +0 -1
  72. package/dist/pixi-color.js +0 -336
  73. package/dist/pixi-color.js.map +0 -1
  74. package/dist/pixi-filters.d.ts +0 -40
  75. package/dist/pixi-filters.d.ts.map +0 -1
  76. package/dist/pixi-filters.js +0 -953
  77. package/dist/pixi-filters.js.map +0 -1
  78. package/dist/pixi-resolve.d.ts +0 -4
  79. package/dist/pixi-resolve.d.ts.map +0 -1
  80. package/dist/pixi-resolve.js +0 -76
  81. package/dist/pixi-resolve.js.map +0 -1
  82. package/dist/pixi.d.ts +0 -219
  83. package/dist/pixi.d.ts.map +0 -1
  84. package/dist/pixi.js +0 -2169
  85. package/dist/pixi.js.map +0 -1
  86. package/dist/playerglobal/flash/filters/filters.d.ts +0 -26
  87. package/dist/playerglobal/flash/filters/filters.d.ts.map +0 -1
  88. package/dist/playerglobal/flash/filters/filters.js +0 -287
  89. package/dist/playerglobal/flash/filters/filters.js.map +0 -1
  90. package/dist/playerglobal/flash/system/FSCommand.d.ts +0 -4
  91. package/dist/playerglobal/flash/system/FSCommand.d.ts.map +0 -1
  92. package/dist/playerglobal/flash/system/FSCommand.js +0 -18
  93. package/dist/playerglobal/flash/system/FSCommand.js.map +0 -1
  94. package/dist/playerglobal/natives.d.ts +0 -10
  95. package/dist/playerglobal/natives.d.ts.map +0 -1
  96. package/dist/playerglobal/natives.js +0 -53
  97. package/dist/playerglobal/natives.js.map +0 -1
  98. package/dist/png.d.ts +0 -4
  99. package/dist/png.d.ts.map +0 -1
  100. package/dist/png.js +0 -140
  101. package/dist/png.js.map +0 -1
  102. package/dist/render/art.d.ts +0 -148
  103. package/dist/render/art.d.ts.map +0 -1
  104. package/dist/render/art.js +0 -575
  105. package/dist/render/art.js.map +0 -1
  106. package/dist/render/batchers.d.ts +0 -23
  107. package/dist/render/batchers.d.ts.map +0 -1
  108. package/dist/render/batchers.js +0 -52
  109. package/dist/render/batchers.js.map +0 -1
  110. package/dist/render/bitmaps.d.ts +0 -117
  111. package/dist/render/bitmaps.d.ts.map +0 -1
  112. package/dist/render/bitmaps.js +0 -422
  113. package/dist/render/bitmaps.js.map +0 -1
  114. package/dist/render/blend.d.ts +0 -37
  115. package/dist/render/blend.d.ts.map +0 -1
  116. package/dist/render/blend.js +0 -195
  117. package/dist/render/blend.js.map +0 -1
  118. package/dist/render/color.d.ts +0 -111
  119. package/dist/render/color.d.ts.map +0 -1
  120. package/dist/render/color.js +0 -533
  121. package/dist/render/color.js.map +0 -1
  122. package/dist/render/compositing.d.ts +0 -77
  123. package/dist/render/compositing.d.ts.map +0 -1
  124. package/dist/render/compositing.js +0 -188
  125. package/dist/render/compositing.js.map +0 -1
  126. package/dist/render/filters.d.ts +0 -98
  127. package/dist/render/filters.d.ts.map +0 -1
  128. package/dist/render/filters.js +0 -1326
  129. package/dist/render/filters.js.map +0 -1
  130. package/dist/render/hooks.d.ts +0 -4
  131. package/dist/render/hooks.d.ts.map +0 -1
  132. package/dist/render/hooks.js +0 -48
  133. package/dist/render/hooks.js.map +0 -1
  134. package/dist/render/node.d.ts +0 -139
  135. package/dist/render/node.d.ts.map +0 -1
  136. package/dist/render/node.js +0 -59
  137. package/dist/render/node.js.map +0 -1
  138. package/dist/render/patches.d.ts +0 -54
  139. package/dist/render/patches.d.ts.map +0 -1
  140. package/dist/render/patches.js +0 -154
  141. package/dist/render/patches.js.map +0 -1
  142. package/dist/render/planes.d.ts +0 -74
  143. package/dist/render/planes.d.ts.map +0 -1
  144. package/dist/render/planes.js +0 -267
  145. package/dist/render/planes.js.map +0 -1
  146. package/dist/render/pointer.d.ts +0 -5
  147. package/dist/render/pointer.d.ts.map +0 -1
  148. package/dist/render/pointer.js +0 -279
  149. package/dist/render/pointer.js.map +0 -1
  150. package/dist/render/pools.d.ts +0 -122
  151. package/dist/render/pools.d.ts.map +0 -1
  152. package/dist/render/pools.js +0 -238
  153. package/dist/render/pools.js.map +0 -1
  154. package/dist/render/resolve.d.ts +0 -4
  155. package/dist/render/resolve.d.ts.map +0 -1
  156. package/dist/render/resolve.js +0 -76
  157. package/dist/render/resolve.js.map +0 -1
  158. package/dist/render/saffron.d.ts +0 -135
  159. package/dist/render/saffron.d.ts.map +0 -1
  160. package/dist/render/saffron.js +0 -725
  161. package/dist/render/saffron.js.map +0 -1
  162. package/dist/render/settle.d.ts +0 -60
  163. package/dist/render/settle.d.ts.map +0 -1
  164. package/dist/render/settle.js +0 -128
  165. package/dist/render/settle.js.map +0 -1
  166. package/dist/render/shared.d.ts +0 -25
  167. package/dist/render/shared.d.ts.map +0 -1
  168. package/dist/render/shared.js +0 -33
  169. package/dist/render/shared.js.map +0 -1
  170. package/dist/render/snapshot.d.ts +0 -21
  171. package/dist/render/snapshot.d.ts.map +0 -1
  172. package/dist/render/snapshot.js +0 -91
  173. package/dist/render/snapshot.js.map +0 -1
  174. package/dist/render/spares.d.ts +0 -56
  175. package/dist/render/spares.d.ts.map +0 -1
  176. package/dist/render/spares.js +0 -160
  177. package/dist/render/spares.js.map +0 -1
  178. package/dist/render/strokes.d.ts +0 -107
  179. package/dist/render/strokes.d.ts.map +0 -1
  180. package/dist/render/strokes.js +0 -448
  181. package/dist/render/strokes.js.map +0 -1
  182. package/dist/render/table.d.ts +0 -213
  183. package/dist/render/table.d.ts.map +0 -1
  184. package/dist/render/table.js +0 -795
  185. package/dist/render/table.js.map +0 -1
  186. package/dist/render/tessellate.d.ts +0 -89
  187. package/dist/render/tessellate.d.ts.map +0 -1
  188. package/dist/render/tessellate.js +0 -386
  189. package/dist/render/tessellate.js.map +0 -1
  190. package/dist/render/text.d.ts +0 -40
  191. package/dist/render/text.d.ts.map +0 -1
  192. package/dist/render/text.js +0 -309
  193. package/dist/render/text.js.map +0 -1
  194. package/dist/render/three.d.ts +0 -83
  195. package/dist/render/three.d.ts.map +0 -1
  196. package/dist/render/three.js +0 -511
  197. package/dist/render/three.js.map +0 -1
  198. package/dist/render/triangles.d.ts +0 -28
  199. package/dist/render/triangles.d.ts.map +0 -1
  200. package/dist/render/triangles.js +0 -189
  201. package/dist/render/triangles.js.map +0 -1
  202. package/dist/render/view.d.ts +0 -238
  203. package/dist/render/view.d.ts.map +0 -1
  204. package/dist/render/view.js +0 -1173
  205. package/dist/render/view.js.map +0 -1
  206. package/dist/render/worker/bitmaps.d.ts +0 -43
  207. package/dist/render/worker/bitmaps.d.ts.map +0 -1
  208. package/dist/render/worker/bitmaps.js +0 -151
  209. package/dist/render/worker/bitmaps.js.map +0 -1
  210. package/dist/render/worker/drawing.d.ts +0 -21
  211. package/dist/render/worker/drawing.d.ts.map +0 -1
  212. package/dist/render/worker/drawing.js +0 -356
  213. package/dist/render/worker/drawing.js.map +0 -1
  214. package/dist/render/worker/filters.d.ts +0 -7
  215. package/dist/render/worker/filters.d.ts.map +0 -1
  216. package/dist/render/worker/filters.js +0 -125
  217. package/dist/render/worker/filters.js.map +0 -1
  218. package/dist/render/worker/frames.d.ts +0 -32
  219. package/dist/render/worker/frames.d.ts.map +0 -1
  220. package/dist/render/worker/frames.js +0 -124
  221. package/dist/render/worker/frames.js.map +0 -1
  222. package/dist/render/worker/host.d.ts +0 -60
  223. package/dist/render/worker/host.d.ts.map +0 -1
  224. package/dist/render/worker/host.js +0 -297
  225. package/dist/render/worker/host.js.map +0 -1
  226. package/dist/render/worker/libraries.d.ts +0 -36
  227. package/dist/render/worker/libraries.d.ts.map +0 -1
  228. package/dist/render/worker/libraries.js +0 -153
  229. package/dist/render/worker/libraries.js.map +0 -1
  230. package/dist/render/worker/presentation.d.ts +0 -18
  231. package/dist/render/worker/presentation.d.ts.map +0 -1
  232. package/dist/render/worker/presentation.js +0 -47
  233. package/dist/render/worker/presentation.js.map +0 -1
  234. package/dist/render/worker/renderer.d.ts +0 -4
  235. package/dist/render/worker/renderer.d.ts.map +0 -1
  236. package/dist/render/worker/renderer.js +0 -21
  237. package/dist/render/worker/renderer.js.map +0 -1
  238. package/dist/render/worker/scene.d.ts +0 -32
  239. package/dist/render/worker/scene.d.ts.map +0 -1
  240. package/dist/render/worker/scene.js +0 -611
  241. package/dist/render/worker/scene.js.map +0 -1
  242. package/dist/render/worker/text.d.ts +0 -47
  243. package/dist/render/worker/text.d.ts.map +0 -1
  244. package/dist/render/worker/text.js +0 -261
  245. package/dist/render/worker/text.js.map +0 -1
  246. package/dist/render/worker/thread.d.ts +0 -23
  247. package/dist/render/worker/thread.d.ts.map +0 -1
  248. package/dist/render/worker/thread.js +0 -107
  249. package/dist/render/worker/thread.js.map +0 -1
  250. package/dist/render/worker/values.d.ts +0 -18
  251. package/dist/render/worker/values.d.ts.map +0 -1
  252. package/dist/render/worker/values.js +0 -64
  253. package/dist/render/worker/values.js.map +0 -1
  254. package/dist/sha256.d.ts +0 -5
  255. package/dist/sha256.d.ts.map +0 -1
  256. package/dist/sha256.js +0 -96
  257. package/dist/sha256.js.map +0 -1
  258. package/dist/shapes.d.ts +0 -71
  259. package/dist/shapes.d.ts.map +0 -1
  260. package/dist/shapes.js +0 -340
  261. package/dist/shapes.js.map +0 -1
  262. package/dist/static-text.d.ts +0 -33
  263. package/dist/static-text.d.ts.map +0 -1
  264. package/dist/static-text.js +0 -105
  265. package/dist/static-text.js.map +0 -1
  266. package/dist/text-layout.d.ts +0 -66
  267. package/dist/text-layout.d.ts.map +0 -1
  268. package/dist/text-layout.js +0 -315
  269. package/dist/text-layout.js.map +0 -1
  270. package/dist/text.d.ts +0 -67
  271. package/dist/text.d.ts.map +0 -1
  272. package/dist/text.js +0 -383
  273. package/dist/text.js.map +0 -1
  274. package/dist/timeline.d.ts +0 -150
  275. package/dist/timeline.d.ts.map +0 -1
  276. package/dist/timeline.js +0 -266
  277. package/dist/timeline.js.map +0 -1
package/dist/morph.js DELETED
@@ -1,218 +0,0 @@
1
- import { shapeLayers } from "./shapes.js";
2
- /**
3
- * The layers of blends a morph no longer keeps. The renderer shares a
4
- * blend's lines while it is kept; one made again for the same ratio has
5
- * layers of its own, so lines kept for these would never be found again.
6
- */
7
- export const droppedLayers = new WeakSet();
8
- /** The layers of every blend made, whose lines the renderer watches for their dropping. */
9
- export const blendLayers = new WeakSet();
10
- /** How many blends a morph keeps: its latest ratios, enough for instances in step to share them. */
11
- const KEPT_BLENDS = 16;
12
- /**
13
- * The shape `character` is at `ratio`, 0 its start to 65535 its end: made
14
- * the first time it is asked for and kept while it is among the morph's
15
- * latest, as a tween asks for a new ratio on each frame.
16
- */
17
- export function morphAt(character, ratio) {
18
- const blends = character.blends;
19
- let shape = blends.get(ratio);
20
- if (shape) {
21
- // Last in the map's order, the most recently asked for.
22
- blends.delete(ratio);
23
- }
24
- else {
25
- const blended = blend(character.morph, ratio / 65535);
26
- shape = {
27
- type: "shape",
28
- id: character.id,
29
- shape: blended,
30
- layers: shapeLayers(blended, character.bitmap),
31
- };
32
- for (const layer of shape.layers) {
33
- blendLayers.add(layer);
34
- }
35
- }
36
- blends.set(ratio, shape);
37
- if (blends.size > KEPT_BLENDS) {
38
- const oldest = blends.keys().next().value;
39
- for (const layer of blends.get(oldest)?.layers ?? []) {
40
- droppedLayers.add(layer);
41
- }
42
- blends.delete(oldest);
43
- }
44
- return shape;
45
- }
46
- const mix = (a, b, t) => a + (b - a) * t;
47
- /** Each channel of two 0xAARRGGBB colours mixed, as a byte. */
48
- function mixColor(a, b, t) {
49
- let out = 0;
50
- for (let shift = 24; shift >= 0; shift -= 8) {
51
- const channel = Math.round(mix((a >>> shift) & 0xff, (b >>> shift) & 0xff, t));
52
- out = out * 256 + channel;
53
- }
54
- return out;
55
- }
56
- function mixMatrix(a, b, t) {
57
- return {
58
- a: mix(a.a, b.a, t),
59
- b: mix(a.b, b.b, t),
60
- c: mix(a.c, b.c, t),
61
- d: mix(a.d, b.d, t),
62
- tx: mix(a.tx, b.tx, t),
63
- ty: mix(a.ty, b.ty, t),
64
- };
65
- }
66
- function mixRect(a, b, t) {
67
- return {
68
- xMin: mix(a.xMin, b.xMin, t),
69
- xMax: mix(a.xMax, b.xMax, t),
70
- yMin: mix(a.yMin, b.yMin, t),
71
- yMax: mix(a.yMax, b.yMax, t),
72
- };
73
- }
74
- function mixGradient(a, b, t) {
75
- return {
76
- matrix: mixMatrix(a.matrix, b.matrix, t),
77
- spread: a.spread,
78
- interpolation: a.interpolation,
79
- stops: a.stops.map((stop, i) => {
80
- const other = b.stops[i] ?? stop;
81
- return {
82
- ratio: Math.round(mix(stop.ratio, other.ratio, t)),
83
- color: mixColor(stop.color, other.color, t),
84
- };
85
- }),
86
- focal: mix(a.focal, b.focal, t),
87
- };
88
- }
89
- /** Two fills of one MORPHFILLSTYLE, which share their type. */
90
- function mixFill(a, b, t) {
91
- if (a.type === "solid" && b.type === "solid") {
92
- return { type: "solid", color: mixColor(a.color, b.color, t) };
93
- }
94
- if (a.type === "bitmap" && b.type === "bitmap") {
95
- return { ...a, matrix: mixMatrix(a.matrix, b.matrix, t) };
96
- }
97
- if (a.type !== "solid" && a.type !== "bitmap" && b.type === a.type) {
98
- return { type: a.type, gradient: mixGradient(a.gradient, b.gradient, t) };
99
- }
100
- return a;
101
- }
102
- function mixLine(a, b, t) {
103
- return {
104
- ...a,
105
- width: mix(a.width, b.width, t),
106
- color: mixColor(a.color, b.color, t),
107
- fill: a.fill && b.fill ? mixFill(a.fill, b.fill, t) : a.fill,
108
- };
109
- }
110
- const NO_EDGE = { type: "line", dx: 0, dy: 0 };
111
- /**
112
- * An edge from `pen` in absolute twips: its control point, halfway along a straight one, and
113
- * anchor.
114
- */
115
- function absolute(e, pen) {
116
- if (e.type === "line") {
117
- const anchor = { x: pen.x + e.dx, y: pen.y + e.dy };
118
- return {
119
- control: { x: (pen.x + anchor.x) / 2, y: (pen.y + anchor.y) / 2 },
120
- anchor,
121
- straight: true,
122
- };
123
- }
124
- const control = { x: pen.x + e.cx, y: pen.y + e.cy };
125
- return { control, anchor: { x: control.x + e.ax, y: control.y + e.ay }, straight: false };
126
- }
127
- /**
128
- * Two points mixed, to the twip: whole twips keep the pen's sums exact, and closed paths closed.
129
- */
130
- const mixPoint = (a, b, t) => ({
131
- x: Math.round(mix(a.x, b.x, t)),
132
- y: Math.round(mix(a.y, b.y, t)),
133
- });
134
- /**
135
- * The morph at `t`, 0 to 1. The ends' edges pair in order, a straight
136
- * one with a curve as a curve, and their points are mixed where they lie,
137
- * not their deltas. A style change is the start's, its move mixed with
138
- * the end's where the end has one there, else with the end's pen; a move
139
- * only the end has moves the pen from the start's.
140
- */
141
- function blend(morph, t) {
142
- const records = [];
143
- const start = morph.start;
144
- const end = morph.end;
145
- let startPen = { x: 0, y: 0 };
146
- let endPen = { x: 0, y: 0 };
147
- let pen = { x: 0, y: 0 };
148
- let i = 0;
149
- let j = 0;
150
- while (i < start.length) {
151
- const s = start[i];
152
- const e = end[j];
153
- if (s.type === "style") {
154
- const endStyle = e?.type === "style" ? e : null;
155
- if (endStyle) {
156
- j++;
157
- endPen = endStyle.moveTo ?? endPen;
158
- }
159
- startPen = s.moveTo ?? startPen;
160
- const moves = s.moveTo !== null || endStyle?.moveTo;
161
- if (moves) {
162
- pen = mixPoint(startPen, endPen, t);
163
- }
164
- records.push({ ...s, moveTo: moves ? pen : null });
165
- i++;
166
- continue;
167
- }
168
- if (e?.type === "style") {
169
- if (e.moveTo) {
170
- endPen = e.moveTo;
171
- pen = mixPoint(startPen, endPen, t);
172
- records.push({
173
- type: "style",
174
- moveTo: pen,
175
- fill0: null,
176
- fill1: null,
177
- line: null,
178
- styles: null,
179
- });
180
- }
181
- j++;
182
- continue;
183
- }
184
- const a = absolute(s, startPen);
185
- const b = absolute(e ?? NO_EDGE, endPen);
186
- const anchor = mixPoint(a.anchor, b.anchor, t);
187
- if (a.straight && b.straight) {
188
- records.push({ type: "line", dx: anchor.x - pen.x, dy: anchor.y - pen.y });
189
- }
190
- else {
191
- const control = mixPoint(a.control, b.control, t);
192
- records.push({
193
- type: "curve",
194
- cx: control.x - pen.x,
195
- cy: control.y - pen.y,
196
- ax: anchor.x - control.x,
197
- ay: anchor.y - control.y,
198
- });
199
- }
200
- startPen = a.anchor;
201
- endPen = b.anchor;
202
- pen = anchor;
203
- i++;
204
- j++;
205
- }
206
- return {
207
- id: morph.id,
208
- bounds: mixRect(morph.startBounds, morph.endBounds, t),
209
- edgeBounds: morph.startEdgeBounds && morph.endEdgeBounds
210
- ? mixRect(morph.startEdgeBounds, morph.endEdgeBounds, t)
211
- : null,
212
- fills: morph.fills.map((f) => mixFill(f.start, f.end, t)),
213
- lines: morph.lines.map((l) => mixLine(l.start, l.end, t)),
214
- records,
215
- truncated: morph.truncated,
216
- };
217
- }
218
- //# sourceMappingURL=morph.js.map
package/dist/morph.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"morph.js","sourceRoot":"","sources":["../src/morph.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { type Filter } from "pixi.js";
2
- /**
3
- * The filters that composite an object in `mode`: none for normal; for
4
- * layer one that only makes it a layer; for any other the mode's blend.
5
- */
6
- export declare function blendFilters(mode: string): Filter[] | null;
7
- //# sourceMappingURL=pixi-blend.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pixi-blend.d.ts","sourceRoot":"","sources":["../src/pixi-blend.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,MAAM,EAOZ,MAAM,SAAS,CAAC;AAuQjB;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAoB1D"}
@@ -1,253 +0,0 @@
1
- // Blend modes as Flash composites them (docs/architecture.md, "Blend
2
- // modes"): the object drawn as a layer, its children together, then that
3
- // layer blended with what is below by the mode's formula, which a filter
4
- // that reads the back buffer computes. Colours are premultiplied.
5
- import { AlphaFilter, BlendModeFilter, FilterEffect, FilterSystem, RenderTargetSystem, Texture, TexturePool, TextureSource, } from "pixi.js";
6
- const filterSystem = FilterSystem.prototype;
7
- // Graphics batch bindings fill their unused slots with EMPTY. Removing a
8
- // listener from it scans all those slots, every time a blend follows a
9
- // regular filter. Keep the filter system's empty back texture private.
10
- const emptyBackTextures = new WeakMap();
11
- const applyFiltersToTexture = filterSystem._applyFiltersToTexture;
12
- filterSystem._applyFiltersToTexture = function (data, clear) {
13
- const back = data.backTexture;
14
- if (back === Texture.EMPTY) {
15
- let empty = emptyBackTextures.get(this);
16
- if (!empty) {
17
- empty = new Texture({ source: new TextureSource() });
18
- emptyBackTextures.set(this, empty);
19
- }
20
- data.backTexture = empty;
21
- }
22
- try {
23
- applyFiltersToTexture.call(this, data, clear);
24
- }
25
- finally {
26
- data.backTexture = back;
27
- }
28
- };
29
- const destroyFilterSystem = FilterSystem.prototype.destroy;
30
- FilterSystem.prototype.destroy = function () {
31
- const empty = emptyBackTextures.get(this);
32
- if (empty) {
33
- const group = this._globalFilterBindGroup;
34
- group.destroy();
35
- emptyBackTextures.delete(this);
36
- empty.destroy(true);
37
- }
38
- destroyFilterSystem.call(this);
39
- };
40
- // A layer's region holds what its filtered children draw past their shapes,
41
- // as Flash's layer holds a child's glow whole: Pixi measures a filtered
42
- // object by its descendants' shapes alone, and cut a blurred child of a
43
- // blend off at its shapes' edges. Each filter of a descendant grows the
44
- // region by its padding, in the stage's pixels as Pixi pads; the object's
45
- // own filters are padded by Pixi after.
46
- let measuring = null;
47
- FilterEffect.prototype.addBounds =
48
- function (bounds) {
49
- if (this === measuring || !this.filters) {
50
- return;
51
- }
52
- let padding = 0;
53
- for (const f of this.filters) {
54
- if (f.enabled) {
55
- padding += f.padding;
56
- }
57
- }
58
- bounds.pad(padding | 0);
59
- };
60
- const calculateFilterArea = filterSystem._calculateFilterArea;
61
- filterSystem._calculateFilterArea = function (instruction, bounds) {
62
- measuring = instruction.filterEffect;
63
- try {
64
- calculateFilterArea.call(this, instruction, bounds);
65
- }
66
- finally {
67
- measuring = null;
68
- }
69
- };
70
- // A filter's region on its texture's texels. Pixi puts the region on them
71
- // and then pads it by whole pixels, which at a resolution that is no whole
72
- // number (a stage fitted to its window) leaves it between them: the filter
73
- // read its input between texels, and a blend nested in a layer, its region
74
- // starting left of or above the layer's, read along its top and left edge
75
- // texels of the pooled back texture the copy of what is behind never
76
- // reached, drawing lines Flash does not. The region is put on the texels
77
- // again after the padding. Patched for every renderer on the page.
78
- const SNAP = 1e-6;
79
- const calculateFilterBounds = filterSystem._calculateFilterBounds;
80
- filterSystem._calculateFilterBounds = function (data, ...rest) {
81
- calculateFilterBounds.call(this, data, ...rest);
82
- if (data.skip) {
83
- return;
84
- }
85
- const r = data.resolution;
86
- const b = data.bounds;
87
- b.minX = Math.floor(b.minX * r + SNAP) / r;
88
- b.minY = Math.floor(b.minY * r + SNAP) / r;
89
- b.maxX = Math.ceil(b.maxX * r - SNAP) / r;
90
- b.maxY = Math.ceil(b.maxY * r - SNAP) / r;
91
- };
92
- // The copy of what is behind a blend into its back texture, held to both:
93
- // - The texture is sized with a hair of tolerance for rounding, and the
94
- // copy without, so at some resolutions the copy is a pixel taller or
95
- // wider than the texture, which GL refuses (copyTexSubImage2D's offset
96
- // overflow), and the blend reads nothing.
97
- // - An object at or past the target's edge asks for pixels the target does
98
- // not have; Pixi's own clamp then leaves a width or height below zero,
99
- // which GL refuses (GL_INVALID_VALUE) and WebGPU fails its frame for.
100
- // What the copy does not reach is not cleared: it lies past what the
101
- // target has, where what the filter draws is cut off anyway (the
102
- // `blend-edges` case matches adl without it). Patched for every renderer
103
- // on the page.
104
- const copyToTexture = RenderTargetSystem.prototype.copyToTexture;
105
- RenderTargetSystem.prototype.copyToTexture = function (source, destination, from, size, to) {
106
- const target = this.getRenderTarget(source);
107
- const { pixelWidth, pixelHeight } = destination.source;
108
- // What the texture can take of what was asked, and of that what the target has.
109
- const reachX = Math.min(to.x + size.width, pixelWidth);
110
- const reachY = Math.min(to.y + size.height, pixelHeight);
111
- const skipX = Math.max(0, -from.x, -to.x);
112
- const skipY = Math.max(0, -from.y, -to.y);
113
- const x = from.x + skipX;
114
- const y = from.y + skipY;
115
- const toX = to.x + skipX;
116
- const toY = to.y + skipY;
117
- const width = Math.min(reachX - toX, target.pixelWidth - x);
118
- const height = Math.min(reachY - toY, target.pixelHeight - y);
119
- if (width <= 0 || height <= 0) {
120
- return destination;
121
- }
122
- return copyToTexture.call(this, source, destination, { x, y }, { width, height }, { x: toX, y: toY });
123
- };
124
- // What is behind a blend is copied from the pixels its bounds cover, which
125
- // Pixi has put on whole pixels of the target but keeps in stage units, as
126
- // k · (1/r): at a resolution such as 1.62, as a host fitting the stage to
127
- // its page gives, k · (1/r) · r can fall a hair short of k, and Pixi's floor
128
- // took the pixel before it. The blend then read what was behind it a pixel
129
- // off at those positions alone, so a moving blend shook what showed through
130
- // it. The corner and the size are rounded instead; the patch above holds
131
- // the copy to the target and the texture.
132
- FilterSystem.prototype.getBackTexture = function (target, bounds, previous) {
133
- const resolution = target.colorTexture.source.resolution;
134
- const back = TexturePool.getOptimalTexture({
135
- width: bounds.width,
136
- height: bounds.height,
137
- resolution,
138
- });
139
- const x = previous ? bounds.minX - previous.minX : bounds.minX;
140
- const y = previous ? bounds.minY - previous.minY : bounds.minY;
141
- this.renderer.renderTarget.copyToTexture(target, back, { x: Math.round(x * resolution), y: Math.round(y * resolution) }, {
142
- width: Math.round(bounds.width * resolution),
143
- height: Math.round(bounds.height * resolution),
144
- }, { x: 0, y: 0 });
145
- return back;
146
- };
147
- /** Each separable mode's B(back, front) of straight colours, GLSL and WGSL. */
148
- const SEPARABLE = {
149
- multiply: ["cb * cf", "cb * cf"],
150
- screen: ["cb + cf - cb * cf", "cb + cf - cb * cf"],
151
- lighten: ["max(cb, cf)", "max(cb, cf)"],
152
- darken: ["min(cb, cf)", "min(cb, cf)"],
153
- difference: ["abs(cb - cf)", "abs(cb - cf)"],
154
- hardlight: ["hardlight(cb, cf)", "hardlight(cb, cf)"],
155
- overlay: ["hardlight(cf, cb)", "hardlight(cf, cb)"],
156
- };
157
- const GL_FUNCTIONS = `
158
- vec3 straight(vec4 c) { return c.a > 0.0 ? c.rgb / c.a : vec3(0.0); }
159
- vec3 hardlight(vec3 cb, vec3 cf) {
160
- vec3 multiply = 2.0 * cb * cf;
161
- vec3 screen = 1.0 - 2.0 * (1.0 - cb) * (1.0 - cf);
162
- return mix(multiply, screen, step(0.5, cf));
163
- }
164
- `;
165
- const GPU_FUNCTIONS = `
166
- fn straight(c: vec4<f32>) -> vec3<f32> { return select(vec3<f32>(0.0), c.rgb / c.a, c.a > 0.0); }
167
- fn hardlight(cb: vec3<f32>, cf: vec3<f32>) -> vec3<f32> {
168
- let multiply = 2.0 * cb * cf;
169
- let screen = 1.0 - 2.0 * (1.0 - cb) * (1.0 - cf);
170
- return mix(multiply, screen, step(vec3<f32>(0.5), cf));
171
- }
172
- `;
173
- /** The result of a mode that is no separable blend, premultiplied, GLSL and WGSL. */
174
- const SPECIAL = {
175
- add: [
176
- "vec4(min(front.rgb + back.rgb, 1.0), min(front.a + back.a, 1.0))",
177
- "vec4<f32>(min(front.rgb + back.rgb, vec3<f32>(1.0)), min(front.a + back.a, 1.0))",
178
- ],
179
- subtract: [
180
- "vec4(max(back.rgb - front.rgb, 0.0), back.a)",
181
- "vec4<f32>(max(back.rgb - front.rgb, vec3<f32>(0.0)), back.a)",
182
- ],
183
- // What is below inverted, as far as the object covers it.
184
- invert: [
185
- "vec4((back.a - back.rgb) * front.a + back.rgb * (1.0 - front.a), back.a)",
186
- "vec4<f32>((back.a - back.rgb) * front.a + back.rgb * (1.0 - front.a), back.a)",
187
- ],
188
- // The layer below takes the object's alpha where the object has any, or
189
- // loses it; what the object leaves clear stays, as adl leaves it.
190
- alpha: ["(front.a > 0.0 ? back * front.a : back)", "select(back, back * front.a, front.a > 0.0)"],
191
- erase: ["back * (1.0 - front.a)", "back * (1.0 - front.a)"],
192
- };
193
- function blendFilter(mode) {
194
- const special = SPECIAL[mode];
195
- let gl;
196
- let gpu;
197
- if (special) {
198
- gl = `finalColor = ${special[0]} * uBlend;`;
199
- gpu = `out = ${special[1]} * blendUniforms.uBlend;`;
200
- }
201
- else {
202
- const [glB, gpuB] = SEPARABLE[mode];
203
- gl = `
204
- vec3 cb = straight(back);
205
- vec3 cf = straight(front);
206
- vec3 co = front.rgb * (1.0 - back.a) + back.rgb * (1.0 - front.a) + front.a * back.a * (${glB});
207
- finalColor = vec4(co, blendedAlpha) * uBlend;
208
- `;
209
- gpu = `
210
- let cb = straight(back);
211
- let cf = straight(front);
212
- let co = front.rgb * (1.0 - back.a) + back.rgb * (1.0 - front.a) + front.a * back.a * (${gpuB});
213
- out = vec4<f32>(co, blendedAlpha) * blendUniforms.uBlend;
214
- `;
215
- }
216
- const filter = new BlendModeFilter({
217
- gl: { functions: GL_FUNCTIONS, main: gl },
218
- gpu: { functions: GPU_FUNCTIONS, main: gpu },
219
- });
220
- // At the target's resolution, as the stage is drawn; its result is the
221
- // whole composite, back included, so it replaces what is there, which
222
- // alpha and erase make more transparent.
223
- filter.resolution = "inherit";
224
- filter.antialias = "inherit";
225
- filter.blendMode = "none";
226
- return filter;
227
- }
228
- /** One filter a mode, shared by every object blended so. */
229
- const filters = new Map();
230
- /**
231
- * The filters that composite an object in `mode`: none for normal; for
232
- * layer one that only makes it a layer; for any other the mode's blend.
233
- */
234
- export function blendFilters(mode) {
235
- if (mode === "normal" || !(mode === "layer" || SEPARABLE[mode] || SPECIAL[mode])) {
236
- return null;
237
- }
238
- let made = filters.get(mode);
239
- if (!made) {
240
- if (mode === "layer") {
241
- const layer = new AlphaFilter({ alpha: 1 });
242
- layer.resolution = "inherit";
243
- layer.antialias = "inherit";
244
- made = [layer];
245
- }
246
- else {
247
- made = [blendFilter(mode)];
248
- }
249
- filters.set(mode, made);
250
- }
251
- return made;
252
- }
253
- //# sourceMappingURL=pixi-blend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pixi-blend.js","sourceRoot":"","sources":["../src/pixi-blend.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,yEAAyE;AACzE,yEAAyE;AACzE,kEAAkE;AAClE,OAAO,EACL,WAAW,EAEX,eAAe,EAGf,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,MAAM,YAAY,GAAG,YAAY,CAAC,SAIjC,CAAC;AAEF,yEAAyE;AACzE,uEAAuE;AACvE,uEAAuE;AACvE,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAyB,CAAC;AAC/D,MAAM,qBAAqB,GAAG,YAAY,CAAC,sBAAsB,CAAC;AAClE,YAAY,CAAC,sBAAsB,GAAG,UAA8B,IAAI,EAAE,KAAK;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9B,IAAI,IAAI,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,aAAa,EAAE,EAAE,CAAC,CAAC;YACrD,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC;QACH,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC;AAC3D,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG;IAC/B,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,GAAI,IAAyD,CAAC,sBAAsB,CAAC;QAChG,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,4EAA4E;AAC5E,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AACxE,0EAA0E;AAC1E,wCAAwC;AACxC,IAAI,SAAS,GAAwB,IAAI,CAAC;AACzC,YAAY,CAAC,SAAgE,CAAC,SAAS;IACtF,UAA8B,MAAc;QAC1C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC;AACJ,MAAM,mBAAmB,GAAG,YAAY,CAAC,oBAAoB,CAAC;AAC9D,YAAY,CAAC,oBAAoB,GAAG,UAAU,WAAW,EAAE,MAAM;IAC/D,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC;IACrC,IAAI,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;YAAS,CAAC;QACT,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,0EAA0E;AAC1E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,qEAAqE;AACrE,yEAAyE;AACzE,mEAAmE;AACnE,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,MAAM,qBAAqB,GAAG,YAAY,CAAC,sBAAsB,CAAC;AAClE,YAAY,CAAC,sBAAsB,GAAG,UAAU,IAAI,EAAE,GAAG,IAAI;IAC3D,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,0EAA0E;AAC1E,wEAAwE;AACxE,uEAAuE;AACvE,yEAAyE;AACzE,4CAA4C;AAC5C,2EAA2E;AAC3E,yEAAyE;AACzE,wEAAwE;AACxE,qEAAqE;AACrE,iEAAiE;AACjE,yEAAyE;AACzE,eAAe;AACf,MAAM,aAAa,GAAG,kBAAkB,CAAC,SAAS,CAAC,aAAa,CAAC;AACjE,kBAAkB,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACxF,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;IACvD,gFAAgF;IAChF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IACzB,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;IACzB,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,CACvB,IAAI,EACJ,MAAM,EACN,WAAW,EACX,EAAE,CAAC,EAAE,CAAC,EAAE,EACR,EAAE,KAAK,EAAE,MAAM,EAAE,EACjB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CACnB,CAAC;AACJ,CAAC,CAAC;AAEF,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,0CAA0C;AAC1C,YAAY,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE,QAAQ;IACxE,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;IACzD,MAAM,IAAI,GAAG,WAAW,CAAC,iBAAiB,CAAC;QACzC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU;KACX,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/D,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CACtC,MAAM,EACN,IAAI,EACJ,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAChE;QACE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;QAC5C,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;KAC/C,EACD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CACf,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,SAAS,GAAqC;IAClD,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IAChC,MAAM,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,MAAM,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,UAAU,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;IAC5C,SAAS,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACrD,OAAO,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;CACpD,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;CAOpB,CAAC;AAEF,MAAM,aAAa,GAAG;;;;;;;CAOrB,CAAC;AAEF,qFAAqF;AACrF,MAAM,OAAO,GAAqC;IAChD,GAAG,EAAE;QACH,kEAAkE;QAClE,kFAAkF;KACnF;IACD,QAAQ,EAAE;QACR,8CAA8C;QAC9C,8DAA8D;KAC/D;IACD,0DAA0D;IAC1D,MAAM,EAAE;QACN,0EAA0E;QAC1E,+EAA+E;KAChF;IACD,wEAAwE;IACxE,kEAAkE;IAClE,KAAK,EAAE,CAAC,yCAAyC,EAAE,6CAA6C,CAAC;IACjG,KAAK,EAAE,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;CAC5D,CAAC;AAEF,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,EAAU,CAAC;IACf,IAAI,GAAW,CAAC;IAChB,IAAI,OAAO,EAAE,CAAC;QACZ,EAAE,GAAG,gBAAgB,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;QAC5C,GAAG,GAAG,SAAS,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACpC,EAAE,GAAG;;;gGAGuF,GAAG;;KAE9F,CAAC;QACF,GAAG,GAAG;;;+FAGqF,IAAI;;KAE9F,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE;QACzC,GAAG,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE;KAC7C,CAAC,CAAC;IACH,uEAAuE;IACvE,sEAAsE;IACtE,yCAAyC;IACzC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4DAA4D;AAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5C,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YAC7B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,54 +0,0 @@
1
- import type { ColorTransform } from "@swf2es/format";
2
- import { Batcher, type BatcherOptions, type Container, type DefaultBatchableMeshElement, type DefaultBatchableQuadElement, ExtensionType, Geometry, Graphics, type GraphicsContext, Shader } from "pixi.js";
3
- declare class ColorShader extends Shader {
4
- readonly maxTextures: number;
5
- constructor(maxTextures: number);
6
- }
7
- declare class ColorGeometry extends Geometry {
8
- constructor();
9
- }
10
- export declare class ColorBatcher extends Batcher {
11
- static extension: {
12
- type: ExtensionType[];
13
- name: string;
14
- };
15
- name: string;
16
- vertexSize: number;
17
- geometry: ColorGeometry;
18
- shader: ColorShader;
19
- private underusedBuilds;
20
- constructor(options: BatcherOptions);
21
- begin(): void;
22
- /** The vertex's colour, texture and transform after its position and UV, which `at` holds. */
23
- private tail;
24
- packAttributes(element: DefaultBatchableMeshElement, f32: Float32Array, u32: Uint32Array, index: number, textureId: number): void;
25
- packQuadAttributes(element: DefaultBatchableQuadElement, f32: Float32Array, u32: Uint32Array, index: number, textureId: number): void;
26
- }
27
- /** A context destroyed: its batched copy too, if it has one. */
28
- export declare function dropBatchedCopy(context: GraphicsContext): void;
29
- /**
30
- * A Graphics that may show another context than the one it stands for: the
31
- * shared one it was given (`shared`), and `show` to draw another, as a
32
- * shape's lines swap theirs (pixi.ts, SharedGraphics).
33
- */
34
- export type SharingGraphics = Graphics & {
35
- shared?: GraphicsContext;
36
- show?: (context: GraphicsContext) => void;
37
- };
38
- /**
39
- * The context a Graphics should draw under `ct`: an unbatched one, as a
40
- * shape's are (pixi.ts), Pixi draws with its own shader, which has no
41
- * colour transform, so under one it draws a batched copy. The context it
42
- * stands for is shared by every instance of a character, and every text in
43
- * a font, and is never changed: switched to batched, the Graphics of the
44
- * others, made unbatched, drew nothing.
45
- */
46
- export declare function showFor(g: SharingGraphics, ct: ColorTransform | null): void;
47
- /**
48
- * Draw `leaf` and what is in it under `ct`, or under Pixi's tint again for
49
- * null. Moving between batchers rebuilds the render group's instructions;
50
- * another transform in the same batcher packs the vertices again.
51
- */
52
- export declare function setFlashColor(leaf: Container, ct: ColorTransform | null): void;
53
- export {};
54
- //# sourceMappingURL=pixi-color.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pixi-color.d.ts","sourceRoot":"","sources":["../src/pixi-color.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAGL,OAAO,EACP,KAAK,cAAc,EAGnB,KAAK,SAAS,EAGd,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,aAAa,EAEb,QAAQ,EACR,QAAQ,EACR,KAAK,eAAe,EAMpB,MAAM,EAEP,MAAM,SAAS,CAAC;AAqFjB,cAAM,WAAY,SAAQ,MAAM;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,YAAY,WAAW,EAAE,MAAM,EAa9B;CACF;AAED,cAAM,aAAc,SAAQ,QAAQ;IAClC,cAwBC;CACF;AAmCD,qBAAa,YAAa,SAAQ,OAAO;IACvC,MAAM,CAAC,SAAS;;;MAAiD;IAEjE,IAAI,SAAQ;IACZ,UAAU,SAAe;IACzB,QAAQ,gBAAuB;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,eAAe,CAAK;IAE5B,YAAY,OAAO,EAAE,cAAc,EAUlC;IAEQ,KAAK,IAAI,IAAI,CAkCrB;IAED,8FAA8F;IAC9F,OAAO,CAAC,IAAI;IAoBZ,cAAc,CACZ,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,IAAI,CAkBN;IAED,kBAAkB,CAChB,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,IAAI,CAmBN;CACF;AA4CD,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAM9D;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAY3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAyB9E"}