@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,511 +0,0 @@
1
- import { GlProgram, Graphics, Matrix, Mesh, MeshGeometry, Container as PixiContainer, RenderTexture, Shader, Sprite, Texture, UniformGroup, } from "pixi.js";
2
- import { isProjective } from "../display/geometry.js";
3
- import { drawTarget, releaseDrawTarget } from "./pools.js";
4
- /** 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. */
5
- export const SAMPLES = 4;
6
- /** The most texels a side of a bitmap: larger, the object is drawn into it at less than a texel a pixel. */
7
- const LARGEST = 2048;
8
- /** The most texels the samples a bitmap is drawn at may take (16 MiB): past it, fewer samples. */
9
- const SAMPLED_TEXELS = 4 * 1024 * 1024;
10
- /** The samples a side, and texels a pixel of the object's space, a bitmap of a w by h rectangle is drawn at. */
11
- export function bitmapScale(width, height, largest) {
12
- const texels = Math.min(1, Math.min(LARGEST, largest) / Math.max(width, height));
13
- const w = Math.max(1, Math.ceil(width * texels));
14
- const h = Math.max(1, Math.ceil(height * texels));
15
- let samples = SAMPLES;
16
- while (samples > 1 &&
17
- (w * samples > largest || h * samples > largest || w * h * samples * samples > SAMPLED_TEXELS)) {
18
- samples /= 2;
19
- }
20
- return { samples, texels };
21
- }
22
- /** Each renderer's largest texture a side. */
23
- const largestTextures = new WeakMap();
24
- function largestTexture(renderer) {
25
- let largest = largestTextures.get(renderer);
26
- if (largest === undefined) {
27
- const gl = renderer.gl;
28
- largest = gl ? gl.getParameter(gl.MAX_TEXTURE_SIZE) : 4096;
29
- largestTextures.set(renderer, largest);
30
- }
31
- return largest;
32
- }
33
- const vertex = `#version 300 es
34
- in vec2 aPosition;
35
- in vec2 aUV;
36
- in float aW;
37
- out vec2 vUV;
38
- out vec4 vColor;
39
- uniform mat3 uProjectionMatrix;
40
- uniform mat3 uWorldTransformMatrix;
41
- uniform vec4 uWorldColorAlpha;
42
- uniform mat3 uTransformMatrix;
43
- uniform vec4 uColor;
44
-
45
- void main(void) {
46
- mat3 mvp = uProjectionMatrix * uWorldTransformMatrix * uTransformMatrix;
47
- vec3 p = mvp * vec3(aPosition * aW, aW);
48
- gl_Position = vec4(p.xy, 0.0, p.z);
49
- vUV = aUV;
50
- vColor = uColor * uWorldColorAlpha;
51
- }
52
- `;
53
- // Its colour is in its bitmap, all above it drawn into it (view.ts): Pixi's is not taken.
54
- // Sampled where the pixel it is in has its centre: Flash smooths the bitmap
55
- // once a pixel, and the target's samples (uPixel a side of a pixel, for
56
- // the page that draws finer to average down) all take that pixel's value.
57
- const fragment = `#version 300 es
58
- in vec2 vUV;
59
- in vec4 vColor;
60
- out vec4 finalColor;
61
- uniform sampler2D uTexture;
62
- uniform float uPixel;
63
-
64
- void main(void) {
65
- vec2 d = (floor(gl_FragCoord.xy / uPixel) + 0.5) * uPixel - gl_FragCoord.xy;
66
- vec2 uv = vUV + dFdx(vUV) * d.x + dFdy(vUV) * d.y;
67
- finalColor = texture(uTexture, uv);
68
- }
69
- `;
70
- // A bitmap drawn at n samples a side averaged down to a texel a pixel in one pass: four smoothed
71
- // reads, each the mean of a square of four samples, at the corners of the middle of its n by n.
72
- const average = `#version 300 es
73
- in vec2 vUV;
74
- in vec4 vColor;
75
- out vec4 finalColor;
76
- uniform sampler2D uTexture;
77
- uniform vec2 uReach;
78
-
79
- void main(void) {
80
- finalColor = 0.25 * (texture(uTexture, vUV + vec2(-uReach.x, -uReach.y))
81
- + texture(uTexture, vUV + vec2(uReach.x, -uReach.y))
82
- + texture(uTexture, vUV + vec2(-uReach.x, uReach.y))
83
- + texture(uTexture, vUV + uReach));
84
- }
85
- `;
86
- let program = null;
87
- let averageProgram = null;
88
- /** A quad over a target, drawing a texture averaged down to it (`average`); one a renderer, kept. */
89
- class Averager {
90
- positions = new Float32Array(8);
91
- uvs = new Float32Array(8);
92
- geometry = new MeshGeometry({
93
- positions: this.positions,
94
- uvs: this.uvs,
95
- indices: new Uint32Array([0, 1, 2, 0, 2, 3]),
96
- });
97
- shader;
98
- mesh;
99
- constructor() {
100
- averageProgram ??= new GlProgram({
101
- vertex: vertex.replace("in float aW;\n", "").replace("aPosition * aW, aW", "aPosition, 1.0"),
102
- fragment: average,
103
- name: "flash-plane-average",
104
- });
105
- this.shader = new Shader({
106
- glProgram: averageProgram,
107
- resources: {
108
- uTexture: Texture.EMPTY.source,
109
- averageUniforms: new UniformGroup({
110
- uReach: { value: new Float32Array(2), type: "vec2<f32>" },
111
- }),
112
- },
113
- });
114
- this.mesh = new Mesh({ geometry: this.geometry, shader: this.shader });
115
- }
116
- /**
117
- * The top left w by h texels of `target` averaged from `source`, `samples` texels a side a
118
- * texel of it: the textures are kept in sizes of whole steps, larger than what they hold.
119
- */
120
- draw(renderer, source, target, w, h, samples) {
121
- if (this.positions[2] !== w || this.positions[5] !== h) {
122
- this.positions.set([0, 0, w, 0, w, h, 0, h]);
123
- this.geometry.getBuffer("aPosition").update();
124
- }
125
- const u = (w * samples) / source.width;
126
- const v = (h * samples) / source.height;
127
- if (this.uvs[2] !== u || this.uvs[5] !== v) {
128
- this.uvs.set([0, 0, u, 0, u, v, 0, v]);
129
- this.geometry.getBuffer("aUV").update();
130
- }
131
- source.source.scaleMode = "linear";
132
- this.shader.resources.uTexture = source.source;
133
- this.mesh.texture = source;
134
- // A texel of the target is samples by samples of the source: reads a sample off its middle
135
- // each way take four samples each, at 2 a side one read at the middle takes them all.
136
- const reach = this.shader.resources.averageUniforms.uniforms.uReach;
137
- reach[0] = (samples - 2) / 2 / source.width;
138
- reach[1] = (samples - 2) / 2 / source.height;
139
- renderer.render({ container: this.mesh, target, clear: true });
140
- }
141
- }
142
- const averagers = new WeakMap();
143
- /** A texture's side in whole steps, so that one kept or pooled serves a range of sizes, within `largest`. */
144
- function stepped(side, largest) {
145
- return Math.min(largest, Math.ceil(side / 32) * 32);
146
- }
147
- /** Each renderer's count of contexts it was given, lost ones' bitmaps empty in the new. */
148
- const contexts = new WeakMap();
149
- function contextOf(renderer) {
150
- let context = contexts.get(renderer);
151
- if (!context) {
152
- const counted = { count: 0 };
153
- renderer.runners.contextChange.add({ contextChange: () => counted.count++ });
154
- contexts.set(renderer, counted);
155
- context = counted;
156
- }
157
- return context.count;
158
- }
159
- /** What drawing a child of a mask's container depends on, put on `out` in the order `mirror` copies it. */
160
- function traits(child, out) {
161
- child.updateLocalTransform();
162
- const { a, b, c, d, tx, ty } = child.localTransform;
163
- const drawn = child instanceof Graphics ? child.context : child instanceof Sprite ? child.texture : null;
164
- const anchor = child instanceof Sprite ? child.anchor : null;
165
- out.push(child, drawn, a, b, c, d, tx, ty, child.visible, anchor?.x, anchor?.y);
166
- }
167
- /** A child's traits as they are now, kept between calls so that a comparison allocates nothing. */
168
- const now = [];
169
- /**
170
- * Whether `source` would be copied as `from` (`mirror`) recorded it from
171
- * `at` on: the index past its record, or -1 where anything differs.
172
- */
173
- function copiedAs(source, from, at) {
174
- let i = at;
175
- for (const child of source.children) {
176
- if (!child.includeInBuild) {
177
- continue;
178
- }
179
- now.length = 0;
180
- traits(child, now);
181
- for (const value of now) {
182
- if (i >= from.length || from[i++] !== value) {
183
- return -1;
184
- }
185
- }
186
- i = copiedAs(child, from, i);
187
- if (i < 0) {
188
- return -1;
189
- }
190
- }
191
- // A child it had and has no longer leaves its record to be read as the next one's, whose
192
- // child is another: the comparison fails there, or the whole falls short of the record.
193
- return i;
194
- }
195
- /**
196
- * A copy of what a mask's container draws, its transform left out: its
197
- * Graphics' contexts and its sprites' textures shared, its other containers
198
- * and their transforms copied. Masks hold such and nothing else to draw.
199
- * What each copy was made from goes on `from`, for `copiedAs`.
200
- */
201
- function mirror(source, into, from) {
202
- for (const child of source.children) {
203
- // A mask's own masks, which are not drawn, are left out.
204
- if (!child.includeInBuild) {
205
- continue;
206
- }
207
- const copy = child instanceof Graphics
208
- ? new Graphics({ context: child.context, observeContext: false })
209
- : child instanceof Sprite
210
- ? new Sprite(child.texture)
211
- : child.constructor === PixiContainer
212
- ? new PixiContainer()
213
- : null;
214
- if (!copy) {
215
- continue;
216
- }
217
- if (copy instanceof Sprite && child instanceof Sprite) {
218
- copy.anchor.copyFrom(child.anchor);
219
- }
220
- traits(child, from);
221
- copy.setFromMatrix(child.localTransform);
222
- copy.visible = child.visible;
223
- into.addChild(copy);
224
- mirror(child, copy, from);
225
- }
226
- }
227
- /** What the view keeps for a 3D object: the container its content is drawn from, the quad, and its bitmap. */
228
- export class Plane {
229
- /** The root the object's container is drawn into its bitmap under, on no list. */
230
- holder = new PixiContainer();
231
- quad;
232
- positions = new Float32Array(8);
233
- ws = new Float32Array(4);
234
- uvs = new Float32Array(8);
235
- geometry;
236
- shader;
237
- texture = null;
238
- /** The rectangle the bitmap holds, in the object's space. */
239
- x = 0;
240
- y = 0;
241
- width = 0;
242
- height = 0;
243
- /** Whether what it draws may have changed since its bitmap was drawn. */
244
- stale = true;
245
- /** The renderer's context the bitmap was drawn in (contextOf). */
246
- drawnIn = -1;
247
- /** The renderer's units a pixel of the object's space its content was last drawn at, and its texels a pixel. */
248
- units = SAMPLES;
249
- texels = 1;
250
- /** What its content draws, filters' reach included, as last measured (planes.ts); undefined before. */
251
- drawnRect = undefined;
252
- /** The units its content was last synced for (view.ts). */
253
- syncedUnits = SAMPLES;
254
- at = new Matrix();
255
- /** Whether the quad was placed elsewhere, or its bitmap drawn again, since the last frame. */
256
- changed = true;
257
- /** The blend's filters on the quad (planes.ts), null for none. */
258
- blending = null;
259
- /**
260
- * A 2D mask from outside the object: its container, kept from being drawn on the stage by
261
- * `keeper`, and the copy of it in the holder that clips the object's content in its bitmap.
262
- */
263
- outsideMask = null;
264
- keeper = new PixiContainer();
265
- maskCopy = new PixiContainer();
266
- /** What the mask's copy was made from (`mirror`), its map first: the same again needs no new copy. */
267
- copied = [];
268
- constructor() {
269
- program ??= new GlProgram({ vertex, fragment, name: "flash-plane" });
270
- this.geometry = new MeshGeometry({
271
- positions: this.positions,
272
- uvs: this.uvs,
273
- indices: new Uint32Array([0, 1, 2, 0, 2, 3]),
274
- });
275
- this.geometry.addAttribute("aW", { buffer: this.ws, format: "float32" });
276
- this.shader = new Shader({
277
- glProgram: program,
278
- resources: {
279
- uTexture: Texture.EMPTY.source,
280
- planeUniforms: new UniformGroup({ uPixel: { value: 1, type: "f32" } }),
281
- },
282
- });
283
- this.quad = new Mesh({ geometry: this.geometry, shader: this.shader });
284
- this.quad.visible = false;
285
- }
286
- /**
287
- * Place the quad by the object's plane in its parent's space, `m`, over
288
- * the rectangle, in the object's space, `pixel` of its target's pixels a side of one
289
- * of Flash's. False, and nothing drawn, where a corner is behind the
290
- * eye, as Flash draws none of it.
291
- */
292
- place(m, xMin, yMin, xMax, yMax, pixel) {
293
- const uniforms = this.shader.resources.planeUniforms.uniforms;
294
- if (uniforms.uPixel !== pixel) {
295
- uniforms.uPixel = pixel;
296
- }
297
- // The bitmap from the object's left and top out to whole pixels, a texel a pixel, and a texel
298
- // of nothing around. Flash draws it a texel wider and taller than it is, about its centre,
299
- // and half a pixel of the stage right and down: so unturned at a texel a pixel its left and
300
- // top edges stay where they are, and magnified it grows as much each way.
301
- const xFrom = Math.floor(xMin);
302
- const yFrom = Math.floor(yMin);
303
- const across = Math.ceil(xMax) - xFrom;
304
- const down = Math.ceil(yMax) - yFrom;
305
- if (!(across >= 1 && down >= 1 && across < 1e6 && down < 1e6)) {
306
- return false;
307
- }
308
- const x0 = xFrom - 1;
309
- const y0 = yFrom - 1;
310
- const width = across + 2;
311
- const height = down + 2;
312
- const [u, v, w] = isProjective(m) ? [m.u, m.v, m.w] : [0, 0, 1];
313
- const cx = xFrom + across / 2;
314
- const cy = yFrom + down / 2;
315
- const at = (x, y) => {
316
- const q = u * x + v * y + w;
317
- return [(m.a * x + m.c * y + m.tx) / q, (m.b * x + m.d * y + m.ty) / q];
318
- };
319
- // Half a pixel of the stage right and down, in the object's space: through the inverse of
320
- // how its plane moves a point at the centre.
321
- const [ax, ay] = at(cx - 0.5, cy);
322
- const [bx, by] = at(cx + 0.5, cy);
323
- const [dx, dy] = at(cx, cy - 0.5);
324
- const [ex, ey] = at(cx, cy + 0.5);
325
- const jxx = bx - ax;
326
- const jyx = by - ay;
327
- const jxy = ex - dx;
328
- const jyy = ey - dy;
329
- const det = jxx * jyy - jxy * jyx;
330
- const shiftX = det ? (0.5 * jyy - 0.5 * jxy) / det : 0;
331
- const shiftY = det ? (0.5 * jxx - 0.5 * jyx) / det : 0;
332
- const sx = (across + 1) / across;
333
- const sy = (down + 1) / down;
334
- const left = cx + shiftX - (across / 2 + 1) * sx;
335
- const right = cx + shiftX + (across / 2 + 1) * sx;
336
- const top = cy + shiftY - (down / 2 + 1) * sy;
337
- const bottom = cy + shiftY + (down / 2 + 1) * sy;
338
- for (let i = 0; i < 4; i++) {
339
- // Corners in the uvs' order: top left, top right, bottom right, bottom left.
340
- const x = i === 1 || i === 2 ? right : left;
341
- const y = i >= 2 ? bottom : top;
342
- const q = u * x + v * y + w;
343
- if (!(q > 0)) {
344
- return false;
345
- }
346
- const px = (m.a * x + m.c * y + m.tx) / q;
347
- const py = (m.b * x + m.d * y + m.ty) / q;
348
- if (px !== this.positions[i * 2] || py !== this.positions[i * 2 + 1] || q !== this.ws[i]) {
349
- this.changed = true;
350
- }
351
- this.positions[i * 2] = px;
352
- this.positions[i * 2 + 1] = py;
353
- this.ws[i] = q;
354
- }
355
- this.geometry.getBuffer("aPosition").update();
356
- this.geometry.getBuffer("aW").update();
357
- if (x0 !== this.x || y0 !== this.y || width !== this.width || height !== this.height) {
358
- this.x = x0;
359
- this.y = y0;
360
- this.width = width;
361
- this.height = height;
362
- this.stale = true;
363
- }
364
- return true;
365
- }
366
- /**
367
- * Clip `content`, the object's container, by `mask`, a mask's container from outside it, or
368
- * by none: as its own mask it would clip the quad on the stage. Pixi takes a mask out of the
369
- * build while it masks, and puts it back as it is let go of, by any that held it: the keeper
370
- * holds it, and it is taken out again where it is still another's.
371
- */
372
- maskWith(content, mask) {
373
- const previous = this.outsideMask;
374
- if (mask && content.mask === mask) {
375
- content.mask = null;
376
- }
377
- if (mask !== previous) {
378
- this.outsideMask = mask;
379
- this.keeper.mask = mask;
380
- this.clearMaskCopy();
381
- this.stale = true;
382
- }
383
- if (mask) {
384
- mask.includeInBuild = false;
385
- if (this.maskCopy.parent !== this.holder) {
386
- this.holder.addChildAt(this.maskCopy, 0);
387
- }
388
- content.mask = this.maskCopy;
389
- return;
390
- }
391
- if (previous && content.mask === previous) {
392
- previous.includeInBuild = false;
393
- }
394
- if (content.mask === this.maskCopy) {
395
- content.mask = null;
396
- }
397
- this.maskCopy.removeFromParent();
398
- }
399
- /**
400
- * The outside mask copied again, `m` the map from its container's space to the object's,
401
- * and the bitmap marked to be drawn again with it; nothing where neither the map nor what the
402
- * mask draws changed, as a still object under a still mask keeps its bitmap.
403
- */
404
- placeMask(m) {
405
- const mask = this.outsideMask;
406
- if (!mask) {
407
- return;
408
- }
409
- const copied = this.copied;
410
- const same = copied.length >= 6 && copiedAs(mask, copied, 6) === copied.length;
411
- if (same &&
412
- copied[0] === m.a &&
413
- copied[1] === m.b &&
414
- copied[2] === m.c &&
415
- copied[3] === m.d &&
416
- copied[4] === m.tx &&
417
- copied[5] === m.ty) {
418
- return;
419
- }
420
- // Moved alone, as under a turning object: the copy is kept and placed again.
421
- if (!same) {
422
- this.clearMaskCopy();
423
- copied.push(0, 0, 0, 0, 0, 0);
424
- mirror(mask, this.maskCopy, copied);
425
- }
426
- copied[0] = m.a;
427
- copied[1] = m.b;
428
- copied[2] = m.c;
429
- copied[3] = m.d;
430
- copied[4] = m.tx;
431
- copied[5] = m.ty;
432
- this.maskCopy.setFromMatrix(this.at.set(m.a, m.b, m.c, m.d, m.tx, m.ty));
433
- this.stale = true;
434
- }
435
- clearMaskCopy() {
436
- this.copied.length = 0;
437
- for (const child of this.maskCopy.removeChildren()) {
438
- child.destroy({ children: true });
439
- }
440
- }
441
- /** Draw the object's container into its bitmap, if it may have changed or its context was lost. */
442
- draw(renderer) {
443
- const context = contextOf(renderer);
444
- if (!this.stale && this.drawnIn === context) {
445
- return;
446
- }
447
- this.stale = false;
448
- this.drawnIn = context;
449
- this.changed = true;
450
- const largest = largestTexture(renderer);
451
- const { samples, texels } = bitmapScale(this.width, this.height, largest);
452
- this.units = samples * texels;
453
- this.texels = texels;
454
- const width = Math.max(1, Math.ceil(this.width * texels));
455
- const height = Math.max(1, Math.ceil(this.height * texels));
456
- // Kept while what it holds fits, and is not much smaller: an object whose children move
457
- // changes its size on most frames.
458
- const texture = this.texture;
459
- const keptW = stepped(width, largest);
460
- const keptH = stepped(height, largest);
461
- if (!texture ||
462
- texture.width < width ||
463
- texture.height < height ||
464
- texture.width * texture.height > 4 * keptW * keptH) {
465
- texture?.destroy(true);
466
- this.texture = RenderTexture.create({ width: keptW, height: keptH, scaleMode: "linear" });
467
- this.shader.resources.uTexture = this.texture.source;
468
- this.quad.texture = this.texture;
469
- }
470
- const bitmap = this.texture;
471
- const u = width / bitmap.width;
472
- const v = height / bitmap.height;
473
- if (this.uvs[2] !== u || this.uvs[5] !== v) {
474
- this.uvs.set([0, 0, u, 0, u, v, 0, v]);
475
- this.geometry.getBuffer("aUV").update();
476
- }
477
- // At its samples a side, then averaged down to the bitmap in one pass.
478
- const scale = this.units;
479
- const target = samples > 1
480
- ? drawTarget(stepped(width * samples, largest), stepped(height * samples, largest))
481
- : bitmap;
482
- renderer.render({
483
- container: this.holder,
484
- target,
485
- clear: true,
486
- transform: this.at.set(scale, 0, 0, scale, -this.x * scale, -this.y * scale),
487
- });
488
- if (samples > 1) {
489
- let averager = averagers.get(renderer);
490
- if (!averager) {
491
- averager = new Averager();
492
- averagers.set(renderer, averager);
493
- }
494
- averager.draw(renderer, target, bitmap, width, height, samples);
495
- releaseDrawTarget(target);
496
- }
497
- }
498
- /** Let go of all it holds; `content`, the object's container, keeps a mask it has of its own. */
499
- destroy(content) {
500
- this.maskWith(content, null);
501
- this.quad.destroy();
502
- this.geometry.destroy();
503
- this.shader.destroy();
504
- this.texture?.destroy(true);
505
- this.texture = null;
506
- this.maskCopy.destroy();
507
- this.holder.removeChildren();
508
- this.holder.destroy();
509
- }
510
- }
511
- //# sourceMappingURL=three.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"three.js","sourceRoot":"","sources":["../../src/render/three.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import type { ColorTransform } from "@swf2es/format";
2
- import { Mesh, MeshGeometry, Shader, type Texture } from "pixi.js";
3
- import type { TriangleMesh } from "../display/shapes.js";
4
- /**
5
- * A drawing's textured triangles: a mesh of their vertices under its own
6
- * shader, one draw. It destroys its geometry, buffers and all, and its
7
- * shader with itself, and leaves the texture, its store's.
8
- */
9
- export declare class TriangleView extends Mesh<MeshGeometry, Shader> {
10
- /** What it draws, the drawing's. */
11
- readonly source: TriangleMesh;
12
- private readonly uniforms;
13
- /** The views it is listed in while it lives. */
14
- private readonly owner;
15
- private flash;
16
- constructor(source: TriangleMesh, texture: Texture, pixel: number, owner: Set<TriangleView>);
17
- /** The store's texture as it now is. */
18
- show(texture: Texture): void;
19
- /** The target's pixels a side of one of Flash's, which the texture is sampled once in. */
20
- set pixel(pixel: number);
21
- /** Whether the stage's quality lets it smooth where its fill asks to be: not at Flash's low. */
22
- set smoothing(smoothing: boolean);
23
- /** The Flash colour transform it draws under, in place of Pixi's colour (render/color.ts). */
24
- get flashColor(): ColorTransform | null;
25
- set flashColor(ct: ColorTransform | null);
26
- destroy(): void;
27
- }
28
- //# sourceMappingURL=triangles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"triangles.d.ts","sourceRoot":"","sources":["../../src/render/triangles.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAa,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,OAAO,EAAgB,MAAM,SAAS,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAuGzD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;IAC1D,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,KAAK,CAAwB;IAErC,YAAY,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EA2B1F;IAED,wCAAwC;IACxC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ3B;IAED,0FAA0F;IAC1F,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAMtB;IAED,gGAAgG;IAChG,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,EAO/B;IAED,8FAA8F;IAC9F,IAAI,UAAU,IAAI,cAAc,GAAG,IAAI,CAEtC;IAED,IAAI,UAAU,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,EAUvC;IAEQ,OAAO,IAAI,IAAI,CAQvB;CACF"}