@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,575 +0,0 @@
1
- // What a display object itself draws, under any children (render/view.ts):
2
- // a shape's or a drawing's fills and lines, a bitmap's sprite, a text's
3
- // glyphs and drawTriangles' meshes, built into its node's art as its
4
- // content changes, and its lines stroked again as its transform does.
5
- import { Matrix, RendererType, Sprite, } from "pixi.js";
6
- import { BitmapStore } from "../bitmap/bitmap.js";
7
- import { BitmapObject, CONTENT, ShapeObject, StaticTextObject, TextObject, } from "../display/display.js";
8
- import { sliceLayers } from "../display/scale9.js";
9
- import { facing } from "../display/shapes.js";
10
- import { characterStore, gpuBitmaps } from "./bitmaps.js";
11
- import { SPARE_GRAPHICS_MOST } from "./pools.js";
12
- import { SaffronView } from "./saffron.js";
13
- import { SharedGraphics } from "./shared.js";
14
- import { linesContext, NO_LINES, StrokeContexts, sameLinear, scalesEvenly, settledStretch, stretchOf, strokeFrame, widestLine, } from "./strokes.js";
15
- import { destroyContext, fillContext, paint, remakeable, SharedFills, } from "./tessellate.js";
16
- import { drawStaticText, drawText } from "./text.js";
17
- import { TriangleView } from "./triangles.js";
18
- /** No transform, for a Graphics kept to be taken again (recycle). */
19
- const IDENTITY = new Matrix();
20
- /** What an emptied node has drawn, shared by all: replaced as it draws, never added to. */
21
- const NO_LAYERS = [];
22
- const NO_FILLS = [];
23
- /** Whether every one of `art` is a SharedGraphics, which a redraw keeps for its new content. */
24
- function allShared(art) {
25
- for (let i = 0; i < art.length; i++) {
26
- if (!(art[i] instanceof SharedGraphics)) {
27
- return false;
28
- }
29
- }
30
- return true;
31
- }
32
- /**
33
- * Whether Graphics that were lines where `lines` says lay out `layers`
34
- * alike: a fill's for each layer, then its lines' if it has any.
35
- */
36
- function laidOutAs(lines, layers) {
37
- let k = 0;
38
- for (let i = 0; i < layers.length; i++) {
39
- if (lines[k++] !== false || (layers[i].strokes.length > 0 && lines[k++] !== true)) {
40
- return false;
41
- }
42
- }
43
- return k === lines.length;
44
- }
45
- /** Whether any of the layers has drawTriangles' textured triangles. */
46
- function meshed(layers) {
47
- for (let i = 0; i < layers.length; i++) {
48
- if (layers[i].meshes) {
49
- return true;
50
- }
51
- }
52
- return false;
53
- }
54
- /** The objects' own drawing, for one view. */
55
- export class Art {
56
- renderer;
57
- fresh;
58
- view;
59
- nodes;
60
- source;
61
- counts;
62
- /** Graphics of children taken off, kept for the next content to take (SPARE_GRAPHICS_MOST). */
63
- spareGraphics = [];
64
- /** What the nodes cleared give back once their new content is drawn (clear, giveBack). */
65
- giving = {
66
- fills: [],
67
- lines: [],
68
- shapes: [],
69
- };
70
- /** The lines' contexts, shared by the instances that see them through the same transform. */
71
- lines;
72
- /** A fresh view's fills of the shapes it built them for, shared by their instances; it destroys them with itself. */
73
- fills = new Map();
74
- /** The shapes' fills, shared by their instances and counted (tessellate.ts). */
75
- shared = new SharedFills();
76
- /**
77
- * A fill painted: a bitmap's from its store's texture sampled as the fill
78
- * samples, in global texture space so that its matrix maps the bitmap's
79
- * pixels to the shape's; nothing for a bitmap that has no texture.
80
- */
81
- painter = (fill, region, hold) => {
82
- if (fill.type === "gradient") {
83
- const m = fill.matrix;
84
- if (m.a * m.d - m.b * m.c === 0) {
85
- return { color: 0, alpha: 0 };
86
- }
87
- const held = gpuBitmaps(this.renderer).gradientTexture(fill, fill.radial ? region() : null);
88
- hold(held.release);
89
- return { texture: held.texture, matrix: held.matrix, textureSpace: "global" };
90
- }
91
- if (fill.type !== "image") {
92
- return paint(fill);
93
- }
94
- const store = fill.image instanceof BitmapStore ? fill.image : characterStore(fill.image);
95
- const texture = store && gpuBitmaps(this.renderer).fillTexture(store, fill.repeat, fill.smooth);
96
- if (!texture) {
97
- return { color: 0, alpha: 0 };
98
- }
99
- const m = fill.matrix;
100
- return { texture, matrix: new Matrix(m.a, m.b, m.c, m.d, m.tx, m.ty), textureSpace: "global" };
101
- };
102
- /** What a fresh view built itself, which it destroys; what it borrowed from `source` stays. */
103
- built = new Set();
104
- /** What a fresh view borrowed from its source's caches, which it neither gives back nor destroys. */
105
- borrowed = new WeakSet();
106
- /** Its drawings' textured triangles drawn, which the view tells of a new pixel or smoothing. */
107
- meshes = new Set();
108
- /** What its advanced texts share, which the view tells of the world's scale to Flash's pixels. */
109
- saffron;
110
- constructor(renderer,
111
- /** Whether the view draws once (PixiView's `fresh`): it builds its own, and keeps nothing. */
112
- fresh, view,
113
- /** The view's nodes by their objects. */
114
- nodes,
115
- /** The stage's view's art, whose geometry a fresh view's borrows where it is current. */
116
- source,
117
- /** The view's counts of lines' contexts made and reused. */
118
- counts) {
119
- this.renderer = renderer;
120
- this.fresh = fresh;
121
- this.view = view;
122
- this.nodes = nodes;
123
- this.source = source;
124
- this.counts = counts;
125
- this.lines = new StrokeContexts(counts);
126
- this.saffron = new SaffronView(renderer, !fresh);
127
- }
128
- /**
129
- * The source view's node for `o`, if what it drew is still `o`'s: built
130
- * since the content last changed. Its lines are current for its own
131
- * `world` alone.
132
- */
133
- current(o) {
134
- const node = this.source?.nodes.get(o);
135
- return node && !(o.dirty & CONTENT) ? node : null;
136
- }
137
- /** Destroy the contexts a fresh view built; what it borrowed stays its owner's. */
138
- destroyBuilt() {
139
- for (const context of this.built) {
140
- destroyContext(context);
141
- }
142
- }
143
- /**
144
- * The slice that reshapes what `o` itself draws, and the matrix from its
145
- * space to the owner's, null for the owner: as display/scale9.ts's
146
- * sliceFor, from the slices this view keeps, which its syncs made.
147
- */
148
- slicing(o, node) {
149
- if (node.masking) {
150
- return null;
151
- }
152
- if (node.slice) {
153
- return { slice: node.slice, m: null };
154
- }
155
- const parent = o.parent;
156
- const slice = o instanceof ShapeObject && parent?.scale9Grid ? this.nodes.get(parent)?.slice : null;
157
- return slice ? { slice, m: o.placed } : null;
158
- }
159
- /**
160
- * What `o` itself draws, built anew: a shape's layers, whose fills are
161
- * shared by every instance of the character, or its drawing's, which are
162
- * its own and change.
163
- */
164
- redraw(o, node) {
165
- this.clear(node, true);
166
- // Given back after the new ones are made, so that a texture or a blend they share is kept, not
167
- // made again.
168
- try {
169
- this.draw(o, node);
170
- }
171
- finally {
172
- this.giveBack();
173
- // Drawn, the new content has taken or dropped them all; one that threw has not.
174
- this.dropSpare(node);
175
- }
176
- }
177
- /**
178
- * Empty the node of what it drew, listing for giveBack what gives back
179
- * its fills and lines: a drawing's fills, a blend's, and every node's
180
- * lines; a Graphics frees only a context it made.
181
- */
182
- clear(node, keep = false) {
183
- // A Bitmap's texture is its store's: only the sprite goes.
184
- node.bitmap?.destroy();
185
- node.bitmap = null;
186
- // Listed in the view's own lists, not in arrays of their own: an object is emptied and drawn
187
- // anew each time its content changes, hundreds of times a frame in an animated crowd.
188
- const giving = this.giving;
189
- if (node.ownFills && !this.fresh) {
190
- for (let i = 0; i < node.fills.length; i++) {
191
- giving.fills.push(node.fills[i]);
192
- }
193
- }
194
- if (!this.fresh) {
195
- for (let i = 0; i < node.strokes.length; i++) {
196
- const context = node.strokes[i]?.shared;
197
- if (context) {
198
- giving.lines.push(context);
199
- }
200
- }
201
- }
202
- if (node.sharedFills) {
203
- giving.shapes.push(node.sharedFills);
204
- }
205
- // A shape's Graphics stay where they are, for the content drawn next to take in place: taken
206
- // off and put on, they changed the structure of its render group, which Pixi then rebuilt
207
- // whole, an animated character's every frame its timeline swapped a shape.
208
- const art = node.art.children;
209
- if (keep && art.length > 0 && allShared(art)) {
210
- const lines = node.lines;
211
- node.spare ??= { graphics: [], lines: [] };
212
- const spare = node.spare;
213
- spare.graphics.length = 0;
214
- spare.lines.length = 0;
215
- for (let i = 0; i < art.length; i++) {
216
- spare.graphics.push(art[i]);
217
- spare.lines.push(lines.includes(art[i]));
218
- }
219
- node.spared = true;
220
- }
221
- else {
222
- // A text's characters are in a container of their own; their shared
223
- // glyph fills stay, not being theirs. A shape's Graphics are kept for
224
- // the next content to take.
225
- for (const child of node.art.removeChildren()) {
226
- if (child instanceof SharedGraphics && !this.fresh) {
227
- this.recycle(child);
228
- }
229
- else if (!child.destroyed) {
230
- child.destroy({ children: true });
231
- }
232
- }
233
- }
234
- node.layers = NO_LAYERS;
235
- node.fills = NO_FILLS;
236
- node.ownFills = false;
237
- node.sharedFills = null;
238
- node.strokes.length = 0;
239
- node.lines.length = 0;
240
- }
241
- /** Give back what the nodes cleared since listed (clear): their fills, lines and shapes' fills. */
242
- giveBack() {
243
- const { fills, lines, shapes } = this.giving;
244
- try {
245
- for (let i = 0; i < fills.length; i++) {
246
- destroyContext(fills[i]);
247
- }
248
- for (let i = 0; i < lines.length; i++) {
249
- this.lines.give(lines[i]);
250
- }
251
- for (let i = 0; i < shapes.length; i++) {
252
- this.shared.give(shapes[i]);
253
- }
254
- }
255
- finally {
256
- fills.length = 0;
257
- lines.length = 0;
258
- shapes.length = 0;
259
- }
260
- }
261
- /**
262
- * The shape a Shape draws: the one Flash's stale bitmap cache shows,
263
- * while it stands on the stage at the scale it was drawn at; a mask
264
- * clips by the shape it is.
265
- */
266
- shapeOf(o, node) {
267
- const cache = o.stale;
268
- if (!cache || node.masking) {
269
- return o.drawn();
270
- }
271
- if (node.stale?.cache !== cache) {
272
- node.stale = { cache, world: [...node.world], spent: false };
273
- }
274
- return node.stale.spent ? o.drawn() : cache.shape;
275
- }
276
- /**
277
- * How a text draws its advanced glyphs (render/saffron.ts): not at all, as
278
- * normal text, where the renderer cannot, or in a 3D object's bitmap,
279
- * whose pixels are not the stage's.
280
- */
281
- advanced(o, node) {
282
- if (!this.saffron.enabled || this.view.inPlane) {
283
- return null;
284
- }
285
- const w = node.world;
286
- return {
287
- view: this.saffron,
288
- scale: Math.sqrt(Math.abs(w[0] * w[3] - w[1] * w[2])),
289
- again: () => o.invalidate(CONTENT),
290
- };
291
- }
292
- /** What `o` itself draws, into its node emptied of what it drew before. */
293
- draw(o, node) {
294
- const current = this.current(o);
295
- // A bitmap or a text draws no Graphics the last content's could stand for.
296
- if (o instanceof BitmapObject || o instanceof TextObject || o instanceof StaticTextObject) {
297
- this.dropSpare(node);
298
- }
299
- if (o instanceof BitmapObject) {
300
- this.drawBitmap(o, node);
301
- return;
302
- }
303
- if (o instanceof TextObject) {
304
- drawText(o, node.art, this.advanced(o, node));
305
- return;
306
- }
307
- if (o instanceof StaticTextObject) {
308
- drawStaticText(o, node.art, this.advanced(o, node));
309
- return;
310
- }
311
- const shape = o instanceof ShapeObject ? this.shapeOf(o, node) : null;
312
- // adl culls drawTriangles' triangles as they turn on the screen, or in a BitmapData's draw.
313
- const w = node.world;
314
- node.mirrored = w[0] * w[3] - w[1] * w[2] < 0;
315
- node.layers = o.drawing
316
- ? facing(o.drawing.layers, node.mirrored, o.drawing.version)
317
- : (shape?.layers ?? []);
318
- const slicing = this.slicing(o, node);
319
- if (slicing) {
320
- node.layers = sliceLayers(node.layers, slicing.slice, slicing.m, o.drawing?.version);
321
- }
322
- let fills;
323
- node.ownFills = false;
324
- if (current && current.layers === node.layers && current.fills.length === node.layers.length) {
325
- fills = current.fills;
326
- }
327
- else if (shape && !o.drawing && !slicing && !this.fresh) {
328
- // A shape's, or a morph's blend's, shared and counted: they go once nothing draws them.
329
- fills = this.shared.take(shape, node.layers, this.buildFills);
330
- node.sharedFills = shape;
331
- }
332
- else if (shape && !o.drawing && !slicing) {
333
- // A fresh view borrows the stage's, which its object, off the list, may no longer hold;
334
- // else builds its own, shared by its instances, which it destroys with the rest.
335
- fills =
336
- this.source?.shared.peek(shape) ?? this.fills.get(shape) ?? this.buildFills(node.layers);
337
- this.fills.set(shape, fills);
338
- }
339
- else {
340
- fills = this.buildFills(node.layers);
341
- node.ownFills = true;
342
- }
343
- node.fills = fills;
344
- // A blend's layers never change, so its lines are shared as a shape's: instances in step stroke
345
- // once.
346
- node.sharedLines = !o.drawing && shape !== null && !slicing;
347
- const lines = current &&
348
- !slicing &&
349
- sameLinear(current.world, node.world) &&
350
- current.strokedAt === this.view.leastWidth &&
351
- this.source?.view.leastWidth === this.view.leastWidth
352
- ? current.strokes
353
- : null;
354
- // The Graphics the last content left, taken in place where it laid out
355
- // its fills and lines alike.
356
- // Textured triangles are meshes among the Graphics, which a spare's places do not allow for.
357
- const spare = node.spared && node.spare && laidOutAs(node.spare.lines, node.layers) && !meshed(node.layers)
358
- ? node.spare.graphics
359
- : null;
360
- if (!spare) {
361
- this.dropSpare(node);
362
- }
363
- node.spared = false;
364
- // A loop, not forEach with closures: a crowd's shapes are drawn again hundreds of times a frame.
365
- let next = 0;
366
- node.widest = 0;
367
- const layers = node.layers;
368
- for (let i = 0; i < layers.length; i++) {
369
- const layer = layers[i];
370
- if (layer.strokes.length > 0 && scalesEvenly(layer)) {
371
- node.widest = Math.max(node.widest, widestLine(layer));
372
- }
373
- this.graphic(node, spare, next++, fills[i]);
374
- const meshes = layer.meshes;
375
- if (meshes) {
376
- for (let k = 0; k < meshes.length; k++) {
377
- this.drawMesh(node, meshes[k]);
378
- }
379
- }
380
- const borrowed = lines?.[i];
381
- const strokes = layer.strokes.length
382
- ? this.graphic(node, spare, next++, borrowed?.shared)
383
- : null;
384
- if (strokes) {
385
- if (borrowed) {
386
- strokes.setFromMatrix(borrowed.localTransform);
387
- }
388
- node.lines.push(strokes);
389
- }
390
- node.strokes.push(borrowed ? null : strokes);
391
- }
392
- this.restroke(node);
393
- }
394
- /** Textured triangles, after what the node draws so far; none where the renderer is not WebGL's. */
395
- drawMesh(node, mesh) {
396
- const bitmaps = gpuBitmaps(this.renderer);
397
- const texture = this.renderer.type === RendererType.WEBGL ? bitmaps.texture(mesh.image) : null;
398
- if (texture && mesh.positions.length) {
399
- const view = new TriangleView(mesh, texture, this.view.flashPixel, this.meshes);
400
- view.smoothing = bitmaps.smoothing;
401
- node.art.addChild(view);
402
- }
403
- }
404
- /** The fills of `layers`, built: a fresh view's to destroy with the rest. */
405
- buildFills = (layers) => {
406
- const fills = [];
407
- for (let i = 0; i < layers.length; i++) {
408
- const layer = layers[i];
409
- const make = () => fillContext(layer, this.painter);
410
- const context = remakeable(make(), make);
411
- if (this.fresh) {
412
- this.built.add(context);
413
- }
414
- fills.push(context);
415
- }
416
- return fills;
417
- };
418
- /**
419
- * The Graphics the `k`th of a node's new content draws `context` with:
420
- * the `k`th the last content left, in place, or one kept or made, put on.
421
- */
422
- graphic(node, spare, k, context) {
423
- if (!spare) {
424
- const made = this.spareGraphics.pop() ?? new SharedGraphics(NO_LINES);
425
- made.swap(context ?? NO_LINES);
426
- node.art.addChild(made);
427
- return made;
428
- }
429
- const kept = spare[k];
430
- // A line's shows none till restroke gives it its own, and gives back the old.
431
- kept.swap(context ?? NO_LINES);
432
- return kept;
433
- }
434
- /**
435
- * A Bitmap as a sprite over its store's texture, which every Bitmap of
436
- * the store shares; nothing for no store, one disposed, one of 0 by 0
437
- * that Flash could not read, or one too large for a texture.
438
- */
439
- drawBitmap(o, node) {
440
- const texture = o.store && gpuBitmaps(this.renderer).texture(o.store, o.smoothing);
441
- if (!texture) {
442
- return;
443
- }
444
- node.bitmap = new Sprite(texture);
445
- node.art.addChild(node.bitmap);
446
- }
447
- /** Keep the Graphics a redraw kept for its new content that it did not take, or destroy them in a fresh view. */
448
- dropSpare(node) {
449
- const spare = node.spare;
450
- if (!node.spared || !spare) {
451
- return;
452
- }
453
- node.spared = false;
454
- for (let i = 0; i < spare.graphics.length; i++) {
455
- const graphic = spare.graphics[i];
456
- graphic.parent?.removeChild(graphic);
457
- if (this.fresh) {
458
- graphic.destroy();
459
- }
460
- else {
461
- this.recycle(graphic);
462
- }
463
- }
464
- spare.graphics.length = 0;
465
- spare.lines.length = 0;
466
- }
467
- /**
468
- * Keep a Graphics of a child taken off for the next content to take, as
469
- * a new one would be: showing nothing, untransformed, uncoloured, shown
470
- * and drawn alone, its GPU data let go of as destroying it did; or
471
- * destroy it past the most kept.
472
- */
473
- recycle(graphic) {
474
- if (graphic.destroyed) {
475
- return;
476
- }
477
- if (this.spareGraphics.length >= SPARE_GRAPHICS_MOST) {
478
- graphic.destroy();
479
- return;
480
- }
481
- graphic.unload();
482
- graphic.settled = false;
483
- graphic.flashColor = null;
484
- graphic.swap(NO_LINES);
485
- graphic.setFromMatrix(IDENTITY);
486
- graphic.visible = true;
487
- this.spareGraphics.push(graphic);
488
- }
489
- /**
490
- * Draw the lines again for the object's transform on the stage: in the
491
- * stage's axes, under the inverse of that transform's linear part, or
492
- * for a layer whose lines scale both ways, through its stretch alone,
493
- * under the stretch's inverse (stretchOf).
494
- */
495
- restroke(node, moved = false) {
496
- // Keep syncing hidden branches, but build their lines only when they can be drawn.
497
- // NaN also prevents a BitmapData draw from borrowing lines at an obsolete transform.
498
- if (node.hidden && !this.fresh) {
499
- node.strokedAt = Number.NaN;
500
- return;
501
- }
502
- const m = node.world;
503
- const least = this.view.leastWidth;
504
- // Turned or mirrored, or stretched within one settled stretch: the lines and the inverse they
505
- // are under stay, as a limb's that only turns on every frame.
506
- // Settled once, for the test and the lines alike.
507
- let settled;
508
- if (moved && node.stretched && node.strokedAt === least) {
509
- const stretch = stretchOf(m);
510
- settled = stretch && settledStretch(stretch, node.widest, least, stretch);
511
- if (settled && sameLinear(settled, node.stretched)) {
512
- return;
513
- }
514
- }
515
- node.strokedAt = least;
516
- const by = node.lineSpace;
517
- // One key and one inverse for all its layers of each kind, made as one first needs them.
518
- let exact = null;
519
- let scaled;
520
- // A loop, not forEach with closures: every shape that moves on a frame is stroked again.
521
- const layers = node.layers;
522
- for (let i = 0; i < layers.length; i++) {
523
- const strokes = node.strokes[i];
524
- if (!strokes) {
525
- continue;
526
- }
527
- const layer = layers[i];
528
- const even = scalesEvenly(layer);
529
- if (scaled === undefined && !by && even) {
530
- if (settled === undefined) {
531
- const stretch = stretchOf(m);
532
- settled = stretch && settledStretch(stretch, node.widest, least, stretch);
533
- }
534
- scaled = settled && strokeFrame(settled, least);
535
- }
536
- let frame;
537
- if (scaled && even) {
538
- frame = scaled;
539
- }
540
- else {
541
- exact ??= strokeFrame(m, least);
542
- frame = exact;
543
- }
544
- const { m: seen, key, inverse } = frame;
545
- // The new context goes in before the old one goes back, as it may be the same.
546
- const previous = strokes.shared;
547
- // A fresh view borrows the stage's lines where it draws them alike.
548
- const kept = this.fresh && node.sharedLines && this.source?.view.leastWidth === least
549
- ? this.source.lines.peek(layer, key)
550
- : null;
551
- if (kept) {
552
- strokes.swap(kept);
553
- this.borrowed.add(kept);
554
- }
555
- else if (node.sharedLines && !this.fresh) {
556
- strokes.swap(this.lines.take(layer, seen, least, key));
557
- }
558
- else {
559
- strokes.swap(linesContext(layer, seen, least, by ?? seen));
560
- this.counts.strokeContexts++;
561
- if (this.fresh) {
562
- this.built.add(strokes.shared);
563
- }
564
- }
565
- if (!this.borrowed.has(previous) && !this.built.has(previous)) {
566
- this.lines.give(previous);
567
- }
568
- if (inverse) {
569
- strokes.setFromMatrix(inverse);
570
- }
571
- }
572
- node.stretched = scaled && !exact ? scaled.m : null;
573
- }
574
- }
575
- //# sourceMappingURL=art.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"art.js","sourceRoot":"","sources":["../../src/render/art.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,wEAAwE;AACxE,qEAAqE;AACrE,sEAAsE;AACtE,OAAO,EAEL,MAAM,EAGN,YAAY,EACZ,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,OAAO,EAEP,WAAW,EACX,gBAAgB,EAChB,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAc,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAsC,MAAM,sBAAsB,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAEL,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,SAAS,EACT,WAAW,EACX,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,WAAW,EAEX,KAAK,EACL,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAiB,cAAc,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkB9C,qEAAqE;AACrE,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;AAE9B,2FAA2F;AAC3F,MAAM,SAAS,GAAiB,EAAE,CAAC;AACnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;AAEvC,gGAAgG;AAChG,SAAS,SAAS,CAAC,GAA6B;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,cAAc,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,KAAyB,EAAE,MAA6B;IACzE,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YAClF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC;AAC5B,CAAC;AAED,uEAAuE;AACvE,SAAS,MAAM,CAAC,MAA6B;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8CAA8C;AAC9C,MAAM,OAAO,GAAG;IAuDK,QAAQ;IAER,KAAK;IACL,IAAI;IAEJ,KAAK;IAEL,MAAM;IAEN,MAAM;IA/DzB,+FAA+F;IAC9E,aAAa,GAAqB,EAAE,CAAC;IACtD,0FAA0F;IACzE,MAAM,GAAG;QACxB,KAAK,EAAE,EAAuB;QAC9B,KAAK,EAAE,EAAuB;QAC9B,MAAM,EAAE,EAAsB;KAC/B,CAAC;IACF,6FAA6F;IACpF,KAAK,CAAiB;IAC/B,qHAAqH;IACpG,KAAK,GAAG,IAAI,GAAG,EAAqC,CAAC;IACtE,gFAAgF;IACvE,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IACpC;;;;OAIG;IACc,OAAO,GAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACzD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACtB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAChC,CAAC;YAED,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;QAChF,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IACjG,CAAC,CAAC;IACF,+FAA+F;IAC9E,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACpD,qGAAqG;IACpF,QAAQ,GAAG,IAAI,OAAO,EAAmB,CAAC;IAC3D,gGAAgG;IACvF,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;IAC1C,kGAAkG;IACzF,OAAO,CAAc;IAE9B,YACmB,QAAkB;IACnC,8FAA8F;IAC7E,KAAc,EACd,IAAa;IAC9B,yCAAyC;IACxB,KAAmC;IACpD,yFAAyF;IACxE,MAAkB;IACnC,4DAA4D;IAC3C,MAAwD;wBATxD,QAAQ;qBAER,KAAK;oBACL,IAAI;qBAEJ,KAAK;sBAEL,MAAM;sBAEN,MAAM;QAEvB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,CAAgB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,mFAAmF;IACnF,YAAY;QACV,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,CAAgB,EAAE,IAAU;QAClC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACxB,MAAM,KAAK,GACT,CAAC,YAAY,WAAW,IAAI,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,CAAgB,EAAE,IAAU;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,+FAA+F;QAC/F,cAAc;QACd,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,gFAAgF;YAChF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAU,EAAE,IAAI,GAAG,KAAK;QAC5B,2DAA2D;QAC3D,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,6FAA6F;QAC7F,sFAAsF;QACtF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;gBACxC,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;QAED,6FAA6F;QAC7F,0FAA0F;QAC1F,2EAA2E;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC9B,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAmB,CAAC,CAAC;gBAC9C,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAmB,CAAC,CAAC,CAAC;YAC7D,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,sEAAsE;YACtE,4BAA4B;YAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC9C,IAAI,KAAK,YAAY,cAAc,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;qBAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC5B,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,mGAAmG;IACnG,QAAQ;QACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,CAAc,EAAE,IAAU;QACxC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACK,QAAQ,CAAC,CAAgB,EAAE,IAAU;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;SACnC,CAAC;IACJ,CAAC;IAED,2EAA2E;IACnE,IAAI,CAAC,CAAgB,EAAE,IAAU;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,2EAA2E;QAC3E,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC;YAC1F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,YAAY,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;YAC5B,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC;YAClC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,4FAA4F;QAC5F,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO;YACrB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;YAC5D,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,KAAwB,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC7F,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACxB,CAAC;aAAM,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1D,wFAAwF;YACxF,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;aAAM,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,wFAAwF;YACxF,iFAAiF;YACjF,KAAK;gBACH,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,gGAAgG;QAChG,QAAQ;QACR,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC;QAC5D,MAAM,KAAK,GACT,OAAO;YACP,CAAC,OAAO;YACR,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;YACrC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU;YAC1C,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU;YACnD,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,IAAI,CAAC;QACX,uEAAuE;QACvE,6BAA6B;QAC7B,6FAA6F;QAC7F,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3F,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;YACrB,CAAC,CAAC,IAAI,CAAC;QACX,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,iGAAiG;QACjG,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;gBAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC;gBACrD,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACjD,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,oGAAoG;IAC5F,QAAQ,CAAC,IAAU,EAAE,IAAkB;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/F,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,6EAA6E;IAC5D,UAAU,GAAG,CAAC,MAA6B,EAAqB,EAAE;QACjF,MAAM,KAAK,GAAsB,EAAE,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF;;;OAGG;IACK,OAAO,CACb,IAAU,EACV,KAA8B,EAC9B,CAAS,EACT,OAAoC;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,8EAA8E;QAC9E,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,CAAe,EAAE,IAAU;QAC5C,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,iHAAiH;IACzG,SAAS,CAAC,IAAU;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACK,OAAO,CAAC,OAAuB;QACrC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC;YACrD,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QACxB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,IAAU,EAAE,KAAK,GAAG,KAAK;QAChC,mFAAmF;QACnF,qFAAqF;QACrF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,8FAA8F;QAC9F,8DAA8D;QAC9D,kDAAkD;QAClD,IAAI,OAAkC,CAAC;QACvC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,GAAG,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1E,IAAI,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnD,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,yFAAyF;QACzF,IAAI,KAAK,GAA0C,IAAI,CAAC;QACxD,IAAI,MAAyD,CAAC;QAC9D,yFAAyF;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC7B,OAAO,GAAG,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC5E,CAAC;gBAED,MAAM,GAAG,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,KAAqC,CAAC;YAC1C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,KAAK,KAAK,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAChC,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;YAED,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;YACxC,+EAA+E;YAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAChC,oEAAoE;YACpE,MAAM,IAAI,GACR,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,KAAK,KAAK;gBACtE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;CACF"}
@@ -1,23 +0,0 @@
1
- import type { Batcher, BatcherPipe, InstructionSet, Renderer } from "pixi.js";
2
- /**
3
- * The instruction sets of groups a view made, the only ones given spare batchers: a root rendered
4
- * once, as BitmapData.draw's, is destroyed with whatever it was given.
5
- */
6
- export declare const viewGroups: WeakSet<InstructionSet>;
7
- /**
8
- * The batchers a group's new instruction set builds with (render/hooks.ts): a retired group's,
9
- * for a set a view made, or none, for Pixi to make new ones.
10
- */
11
- export declare function spareBatchersFor(pipe: BatcherPipe, set: InstructionSet): Record<string, Batcher> | undefined;
12
- /**
13
- * Take a retired instruction set's batchers from Pixi, which keeps them by ID even after its group
14
- * is gone. A branch made anew each frame would otherwise allocate a group's buffers as an older
15
- * one's are freed, which costs more than keeping them all; a new group takes them over instead.
16
- */
17
- export declare function retireBatchers(renderer: Renderer, uid: number): void;
18
- /**
19
- * Cut back the buffers of the batchers of `renderer`'s groups that have long used little of them
20
- * (Pixi's BatcherPipe.trim).
21
- */
22
- export declare function trimBatchers(renderer: Renderer, now: number): void;
23
- //# sourceMappingURL=batchers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchers.d.ts","sourceRoot":"","sources":["../../src/render/batchers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAK9E;;;GAGG;AACH,eAAO,MAAM,UAAU,yBAAgC,CAAC;AAOxD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,cAAc,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAGrC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAqBpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAElE"}