@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
@@ -1,188 +0,0 @@
1
- // How the view composites each object with what is behind it (render/view.ts):
2
- // by the GPU's own blending where it blends as Flash does, through a layer
3
- // of its own kept while it stands, or by a blend filter (render/blend.ts),
4
- // and whether the stage below may be less than opaque, which decides it.
5
- import { RendererType } from "pixi.js";
6
- import { blendFilters } from "./blend.js";
7
- import { FilterChain } from "./filters.js";
8
- /** The view's blending of the objects it syncs. */
9
- export class Compositing {
10
- renderer;
11
- planes;
12
- units;
13
- /** Whether the renderer was found to lack the back buffer that filter-backed blends read. */
14
- backBufferChecked = false;
15
- /** The nodes on the list blended with erase or alpha outside any layer (checkStageClear). */
16
- clearing = new Set();
17
- /** The nodes on the list blended outside any layer in a mode the GPU blends as Flash only over opaque pixels. */
18
- overOpaque = new Set();
19
- /** Whether the stage's pixels may be less than opaque below a blend (checkStageClear). */
20
- stageClear = true;
21
- constructor(renderer, planes,
22
- /** The view, whose filter units a layer's chain is made at. */
23
- units) {
24
- this.renderer = renderer;
25
- this.planes = planes;
26
- this.units = units;
27
- }
28
- /**
29
- * A node synced on the list: noted where it may leave the stage's pixels
30
- * less than opaque or blends only over opaque ones, and blended. `refilled`
31
- * is whether its filters were made again, which a direct blend sets again.
32
- */
33
- sync(node, isolated, refilled) {
34
- // What may leave the stage's pixels less than opaque, and what blends only over opaque ones.
35
- if (!isolated && (node.blend === "erase" || node.blend === "alpha")) {
36
- this.clearing.add(node);
37
- }
38
- else {
39
- this.clearing.delete(node);
40
- }
41
- if (!isolated && (node.blend === "multiply" || node.blend === "subtract")) {
42
- this.overOpaque.add(node);
43
- }
44
- else {
45
- this.overOpaque.delete(node);
46
- }
47
- const layered = this.layer(node, isolated);
48
- this.blendDirectly(node, isolated ? null : this.directBlend(node), refilled || layered);
49
- }
50
- /** A node off the list, which no longer clears the stage or blends over it. */
51
- forget(node) {
52
- this.clearing.delete(node);
53
- this.overOpaque.delete(node);
54
- }
55
- /**
56
- * A filter-backed blend reads Pixi's back buffer, which WebGL has only
57
- * with `useBackBuffer: true`; without it that blend draws as normal.
58
- */
59
- checkBackBuffer() {
60
- if (this.backBufferChecked) {
61
- return;
62
- }
63
- this.backBufferChecked = true;
64
- const gl = this.renderer;
65
- if (gl.backBuffer && !gl.backBuffer.useBackBuffer) {
66
- console.warn("swf2es: a blend mode draws as normal: make the Pixi renderer with useBackBuffer: true");
67
- }
68
- }
69
- /**
70
- * Give a blend the GPU draws a layer of its own, kept while nothing in it changes: an empty
71
- * chain, through which the object is drawn once into a texture and the texture blended by the
72
- * GPU over what is behind (directBlend), and then only the texture while it stands, as a filtered
73
- * object's output is. Without one, a blend filter drew the object into a layer of its own and
74
- * copied what is behind it on every frame. Only a blend the GPU draws as Flash does, of an
75
- * object of more than one draw (a single fill
76
- * blends as it is drawn), with no filters of its own, outside any layer; the chain goes again
77
- * once that no longer holds. Multiply and subtract are the GPU's only over an opaque stage
78
- * (directBlend), which their layer is blended by while it is; else by a blend filter after its
79
- * chain. Whether the object's chain was made or dropped: a new one is
80
- * stale, so draws the object afresh.
81
- */
82
- layer(node, isolated) {
83
- const chain = node.filters[0];
84
- const empty = chain instanceof FilterChain && chain.filters.length === 0;
85
- const wanted = !isolated &&
86
- node.singleDraw !== 1 &&
87
- (chain === undefined || empty) &&
88
- this.gpuBlends(node.blend);
89
- if (wanted === empty) {
90
- return false;
91
- }
92
- if (empty) {
93
- chain.destroy();
94
- node.filters = [];
95
- }
96
- else {
97
- node.filters = [new FilterChain([], node.container, true, this.units.filterUnits)];
98
- }
99
- return true;
100
- }
101
- /** Whether the GPU blends `mode` as Flash does here, as directBlend has it for a layer. */
102
- gpuBlends(mode) {
103
- const webgl = this.renderer.type === RendererType.WEBGL;
104
- switch (mode) {
105
- case "screen":
106
- return true;
107
- case "add":
108
- return webgl;
109
- case "multiply":
110
- return !this.stageClear;
111
- case "subtract":
112
- return webgl && !this.stageClear;
113
- default:
114
- return false;
115
- }
116
- }
117
- /** Blend `node` in `direct` by the GPU's own blending, or by its blend filter for null. */
118
- blendDirectly(node, direct, refilled) {
119
- // A retired layer must be detached even if the direct blend stays null.
120
- if (direct === node.directBlend && !refilled) {
121
- return;
122
- }
123
- // A fill blends as it is drawn; a filtered object as its chain's result is drawn.
124
- const container = node.container;
125
- const chain = node.filters[0];
126
- container.blendMode = direct && !chain ? direct : "inherit";
127
- if (chain instanceof FilterChain) {
128
- chain.blendOver(direct ?? "normal");
129
- }
130
- const blending = direct ? null : blendFilters(node.blend);
131
- container.filters =
132
- node.filters.length > 0 || blending ? [...node.filters, ...(blending ?? [])] : null;
133
- node.directBlend = direct;
134
- if (node.plane) {
135
- this.planes.blendQuad(node, node.plane);
136
- }
137
- }
138
- /**
139
- * Whether the stage's pixels may be less than opaque as what is below a
140
- * blend: a clear background, or an erase or alpha blend outside any layer
141
- * on the list, which clears what it covers on the stage as adl does.
142
- * Where that changes, the multiply and subtract blends drawn over it
143
- * choose again, before what is drawn this frame.
144
- */
145
- checkStageClear() {
146
- // A stand-in renderer may have no background: it is drawn on nothing.
147
- const clear = (this.renderer.background?.alpha ?? 1) < 1 || this.clearing.size > 0;
148
- if (clear === this.stageClear) {
149
- return;
150
- }
151
- this.stageClear = clear;
152
- for (const node of this.overOpaque) {
153
- this.blendDirectly(node, this.directBlend(node), false);
154
- }
155
- }
156
- /**
157
- * The mode `node` is blended in by the GPU's own blending, where that is
158
- * what Flash draws, else null for a blend filter (render/blend.ts). Flash
159
- * blends the object as one layer, so it must be drawn at once: as a
160
- * single fill, or as its filters' result. Flash's add and screen are the
161
- * GPU's over any backdrop, its subtract and multiply over an opaque one,
162
- * to 8-bit rounding (the `blend-formulas` case): over a clear pixel GPU
163
- * multiply drops the object's own colour, which Flash keeps, and
164
- * subtract its alpha. An isolated layer's ground may be clear where the
165
- * stage's is not, so none is used in one. Its lighten, darken and
166
- * difference blend the straight colours, which the GPU's min and max of
167
- * premultiplied ones are only where opaque.
168
- */
169
- directBlend(node) {
170
- if (node.singleDraw !== 1 && !(node.filters[0] instanceof FilterChain)) {
171
- return null;
172
- }
173
- // WebGPU's add leaves an opaque target less than opaque, and it has no subtract.
174
- switch (node.blend) {
175
- case "screen":
176
- return "screen";
177
- case "multiply":
178
- return this.stageClear ? null : "multiply";
179
- case "add":
180
- return this.renderer.type === RendererType.WEBGL ? "add" : null;
181
- case "subtract":
182
- return this.renderer.type === RendererType.WEBGL && !this.stageClear ? "subtract" : null;
183
- default:
184
- return null;
185
- }
186
- }
187
- }
188
- //# sourceMappingURL=compositing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compositing.js","sourceRoot":"","sources":["../../src/render/compositing.ts"],"names":[],"mappings":"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"}
@@ -1,98 +0,0 @@
1
- import type { ColorTransform } from "@swf2es/format";
2
- import { type BLEND_MODES, type Bounds, type Container, Filter, type FilterData, type FilterSystem, type RenderSurface, type Texture } from "pixi.js";
3
- import type { Filter as FilterRecord } from "../display/filters.js";
4
- import type { AreaKeeper, PaddingFitter } from "./blend.js";
5
- /** Premultiplied ARGB as the RGBA bytes a texture holds, still premultiplied. */
6
- export declare function rgbaOf(pixels: Uint32Array): Uint8Array;
7
- /** The texture of a displacement map's map, as its renderer holds it; null for none. */
8
- export type MapTexture = (map: object) => Texture | null;
9
- /**
10
- * Whether two lists of filter records hold the same values, which draw the
11
- * same: a timeline's tween writes its filters again on each frame, and a
12
- * script may set them from their own. A map is the same only as the same
13
- * object, so that a displacement's map taken anew is drawn anew.
14
- */
15
- export declare function sameFilterRecords(a: readonly FilterRecord[], b: readonly FilterRecord[]): boolean;
16
- /** The Pixi filters a display object's filter records draw as: those swf2es draws yet, in their order. */
17
- export declare function displayFilters(records: readonly FilterRecord[], mapTexture?: MapTexture): Filter[];
18
- export declare class FilterChain extends Filter implements AreaKeeper, PaddingFitter {
19
- readonly filters: Filter[];
20
- private readonly owner;
21
- private readonly keeps;
22
- /** The input last run on, and the output kept of it, if any. */
23
- private ran;
24
- /** The input to be compared with it, which then becomes it. */
25
- private next;
26
- /**
27
- * The area its object was last measured at on the stage, and the
28
- * object's transform on the stage then; null till measured again.
29
- */
30
- private area;
31
- /** What `area` points to when it is set, filled again at each measure. */
32
- private readonly measured;
33
- private kept;
34
- private stale;
35
- /** Runs in a row its object changed for. */
36
- private changing;
37
- private drawnAt;
38
- constructor(filters: Filter[], owner: Container, keeps?: boolean, units?: number);
39
- /** What it was run on changed: run it again, and measure it again. */
40
- changed(): void;
41
- /**
42
- * The area kept, moved as the object moved: while nothing in the object
43
- * changed (`changed`) and its transform on the stage only moved, all it
44
- * draws moved alike, and so did its bounds.
45
- */
46
- keptArea(container: Container, bounds: Bounds): boolean;
47
- keepArea(container: Container, bounds: Bounds): void;
48
- /** The target's units to a pixel of the stage its filters are drawn at. */
49
- get units(): number;
50
- /** Its filters drawn at `units` of the target to a pixel of the stage from now on. */
51
- rescale(units: number): void;
52
- /** Each filter's padding as its reach asks, before fitPadding cuts it to what can be drawn. */
53
- private wanted;
54
- /**
55
- * The filters' padding as their reach asks, where the texture the object
56
- * is filtered in, its area within the screen and twice the padding at
57
- * the target's resolution, fits the renderer's largest; past that, cut
58
- * alike from the furthest reaching down to what fits, as a shadow cast
59
- * 1e9 away, or Infinity, asks. What is cut lies past the screen, but for
60
- * an object off it whose shadow is not.
61
- */
62
- fitPadding(bounds: Bounds, system: FilterSystem): void;
63
- /**
64
- * Its result blended over what is below in `mode`, by the GPU's own
65
- * blending as its last pass draws it, where that is Flash's blend
66
- * (render/compositing.ts): no copy of what is below, nor a blend filter after it.
67
- */
68
- blendOver(mode: BLEND_MODES): void;
69
- /** Whether its output is drawn coloured (recolor), which takes a pass of its own. */
70
- private colored;
71
- /**
72
- * Its output drawn in `color`, its object's colour transform from the stage down (or from the
73
- * filtered object it is in), as Flash colours a filtered object's bitmap: the glow and the
74
- * shadow too, and not what they are run on. What it kept stands.
75
- */
76
- recolor(color: ColorTransform | null): void;
77
- /** The output kept let go of, as its object leaves the display list. */
78
- forget(): void;
79
- /**
80
- * Its kept output, while it would draw it again: before its object is drawn into an input,
81
- * which is then not drawn at all, nor the filters run. The input `apply` would compare is the
82
- * one the system sizes from the bounds it measured.
83
- */
84
- reusedOutput(_system: FilterSystem, data: FilterData): Texture | null;
85
- apply(system: FilterSystem, input: Texture, output: RenderSurface, clear: boolean): void;
86
- /**
87
- * Run into `output`; blended over it or coloured, into a texture of the
88
- * pool first, which its own pass then blends and colours: the filters'
89
- * last passes draw as each of them blends, not as the chain does.
90
- */
91
- private runOver;
92
- /** The filters in turn, as Pixi runs a chain, through a texture of the pool between them. */
93
- private run;
94
- private release;
95
- /** Its filters too, and the output it kept. */
96
- destroy(): void;
97
- }
98
- //# sourceMappingURL=filters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/render/filters.ts"],"names":[],"mappings":"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"}