@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,160 +0,0 @@
1
- import { CHILDREN, CONTENT, Container, TRANSFORM } from "../display/display.js";
2
- import { FilterChain } from "./filters.js";
3
- import { IDLE_MS, SPARE_NODES_MOST } from "./pools.js";
4
- /** The view's released nodes, by their objects' character. */
5
- export class SpareNodes {
6
- fresh;
7
- nodes;
8
- containerNodes;
9
- /**
10
- * The released nodes, by their objects' character, for a new object of
11
- * the character to take. A timeline that places its children anew on
12
- * every frame, as an animated character's often does, made hundreds of
13
- * nodes a frame, each with its containers, and dropped as many: taken, a
14
- * node keeps its containers and Graphics, where they are in Pixi's tree
15
- * when it comes back in its place, and its filters where the new
16
- * object's are the same. And all of them, oldest first, with the time
17
- * each was listed: SPARE_NODES_MOST at most, none past IDLE_MS, and none
18
- * past an unload (`clear`), which would keep its SWF's characters.
19
- */
20
- byCharacter = new Map();
21
- since = new Map();
22
- constructor(
23
- /** Whether the view draws once (PixiView's `fresh`), which keeps no spares. */
24
- fresh,
25
- /** The view's nodes by their objects, and by their containers. */
26
- nodes, containerNodes) {
27
- this.fresh = fresh;
28
- this.nodes = nodes;
29
- this.containerNodes = containerNodes;
30
- }
31
- /**
32
- * A released node of `o`'s character and class for `o` to take, the one
33
- * whose container is `hint`, in `o`'s place, where it is one. Its object
34
- * gets a node of its own if it comes back. The node is synced as one
35
- * that comes back is, which `o`, new, has redrawn and placed whole;
36
- * what only its old object's history set (a stale cache, a slice, a
37
- * colour) is forgotten here.
38
- */
39
- take(o, hint) {
40
- const character = o.character;
41
- const listed = character && this.byCharacter.get(character);
42
- if (!listed) {
43
- return undefined;
44
- }
45
- let node;
46
- const placed = hint ? this.containerNodes.get(hint) : undefined;
47
- if (placed && listed.has(placed) && this.fits(placed, o)) {
48
- node = placed;
49
- }
50
- else {
51
- // Oldest first; one no longer fit to take, as one made a mask, is let go of on the way.
52
- for (const spare of listed) {
53
- if (this.fits(spare, o)) {
54
- node = spare;
55
- break;
56
- }
57
- this.unlist(spare);
58
- }
59
- }
60
- if (!node) {
61
- return undefined;
62
- }
63
- this.unlist(node);
64
- // Back on the list, the old object is drawn whole into a node of its own.
65
- const was = node.owner.deref();
66
- if (was) {
67
- this.nodes.delete(was);
68
- was.dirty |= TRANSFORM | CONTENT | (was instanceof Container ? CHILDREN : 0);
69
- }
70
- node.owner = o.ref;
71
- node.stale = null;
72
- node.color = null;
73
- node.inherited = null;
74
- // The chain it keeps, as filters set alike keep it, is coloured only as the colour changes:
75
- // from none, as node.color now is, not in the old object's.
76
- const chain = node.filters[0];
77
- if (chain instanceof FilterChain) {
78
- chain.recolor(null);
79
- }
80
- node.slice = null;
81
- node.sliceKey = "";
82
- node.sliceOwner = null;
83
- node.sliceLinear = null;
84
- node.lineSpace = null;
85
- this.nodes.set(o, node);
86
- return node;
87
- }
88
- /**
89
- * Whether `node`, listed spare, may be taken by `o`: still off the list,
90
- * of its class, and not made a mask since it was listed, as an object
91
- * taken off the list in the frame a script makes it one is.
92
- */
93
- fits(node, o) {
94
- const container = node.container;
95
- return (node.released &&
96
- node.kind === o.constructor &&
97
- node.character === o.character &&
98
- container.includeInBuild !== false &&
99
- container.measurable !== false);
100
- }
101
- /**
102
- * List a node just released for a new object of its character to take:
103
- * not a mask's, whose container a masked one may still hold.
104
- */
105
- list(node) {
106
- // As its object is now: a timeline may have swapped the character it was made of.
107
- const owner = node.owner.deref();
108
- if (owner) {
109
- node.character = owner.character;
110
- node.kind = owner.constructor;
111
- }
112
- const character = node.character;
113
- const container = node.container;
114
- if (this.fresh ||
115
- !character ||
116
- node.masking ||
117
- container.includeInBuild === false ||
118
- container.measurable === false ||
119
- this.since.has(node)) {
120
- return;
121
- }
122
- let listed = this.byCharacter.get(character);
123
- if (!listed) {
124
- listed = new Set();
125
- this.byCharacter.set(character, listed);
126
- }
127
- listed.add(node);
128
- this.since.set(node, performance.now());
129
- if (this.since.size > SPARE_NODES_MOST) {
130
- this.unlist(this.since.keys().next().value);
131
- }
132
- }
133
- /** A node off the spares: taken, come back, kept too long, or past the most. */
134
- unlist(node) {
135
- if (!this.since.delete(node)) {
136
- return;
137
- }
138
- const character = node.character;
139
- const listed = this.byCharacter.get(character);
140
- listed?.delete(node);
141
- if (listed?.size === 0) {
142
- this.byCharacter.delete(character);
143
- }
144
- }
145
- /** Every spare let go of, as a SWF unloads (PixiView.dropSpares). */
146
- clear() {
147
- this.byCharacter.clear();
148
- this.since.clear();
149
- }
150
- /** The spares listed IDLE_MS or more before `now` let go of, oldest first. */
151
- expire(now) {
152
- for (const [node, since] of this.since) {
153
- if (now - since < IDLE_MS) {
154
- break;
155
- }
156
- this.unlist(node);
157
- }
158
- }
159
- }
160
- //# sourceMappingURL=spares.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spares.js","sourceRoot":"","sources":["../../src/render/spares.ts"],"names":[],"mappings":"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"}
@@ -1,107 +0,0 @@
1
- import { type GraphicsContext, Matrix } from "pixi.js";
2
- import { type ShapeLayer } from "../display/shapes.js";
3
- import { type DeviceMemory, IdleBudget } from "./pools.js";
4
- /** The linear part of a matrix, [a, b, c, d]: all a stroke's width depends on. */
5
- export type Linear = [number, number, number, number];
6
- export declare const UNIT: Linear;
7
- export declare function sameLinear(p: Linear, q: Linear): boolean;
8
- /**
9
- * The context a line's Graphics shows until restroke gives it its own: one
10
- * for all, never given back nor destroyed, where each made one of its own
11
- * to throw away.
12
- */
13
- export declare const NO_LINES: GraphicsContext;
14
- /**
15
- * Lines' contexts by shape layer and the linear transform they are seen
16
- * through, shared by every instance that sees a character's layer alike:
17
- * instances of one creature in step, or one instance on its loop's next
18
- * turn. Contexts are counted as they are taken and given back, a removed
19
- * object's too; one no longer taken waits among the idle, destroyed after
20
- * LINES_IDLE_MS or, the oldest first, past the budget of their vertices,
21
- * which grows from LINES_IDLE_VERTICES as content comes back to what it
22
- * let go (IdleBudget), or past as many of them, LINES_IDLE_MOST for that
23
- * budget's least and more for more. Only a character's layers
24
- * are shared, which never change, and a blend's while its morph keeps it:
25
- * one it has dropped is never drawn from again, so its lines go at once.
26
- */
27
- export declare class StrokeContexts {
28
- private readonly counts;
29
- private readonly byLayer;
30
- private readonly uses;
31
- private readonly keys;
32
- /** Contexts no one holds, oldest first, with the time each went idle. */
33
- private readonly idle;
34
- /** The idle ones' vertices as they went idle, and their sum. */
35
- private readonly idleSizes;
36
- private idleVertices;
37
- /** How many vertices the idle may hold, grown as content comes back to what went for room. */
38
- readonly budget: IdleBudget;
39
- /** Each layer's number, for the budget's keys, which must hold no layer. */
40
- private readonly layerIds;
41
- private layerCount;
42
- /** The idle ones of blends, which go as soon as their morph drops the blend. */
43
- private readonly idleBlends;
44
- constructor(counts: {
45
- strokeContexts: number;
46
- strokeReuses: number;
47
- }, device?: DeviceMemory);
48
- /** Content unloaded: the budget back to its floor, the unloaded content's idle lines going on the next tick. */
49
- unloaded(): void;
50
- /** The layer's lines under `key` if they are kept, not taken: for a view drawn once to borrow. */
51
- peek(layer: ShapeLayer, key: string): GraphicsContext | null;
52
- /** The layer's lines seen through `m`, taken: made or found. */
53
- take(layer: ShapeLayer, m: Linear, least: number, key?: string): GraphicsContext;
54
- /** Give a context back: one of these goes idle when no one holds it; any other is destroyed. */
55
- give(context: GraphicsContext): void;
56
- /** A frame prepared: the contexts idle too long go, and those of blends their morph dropped. */
57
- tick(): void;
58
- /** The oldest idle let go, their keys remembered, till the rest are within the budget. */
59
- private trim;
60
- private ghostKey;
61
- /** Take a context off the idle, if it is there. */
62
- private wake;
63
- private drop;
64
- }
65
- /** Lines stroked through `m`: the key they are kept by, and the inverse that takes them back to the object's axes. */
66
- export declare function strokeFrame(m: Linear, least: number): {
67
- m: Linear;
68
- key: string;
69
- inverse: Matrix | null;
70
- };
71
- /**
72
- * `m`'s stretch, without its turn or mirror: m is a rotation or a mirror
73
- * times this symmetric stretch, and a line scaled both ways is as wide
74
- * through either (screenWidth reads |m's columns' sum|, which no rotation
75
- * changes), so its lines are the same stroked through the stretch alone
76
- * and then turned. A limb that turns on every frame of a loop, a spinning
77
- * particle squashed one way, every mirror and every instance alike then
78
- * share the lines of one context, where each angle was tessellated anew.
79
- * Rounded, so that one stretch has one key however its turn rounded it;
80
- * null where m flattens everything, or nearly, where rounding would.
81
- */
82
- export declare function stretchOf(m: Linear, out?: Linear): Linear | null;
83
- /**
84
- * The stretch `s` (stretchOf's, symmetric with a positive determinant)
85
- * moved to the nearest point of a grid, `widest` the width of its widest
86
- * line in twips and `least` a pixel of the screen; or `s` itself. A tween
87
- * that scales a little on every frame, a character that breathes, gave
88
- * each frame a stretch of its own, and its lines were tessellated again
89
- * on every frame of every loop, faster than the cache could keep them; the
90
- * grid gives such a pulse a few. Lines stroked through the grid's stretch
91
- * and taken back through its inverse (strokeFrame) follow the shape's path
92
- * exactly; only their width and joins see the small difference between
93
- * the two stretches, s q⁻¹'s from the identity, which the grid keeps under
94
- * EDGE_SLACK of a pixel at their edges. The grid is on the stretch's
95
- * logarithm, a symmetric matrix whose entries measure scale and shear
96
- * alike, in a step that is a power of two, so that stretches settled alike
97
- * share their contexts; one it would move further than a step, as it may
98
- * one that squashes nearly flat, is its own.
99
- */
100
- export declare function settledStretch(s: Linear, widest: number, least: number, out?: Linear): Linear;
101
- /** The width of the layer's widest line, in twips. */
102
- export declare function widestLine(layer: ShapeLayer): number;
103
- /** Whether every line of the layer scales both ways, whose width no rotation changes; one scaled one way alone turns with it. */
104
- export declare function scalesEvenly(layer: ShapeLayer): boolean;
105
- /** A layer's lines seen through `m`, nothing where `m` flattens them. */
106
- export declare function linesContext(layer: ShapeLayer, m: Linear, least: number, by?: Linear): GraphicsContext;
107
- //# sourceMappingURL=strokes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strokes.d.ts","sourceRoot":"","sources":["../../src/render/strokes.ts"],"names":[],"mappings":"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"}