@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,309 +0,0 @@
1
- import { CanvasTextMetrics, fontStringFromTextStyle, Graphics, Matrix, Container as PixiContainer, Text, } from "pixi.js";
2
- import { shapeLayers } from "../display/shapes.js";
3
- import { csmTables } from "../text/csm.js";
4
- import { deviceMetrics, fontFamily } from "../text/fonts.js";
5
- import { GUTTER, shownLines } from "../text/layout.js";
6
- import { SaffronBuilder } from "./saffron.js";
7
- import { SharedGraphics } from "./shared.js";
8
- import { fillContext, paint } from "./tessellate.js";
9
- /**
10
- * Whether text laid out at (x, y), `width` by `height`, reaches outside its
11
- * field, which then clips it: where it lies, as a margin or an indent puts
12
- * it, not its size alone.
13
- */
14
- export function overruns(field, x, y, width, height) {
15
- // Within a millionth of a pixel, the field's own size in pixels from its text's in twips
16
- // rounds off: advanced text, thickened, would be clipped where it only meets the edge.
17
- const e = 1e-6;
18
- return (x < field.left - e ||
19
- y < field.top - e ||
20
- x + width > field.left + field.width + e ||
21
- y + height > field.top + field.height + e);
22
- }
23
- /**
24
- * A builder for a text's advanced glyphs, each reserved by `each`, or
25
- * null where one cannot be drawn so, a glyph or the whole asking too much
26
- * of the shader: the text is then drawn as normal text, all of it alike.
27
- * Reserving goes again where the store started again meanwhile.
28
- */
29
- function advancedBuilder(advanced, grid, thickness, sharpness, each) {
30
- const builder = new SaffronBuilder(advanced.view, grid, thickness, sharpness, advanced.scale, advanced.again);
31
- for (let tries = 0; tries < 2; tries++) {
32
- builder.restart();
33
- if (!each(builder)) {
34
- return null;
35
- }
36
- if (builder.intact()) {
37
- return builder;
38
- }
39
- }
40
- return null;
41
- }
42
- /** gridFitType's values, in the order Saffron's shader and CSMTextSettings number them. */
43
- const GRIDS = ["none", "pixel", "subpixel"];
44
- /** Glyphs' fills, made once and shared by every character drawn in them; null for an empty glyph. */
45
- const glyphFills = new WeakMap();
46
- /** A glyph's outline as a shape's fill, white for a tint to colour, in the font's units over 20, as shapeLayers takes twips. */
47
- function glyphFill(glyph) {
48
- let context = glyphFills.get(glyph);
49
- if (context === undefined) {
50
- const shape = {
51
- id: 0,
52
- bounds: { xMin: 0, xMax: 0, yMin: 0, yMax: 0 },
53
- edgeBounds: null,
54
- fills: [{ type: "solid", color: 0xffffffff }],
55
- lines: [],
56
- records: glyph.records,
57
- truncated: false,
58
- };
59
- const layers = shapeLayers(shape);
60
- context = layers.length > 0 ? fillContext(layers[0], (fill) => paint(fill)) : null;
61
- glyphFills.set(glyph, context);
62
- }
63
- return context;
64
- }
65
- /**
66
- * A TextField drawn from its layout (text/layout.ts): its background and
67
- * border, then each line from the first scrolled to, a character of an
68
- * embedded font as its glyph's shape, a run of a device font as one Pixi
69
- * Text on the line's baseline, each in its own colour, clipped to the
70
- * field where the text runs over it. An advanced field's embedded glyphs
71
- * are drawn as Saffron draws them (render/saffron.ts), all in one mesh.
72
- */
73
- export function drawText(o, art, saffron) {
74
- if (o.background || o.border) {
75
- const box = new Graphics();
76
- if (o.background) {
77
- box.rect(o.left, o.top, o.width, o.height).fill({ color: o.backgroundColor & 0xffffff });
78
- }
79
- // A border covers the pixels at both edges, x and x + width, as adl draws it.
80
- if (o.border) {
81
- box
82
- .rect(o.left + 0.5, o.top + 0.5, o.width, o.height)
83
- .stroke({ color: o.borderColor & 0xffffff, width: 1 });
84
- }
85
- art.addChild(box);
86
- }
87
- if (!o.model.text) {
88
- drawCaret(o, art);
89
- return;
90
- }
91
- const layout = o.layout;
92
- const first = Math.min(Math.max(0, o.scrollV - 1), layout.lines.length - 1);
93
- // The lines that fit the field from there, one at least: adl draws no line part of the way.
94
- const last = first + shownLines(o, first) - 1;
95
- const dx = o.left * 20 - o.scrollH * 20;
96
- const dy = o.top * 20 - (layout.lines[first].y - GUTTER);
97
- const text = new PixiContainer();
98
- const advanced = saffron && o.antiAliasType === "advanced"
99
- ? advancedBuilder(saffron, GRIDS.indexOf(o.gridFitType), o.thickness, o.sharpness, (builder) => {
100
- for (let l = first; l <= last; l++) {
101
- for (const c of layout.lines[l].chars) {
102
- if (c.shown &&
103
- c.font &&
104
- c.glyph &&
105
- !builder.reserve(c.glyph, c.font.em, Math.max(0, c.format.size), csmTables(c.font))) {
106
- return false;
107
- }
108
- }
109
- }
110
- return true;
111
- })
112
- : null;
113
- let bottom = 0;
114
- let right = 0;
115
- let left = Number.POSITIVE_INFINITY;
116
- for (let l = first; l <= last; l++) {
117
- const line = layout.lines[l];
118
- const baseline = (dy + line.y + line.ascent) / 20;
119
- let run = [];
120
- const flush = () => {
121
- if (run.length > 0) {
122
- text.addChild(deviceRun(o, run, dx, baseline));
123
- run = [];
124
- }
125
- };
126
- for (const c of line.chars) {
127
- if (!c.shown) {
128
- continue;
129
- }
130
- if (c.font) {
131
- flush();
132
- const x = (dx + c.x + c.kern) / 20;
133
- const size = Math.max(0, c.format.size);
134
- const color = c.format.color & 0xffffff;
135
- // Saffron places a glyph where the pen stood, in fractions of a twip, as adl does.
136
- if (advanced &&
137
- c.glyph &&
138
- advanced.add(c.glyph, c.font.em, (dx + c.at + c.kern) / 20, baseline, size, color, 1, csmTables(c.font))) {
139
- continue;
140
- }
141
- const fill = c.glyph && glyphFill(c.glyph);
142
- if (fill) {
143
- const g = new SharedGraphics(fill);
144
- g.scale.set((size * 20) / c.font.em);
145
- g.position.set(x, baseline);
146
- g.tint = color;
147
- text.addChild(g);
148
- }
149
- }
150
- else if (run.length > 0 && run[0].format !== c.format) {
151
- flush();
152
- run.push(c);
153
- }
154
- else {
155
- run.push(c);
156
- }
157
- }
158
- flush();
159
- bottom = Math.max(bottom, dy + line.y + line.ascent + line.descent);
160
- right = Math.max(right, dx + line.x + line.width);
161
- left = Math.min(left, dx + line.x);
162
- }
163
- const glyphs = advanced?.done();
164
- if (glyphs) {
165
- text.addChild(glyphs);
166
- }
167
- art.addChild(text);
168
- // Clipped inside the gutter, as adl clips it: 2 pixels in from each edge.
169
- const inner = {
170
- left: o.left + GUTTER / 20,
171
- top: o.top + GUTTER / 20,
172
- width: o.width - (2 * GUTTER) / 20,
173
- height: o.height - (2 * GUTTER) / 20,
174
- };
175
- // Where the text lies, scrolled: a scroll left of the gutter clips as one past the right does.
176
- const top = (dy + layout.lines[first].y) / 20;
177
- if (overruns(inner, left / 20, top, (right - left) / 20, bottom / 20 - top)) {
178
- const clip = new Graphics()
179
- .rect(inner.left, inner.top, Math.max(0, inner.width), Math.max(0, inner.height))
180
- .fill({ color: 0xffffff });
181
- art.addChild(clip);
182
- text.mask = clip;
183
- }
184
- drawCaret(o, art);
185
- }
186
- /**
187
- * Static text: each glyph's shared fill, at its height and in its colour,
188
- * under the text's matrix; or, where its CSMTextSettings ask for advanced
189
- * anti-aliasing, as Saffron draws them.
190
- */
191
- export function drawStaticText(o, art, saffron) {
192
- const m = o.definition.definition.matrix;
193
- const text = new PixiContainer();
194
- text.setFromMatrix(new Matrix(m.a, m.b, m.c, m.d, m.tx / 20, m.ty / 20));
195
- const csm = o.definition.csm;
196
- const advanced = saffron && csm?.useFlashType
197
- ? advancedBuilder({ ...saffron, scale: saffron.scale * Math.sqrt(Math.abs(m.a * m.d - m.b * m.c)) }, csm.gridFit, csm.thickness, csm.sharpness, (builder) => o.glyphs.glyphs.every((placed) => builder.reserve(placed.glyph, placed.font.em, placed.height / 20, csmTables(placed.font))))
198
- : null;
199
- for (const placed of o.glyphs.glyphs) {
200
- const color = placed.color & 0xffffff;
201
- if (advanced?.add(placed.glyph, placed.font.em, placed.x / 20, placed.y / 20, placed.height / 20, color, (placed.color >>> 24) / 255, csmTables(placed.font))) {
202
- continue;
203
- }
204
- const fill = glyphFill(placed.glyph);
205
- if (!fill) {
206
- continue;
207
- }
208
- // The fill is in the font's units over 20: a height in twips over the em puts it in pixels.
209
- const g = new SharedGraphics(fill);
210
- g.scale.set(placed.height / placed.font.em);
211
- g.position.set(placed.x / 20, placed.y / 20);
212
- g.tint = color;
213
- g.alpha = (placed.color >>> 24) / 255;
214
- text.addChild(g);
215
- }
216
- const glyphs = advanced?.done();
217
- if (glyphs) {
218
- text.addChild(glyphs);
219
- }
220
- art.addChild(text);
221
- }
222
- /**
223
- * A focused input field's caret, a pixel wide and its line's height, in
224
- * the colour of the text before it, and its selection shaded under it.
225
- */
226
- function drawCaret(o, art) {
227
- if (!o.focused || !(o.type === "input" || o.selectable)) {
228
- return;
229
- }
230
- const layout = o.layout;
231
- const lines = layout.lines;
232
- if (lines.length === 0) {
233
- return;
234
- }
235
- const first = Math.min(Math.max(0, o.scrollV - 1), lines.length - 1);
236
- const last = first + shownLines(o, first) - 1;
237
- const dx = o.left * 20 - o.scrollH * 20;
238
- const dy = o.top * 20 - (lines[first].y - GUTTER);
239
- // Inside the gutter, as the text is clipped: a caret scrolled out of view is not drawn.
240
- const inner = {
241
- left: o.left + GUTTER / 20,
242
- right: o.left + o.width - GUTTER / 20,
243
- };
244
- // Where index i is drawn: its line, and its x, the line's end past its last character.
245
- const place = (i) => {
246
- const line = lines.find((l) => i < l.end) ?? lines[lines.length - 1];
247
- const c = line.chars[i - line.start];
248
- const shown = line.chars.filter((ch) => ch.shown);
249
- const last = shown[shown.length - 1];
250
- const x = c ? c.x : last ? last.x + last.advance : line.x;
251
- return { line, x: (dx + x) / 20 };
252
- };
253
- const g = new Graphics();
254
- const [begin, end] = o.selection;
255
- if (begin < end) {
256
- const from = place(begin);
257
- const to = place(end);
258
- const a = lines.indexOf(from.line);
259
- const b = lines.indexOf(to.line);
260
- // Each shown line the selection covers, from its start or to its end where it goes on.
261
- for (let i = Math.max(a, first); i <= Math.min(b, last); i++) {
262
- const line = lines[i];
263
- const left = i === a ? from.x : (dx + line.x) / 20;
264
- const shown = line.chars.filter((ch) => ch.shown);
265
- const end = shown.length > 0 ? shown[shown.length - 1] : null;
266
- const right = i === b ? to.x : (dx + (end ? end.x + end.advance : line.x)) / 20;
267
- // Within the gutter, as the text is: a line wider than the field is clipped there.
268
- const l = Math.max(left, inner.left);
269
- const r = Math.min(right, inner.right);
270
- const top = (dy + line.y) / 20;
271
- const height = (line.ascent + line.descent) / 20;
272
- g.rect(l, top, Math.max(0, r - l), height).fill({ color: 0x3399ff, alpha: 0.4 });
273
- }
274
- }
275
- const at = place(o.caret);
276
- const index = lines.indexOf(at.line);
277
- if (o.type === "input" &&
278
- index >= first &&
279
- index <= last &&
280
- at.x >= inner.left &&
281
- at.x <= inner.right) {
282
- const format = o.model.formats[Math.max(0, o.caret - 1)] ?? o.model.defaultFormat;
283
- const top = (dy + at.line.y) / 20;
284
- const height = Math.max(1, (at.line.ascent + at.line.descent) / 20);
285
- g.rect(at.x, top, 1, height).fill({ color: format.color & 0xffffff });
286
- }
287
- art.addChild(g);
288
- }
289
- /** A run of a device font's characters in one format, as Pixi Text from where the layout put its first, on the baseline. */
290
- function deviceRun(o, run, dx, baseline) {
291
- const f = run[0].format;
292
- const chars = run.map((c) => (o.displayAsPassword ? "*" : o.model.text[c.index])).join("");
293
- const style = {
294
- fontFamily: fontFamily(f.font),
295
- fontSize: f.size,
296
- fill: f.color & 0xffffff,
297
- fontWeight: f.bold ? "bold" : "normal",
298
- fontStyle: f.italic ? "italic" : "normal",
299
- letterSpacing: Number.isFinite(f.letterSpacing) ? f.letterSpacing : 0,
300
- };
301
- const t = new Text({ text: chars, style });
302
- // Pixi's Text puts its top at its font's ascent above the baseline; without a DOM (node) there is no font to measure.
303
- const ascent = typeof document === "undefined"
304
- ? deviceMetrics(f.font, f.size, f.bold, f.italic).ascent
305
- : CanvasTextMetrics.measureFont(fontStringFromTextStyle(t.style)).ascent;
306
- t.position.set((dx + run[0].x) / 20, baseline - ascent);
307
- return t;
308
- }
309
- //# sourceMappingURL=text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/render/text.ts"],"names":[],"mappings":"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"}
@@ -1,83 +0,0 @@
1
- import type { Matrix as Affine } from "@swf2es/format";
2
- import { type Filter, Mesh, MeshGeometry, Container as PixiContainer, type Renderer, Shader } from "pixi.js";
3
- /** The samples a side the bitmap is drawn at before it is averaged to a texel a pixel, as Flash's high quality covers edges. */
4
- export declare const SAMPLES = 4;
5
- /** The samples a side, and texels a pixel of the object's space, a bitmap of a w by h rectangle is drawn at. */
6
- export declare function bitmapScale(width: number, height: number, largest: number): {
7
- samples: number;
8
- texels: number;
9
- };
10
- /** What the view keeps for a 3D object: the container its content is drawn from, the quad, and its bitmap. */
11
- export declare class Plane {
12
- /** The root the object's container is drawn into its bitmap under, on no list. */
13
- readonly holder: PixiContainer<import("pixi.js").ContainerChild>;
14
- readonly quad: Mesh<MeshGeometry, Shader>;
15
- private readonly positions;
16
- private readonly ws;
17
- private readonly uvs;
18
- private readonly geometry;
19
- private readonly shader;
20
- private texture;
21
- /** The rectangle the bitmap holds, in the object's space. */
22
- private x;
23
- private y;
24
- private width;
25
- private height;
26
- /** Whether what it draws may have changed since its bitmap was drawn. */
27
- stale: boolean;
28
- /** The renderer's context the bitmap was drawn in (contextOf). */
29
- private drawnIn;
30
- /** The renderer's units a pixel of the object's space its content was last drawn at, and its texels a pixel. */
31
- units: number;
32
- texels: number;
33
- /** What its content draws, filters' reach included, as last measured (planes.ts); undefined before. */
34
- drawnRect: {
35
- x: number;
36
- y: number;
37
- width: number;
38
- height: number;
39
- } | null | undefined;
40
- /** The units its content was last synced for (view.ts). */
41
- syncedUnits: number;
42
- private readonly at;
43
- /** Whether the quad was placed elsewhere, or its bitmap drawn again, since the last frame. */
44
- changed: boolean;
45
- /** The blend's filters on the quad (planes.ts), null for none. */
46
- blending: Filter[] | null;
47
- /**
48
- * A 2D mask from outside the object: its container, kept from being drawn on the stage by
49
- * `keeper`, and the copy of it in the holder that clips the object's content in its bitmap.
50
- */
51
- outsideMask: PixiContainer | null;
52
- private readonly keeper;
53
- readonly maskCopy: PixiContainer<import("pixi.js").ContainerChild>;
54
- /** What the mask's copy was made from (`mirror`), its map first: the same again needs no new copy. */
55
- private readonly copied;
56
- constructor();
57
- /**
58
- * Place the quad by the object's plane in its parent's space, `m`, over
59
- * the rectangle, in the object's space, `pixel` of its target's pixels a side of one
60
- * of Flash's. False, and nothing drawn, where a corner is behind the
61
- * eye, as Flash draws none of it.
62
- */
63
- place(m: Affine, xMin: number, yMin: number, xMax: number, yMax: number, pixel: number): boolean;
64
- /**
65
- * Clip `content`, the object's container, by `mask`, a mask's container from outside it, or
66
- * by none: as its own mask it would clip the quad on the stage. Pixi takes a mask out of the
67
- * build while it masks, and puts it back as it is let go of, by any that held it: the keeper
68
- * holds it, and it is taken out again where it is still another's.
69
- */
70
- maskWith(content: PixiContainer, mask: PixiContainer | null): void;
71
- /**
72
- * The outside mask copied again, `m` the map from its container's space to the object's,
73
- * and the bitmap marked to be drawn again with it; nothing where neither the map nor what the
74
- * mask draws changed, as a still object under a still mask keeps its bitmap.
75
- */
76
- placeMask(m: Affine): void;
77
- private clearMaskCopy;
78
- /** Draw the object's container into its bitmap, if it may have changed or its context was lost. */
79
- draw(renderer: Renderer): void;
80
- /** Let go of all it holds; `content`, the object's container, keeps a mask it has of its own. */
81
- destroy(content: PixiContainer): void;
82
- }
83
- //# sourceMappingURL=three.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"three.d.ts","sourceRoot":"","sources":["../../src/render/three.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,KAAK,MAAM,EAIX,IAAI,EACJ,YAAY,EACZ,SAAS,IAAI,aAAa,EAC1B,KAAK,QAAQ,EAEb,MAAM,EAIP,MAAM,SAAS,CAAC;AAIjB,gIAAgI;AAChI,eAAO,MAAM,OAAO,IAAI,CAAC;AAQzB,gHAAgH;AAChH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAarC;AAmPD,8GAA8G;AAC9G,qBAAa,KAAK;IAChB,kFAAkF;IAClF,QAAQ,CAAC,MAAM,kDAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,OAAO,CAA8B;IAC7C,6DAA6D;IAC7D,OAAO,CAAC,CAAC,CAAK;IACd,OAAO,CAAC,CAAC,CAAK;IACd,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,yEAAyE;IACzE,KAAK,UAAQ;IACb,kEAAkE;IAClE,OAAO,CAAC,OAAO,CAAM;IACrB,gHAAgH;IAChH,KAAK,SAAW;IAChB,MAAM,SAAK;IACX,uGAAuG;IACvG,SAAS,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAa;IAClG,2DAA2D;IAC3D,WAAW,SAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAgB;IACnC,8FAA8F;IAC9F,OAAO,UAAQ;IACf,kEAAkE;IAClE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IACjC;;;OAGG;IACH,WAAW,EAAE,aAAa,GAAG,IAAI,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,QAAQ,CAAC,QAAQ,kDAAuB;IACxC,sGAAsG;IACtG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC,cAiBC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CA+E/F;IAED;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAgCjE;IAED;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAmCzB;IAED,OAAO,CAAC,aAAa;IAOrB,mGAAmG;IACnG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CA8D7B;IAED,iGAAiG;IACjG,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAUpC;CACF"}