@omnimedia/omnitool 1.1.0-8 → 1.1.0-80

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 (436) hide show
  1. package/README.md +293 -76
  2. package/package.json +19 -17
  3. package/s/context.ts +0 -7
  4. package/s/demo/demo.bundle.ts +104 -43
  5. package/s/demo/demo.css +244 -14
  6. package/s/demo/routines/export-test.ts +16 -0
  7. package/s/demo/routines/filmstrip-test.ts +22 -18
  8. package/s/demo/routines/load-video.ts +2 -3
  9. package/s/demo/routines/playback-test.ts +61 -0
  10. package/s/demo/routines/timeline-setup.ts +50 -0
  11. package/s/demo/routines/transcode-test.ts +19 -5
  12. package/s/demo/routines/transitions-test.ts +2 -2
  13. package/s/demo/routines/waveform-test.ts +35 -8
  14. package/s/driver/driver-worker.ts +9 -0
  15. package/s/driver/driver.test.ts +1 -1
  16. package/s/driver/driver.ts +43 -42
  17. package/s/driver/fns/schematic.ts +26 -6
  18. package/s/driver/fns/work.ts +65 -189
  19. package/s/driver/parts/compositor.ts +316 -0
  20. package/s/driver/parts/machina.ts +19 -20
  21. package/s/driver/utils/find-pixi-filter.ts +24 -0
  22. package/s/index.html.ts +103 -25
  23. package/s/index.ts +1 -0
  24. package/s/tests.bundle.ts +11 -0
  25. package/s/tests.html.ts +28 -0
  26. package/s/timeline/index.ts +8 -2
  27. package/s/timeline/parts/animations.ts +56 -0
  28. package/s/timeline/parts/filmstrip.ts +43 -16
  29. package/s/timeline/parts/filters.ts +453 -0
  30. package/s/timeline/parts/item.ts +70 -7
  31. package/s/timeline/parts/media.ts +12 -2
  32. package/s/timeline/parts/resource-pool.ts +8 -5
  33. package/s/timeline/parts/resource.ts +3 -0
  34. package/s/timeline/parts/waveform/parts/collect.ts +72 -0
  35. package/s/timeline/parts/waveform/parts/render.ts +45 -0
  36. package/s/timeline/parts/waveform/parts/types.ts +24 -0
  37. package/s/timeline/parts/waveform/waveform.ts +161 -0
  38. package/s/timeline/renderers/export/parts/audio-gain.ts +17 -0
  39. package/s/timeline/renderers/export/parts/audio-mix.ts +133 -0
  40. package/s/timeline/renderers/export/parts/cursor.ts +129 -0
  41. package/s/timeline/renderers/export/parts/produce-audio.ts +64 -0
  42. package/s/timeline/renderers/export/parts/produce-video.ts +49 -0
  43. package/s/timeline/renderers/export/parts/resamplers.ts +48 -0
  44. package/s/timeline/renderers/export/produce.ts +28 -0
  45. package/s/timeline/renderers/parts/handy.ts +377 -0
  46. package/s/timeline/renderers/parts/samplers/audio/parts/find.ts +19 -0
  47. package/s/timeline/renderers/parts/samplers/audio/parts/init.ts +60 -0
  48. package/s/timeline/renderers/parts/samplers/audio/parts/sink.ts +38 -0
  49. package/s/timeline/renderers/parts/samplers/audio/parts/types.ts +16 -0
  50. package/s/timeline/renderers/parts/samplers/audio/sampler.ts +35 -0
  51. package/s/timeline/renderers/parts/samplers/visual/parts/defaults.ts +16 -0
  52. package/s/timeline/renderers/parts/samplers/visual/parts/sample.ts +69 -0
  53. package/s/timeline/renderers/parts/samplers/visual/parts/sequence.ts +111 -0
  54. package/s/timeline/renderers/parts/samplers/visual/parts/sink.ts +38 -0
  55. package/s/timeline/renderers/parts/samplers/visual/parts/transition.ts +28 -0
  56. package/s/timeline/renderers/parts/samplers/visual/parts/types.ts +10 -0
  57. package/s/timeline/renderers/parts/samplers/visual/sampler.ts +28 -0
  58. package/s/timeline/renderers/parts/schedulers.ts +96 -0
  59. package/s/timeline/renderers/player/parts/playback.ts +159 -0
  60. package/s/timeline/renderers/player/player.ts +77 -0
  61. package/s/timeline/renderers/renderers.test.ts +385 -0
  62. package/s/timeline/sugar/helpers.ts +190 -0
  63. package/s/timeline/sugar/o.ts +271 -59
  64. package/s/timeline/sugar/omni.test.ts +210 -0
  65. package/s/timeline/sugar/omni.ts +35 -12
  66. package/s/timeline/types.ts +28 -3
  67. package/s/timeline/utils/anim.ts +71 -0
  68. package/s/timeline/utils/checksum.ts +3 -1
  69. package/s/timeline/utils/datafile.ts +15 -4
  70. package/s/timeline/utils/dummy-data.ts +3 -3
  71. package/s/timeline/utils/matrix.ts +21 -0
  72. package/s/timeline/utils/terps.ts +81 -0
  73. package/s/units/fps.ts +8 -0
  74. package/s/units/ms.ts +8 -0
  75. package/s/units/seconds.ts +8 -0
  76. package/x/WebGLRenderer-4CHIZDHY.js +2 -0
  77. package/x/WebGLRenderer-4CHIZDHY.js.map +7 -0
  78. package/x/WebGPURenderer-O6WXU2QR.js +2 -0
  79. package/x/WebGPURenderer-O6WXU2QR.js.map +7 -0
  80. package/x/browserAll-WNIOTNNP.js +2 -0
  81. package/x/browserAll-WNIOTNNP.js.map +7 -0
  82. package/x/chunk-23FOBGX6.js +2 -0
  83. package/x/chunk-23FOBGX6.js.map +7 -0
  84. package/x/chunk-73XOWA4F.js +393 -0
  85. package/x/chunk-73XOWA4F.js.map +7 -0
  86. package/x/chunk-IAWJKNX5.js +42 -0
  87. package/x/chunk-IAWJKNX5.js.map +7 -0
  88. package/x/chunk-KCMVLWBS.js +157 -0
  89. package/x/chunk-KCMVLWBS.js.map +7 -0
  90. package/x/chunk-MR32SQ27.js +2 -0
  91. package/x/chunk-MR32SQ27.js.map +7 -0
  92. package/x/chunk-VCUJJYRJ.js +327 -0
  93. package/x/chunk-VCUJJYRJ.js.map +7 -0
  94. package/x/chunk-XNIZ4L5W.js +269 -0
  95. package/x/chunk-XNIZ4L5W.js.map +7 -0
  96. package/x/chunk-ZLGNQFUI.js +15 -0
  97. package/x/chunk-ZLGNQFUI.js.map +7 -0
  98. package/x/context.d.ts +1 -4
  99. package/x/context.js +1 -5
  100. package/x/context.js.map +1 -1
  101. package/x/demo/WebGLRenderer-RSJAHIG2.js +2 -0
  102. package/x/demo/WebGLRenderer-RSJAHIG2.js.map +7 -0
  103. package/x/demo/WebGPURenderer-MGFAJCYY.js +2 -0
  104. package/x/demo/WebGPURenderer-MGFAJCYY.js.map +7 -0
  105. package/x/demo/browserAll-PTRBXBRP.js +2 -0
  106. package/x/demo/browserAll-PTRBXBRP.js.map +7 -0
  107. package/x/demo/chunk-CUYOGHWU.js +42 -0
  108. package/x/demo/chunk-CUYOGHWU.js.map +7 -0
  109. package/x/demo/chunk-DGTDNJ7W.js +2 -0
  110. package/x/demo/chunk-DGTDNJ7W.js.map +7 -0
  111. package/x/demo/chunk-FZ5BYF63.js +15 -0
  112. package/x/demo/chunk-FZ5BYF63.js.map +7 -0
  113. package/x/demo/chunk-KWN4NNES.js +269 -0
  114. package/x/demo/chunk-KWN4NNES.js.map +7 -0
  115. package/x/demo/chunk-OJ3FPXW7.js +157 -0
  116. package/x/demo/chunk-OJ3FPXW7.js.map +7 -0
  117. package/x/demo/chunk-PSLUOGTZ.js +393 -0
  118. package/x/demo/chunk-PSLUOGTZ.js.map +7 -0
  119. package/x/demo/chunk-VLCVEIFU.js +327 -0
  120. package/x/demo/chunk-VLCVEIFU.js.map +7 -0
  121. package/x/demo/chunk-ZWCPT5FR.js +2 -0
  122. package/x/demo/chunk-ZWCPT5FR.js.map +7 -0
  123. package/x/demo/demo.bundle.js +94 -40
  124. package/x/demo/demo.bundle.js.map +1 -1
  125. package/x/demo/demo.bundle.min.js +7340 -90
  126. package/x/demo/demo.bundle.min.js.map +4 -4
  127. package/x/demo/demo.css +244 -14
  128. package/x/demo/routines/export-test.d.ts +2 -0
  129. package/x/demo/routines/export-test.js +10 -0
  130. package/x/demo/routines/export-test.js.map +1 -0
  131. package/x/demo/routines/filmstrip-test.d.ts +1 -1
  132. package/x/demo/routines/filmstrip-test.js +20 -17
  133. package/x/demo/routines/filmstrip-test.js.map +1 -1
  134. package/x/demo/routines/load-video.d.ts +1 -1
  135. package/x/demo/routines/load-video.js +1 -2
  136. package/x/demo/routines/load-video.js.map +1 -1
  137. package/x/demo/routines/playback-test.d.ts +2 -0
  138. package/x/demo/routines/playback-test.js +51 -0
  139. package/x/demo/routines/playback-test.js.map +1 -0
  140. package/x/demo/routines/timeline-setup.d.ts +6 -0
  141. package/x/demo/routines/timeline-setup.js +32 -0
  142. package/x/demo/routines/timeline-setup.js.map +1 -0
  143. package/x/demo/routines/transcode-test.js +15 -5
  144. package/x/demo/routines/transcode-test.js.map +1 -1
  145. package/x/demo/routines/transitions-test.js +2 -2
  146. package/x/demo/routines/transitions-test.js.map +1 -1
  147. package/x/demo/routines/waveform-test.d.ts +2 -1
  148. package/x/demo/routines/waveform-test.js +29 -8
  149. package/x/demo/routines/waveform-test.js.map +1 -1
  150. package/x/demo/webworkerAll-JENRT6BT.js +2 -0
  151. package/x/demo/webworkerAll-JENRT6BT.js.map +7 -0
  152. package/x/driver/driver-worker.d.ts +1 -0
  153. package/x/driver/driver-worker.js +6 -0
  154. package/x/driver/driver-worker.js.map +1 -0
  155. package/x/driver/driver.d.ts +25 -8
  156. package/x/driver/driver.js +43 -39
  157. package/x/driver/driver.js.map +1 -1
  158. package/x/driver/driver.test.js +1 -1
  159. package/x/driver/driver.test.js.map +1 -1
  160. package/x/driver/driver.worker.bundle.min.js +117 -3506
  161. package/x/driver/driver.worker.bundle.min.js.map +4 -4
  162. package/x/driver/fns/host.d.ts +3 -2
  163. package/x/driver/fns/schematic.d.ts +25 -4
  164. package/x/driver/fns/work.d.ts +4 -4
  165. package/x/driver/fns/work.js +55 -155
  166. package/x/driver/fns/work.js.map +1 -1
  167. package/x/driver/parts/compositor.d.ts +39 -0
  168. package/x/driver/parts/compositor.js +261 -0
  169. package/x/driver/parts/compositor.js.map +1 -0
  170. package/x/driver/parts/machina.d.ts +0 -20
  171. package/x/driver/parts/machina.js +6 -10
  172. package/x/driver/parts/machina.js.map +1 -1
  173. package/x/driver/utils/find-pixi-filter.d.ts +5 -0
  174. package/x/driver/utils/find-pixi-filter.js +13 -0
  175. package/x/driver/utils/find-pixi-filter.js.map +1 -0
  176. package/x/features/speech/transcribe/parts/prep-audio.d.ts +1 -1
  177. package/x/features/speech/transcribe/worker.bundle.min.js +899 -899
  178. package/x/features/speech/transcribe/worker.bundle.min.js.map +4 -4
  179. package/x/index.d.ts +1 -0
  180. package/x/index.html +347 -38
  181. package/x/index.html.js +103 -24
  182. package/x/index.html.js.map +1 -1
  183. package/x/index.js +1 -0
  184. package/x/index.js.map +1 -1
  185. package/x/tests.bundle.js +8 -0
  186. package/x/tests.bundle.js.map +1 -0
  187. package/x/tests.bundle.min.js +7374 -0
  188. package/x/tests.bundle.min.js.map +7 -0
  189. package/x/tests.html +316 -0
  190. package/x/tests.html.d.ts +2 -0
  191. package/x/tests.html.js +22 -0
  192. package/x/tests.html.js.map +1 -0
  193. package/x/timeline/index.d.ts +7 -1
  194. package/x/timeline/index.js +7 -1
  195. package/x/timeline/index.js.map +1 -1
  196. package/x/timeline/parts/animations.d.ts +105 -0
  197. package/x/timeline/parts/animations.js +28 -0
  198. package/x/timeline/parts/animations.js.map +1 -0
  199. package/x/timeline/parts/filmstrip.d.ts +4 -3
  200. package/x/timeline/parts/filmstrip.js +29 -10
  201. package/x/timeline/parts/filmstrip.js.map +1 -1
  202. package/x/timeline/parts/filters.d.ts +108 -0
  203. package/x/timeline/parts/filters.js +340 -0
  204. package/x/timeline/parts/filters.js.map +1 -0
  205. package/x/timeline/parts/item.d.ts +56 -4
  206. package/x/timeline/parts/item.js +5 -1
  207. package/x/timeline/parts/item.js.map +1 -1
  208. package/x/timeline/parts/media.d.ts +2 -0
  209. package/x/timeline/parts/media.js +11 -2
  210. package/x/timeline/parts/media.js.map +1 -1
  211. package/x/timeline/parts/resource-pool.d.ts +3 -0
  212. package/x/timeline/parts/resource-pool.js +7 -4
  213. package/x/timeline/parts/resource-pool.js.map +1 -1
  214. package/x/timeline/parts/resource.d.ts +3 -0
  215. package/x/timeline/parts/waveform/parts/collect.d.ts +11 -0
  216. package/x/timeline/parts/waveform/parts/collect.js +56 -0
  217. package/x/timeline/parts/waveform/parts/collect.js.map +1 -0
  218. package/x/timeline/parts/waveform/parts/render.d.ts +5 -0
  219. package/x/timeline/parts/waveform/parts/render.js +29 -0
  220. package/x/timeline/parts/waveform/parts/render.js.map +1 -0
  221. package/x/timeline/parts/waveform/parts/types.d.ts +21 -0
  222. package/x/timeline/parts/waveform/parts/types.js.map +1 -0
  223. package/x/timeline/parts/waveform/waveform.d.ts +19 -0
  224. package/x/timeline/parts/waveform/waveform.js +133 -0
  225. package/x/timeline/parts/waveform/waveform.js.map +1 -0
  226. package/x/timeline/renderers/export/parts/audio-gain.d.ts +1 -0
  227. package/x/timeline/renderers/export/parts/audio-gain.js +13 -0
  228. package/x/timeline/renderers/export/parts/audio-gain.js.map +1 -0
  229. package/x/timeline/renderers/export/parts/audio-mix.d.ts +21 -0
  230. package/x/timeline/renderers/export/parts/audio-mix.js +89 -0
  231. package/x/timeline/renderers/export/parts/audio-mix.js.map +1 -0
  232. package/x/timeline/renderers/export/parts/cursor.d.ts +18 -0
  233. package/x/timeline/renderers/export/parts/cursor.js +99 -0
  234. package/x/timeline/renderers/export/parts/cursor.js.map +1 -0
  235. package/x/timeline/renderers/export/parts/produce-audio.d.ts +6 -0
  236. package/x/timeline/renderers/export/parts/produce-audio.js +41 -0
  237. package/x/timeline/renderers/export/parts/produce-audio.js.map +1 -0
  238. package/x/timeline/renderers/export/parts/produce-video.d.ts +10 -0
  239. package/x/timeline/renderers/export/parts/produce-video.js +26 -0
  240. package/x/timeline/renderers/export/parts/produce-video.js.map +1 -0
  241. package/x/timeline/renderers/export/parts/resamplers.d.ts +12 -0
  242. package/x/timeline/renderers/export/parts/resamplers.js +29 -0
  243. package/x/timeline/renderers/export/parts/resamplers.js.map +1 -0
  244. package/x/timeline/renderers/export/produce.d.ts +13 -0
  245. package/x/timeline/renderers/export/produce.js +15 -0
  246. package/x/timeline/renderers/export/produce.js.map +1 -0
  247. package/x/timeline/renderers/parts/handy.d.ts +36 -0
  248. package/x/timeline/renderers/parts/handy.js +221 -0
  249. package/x/timeline/renderers/parts/handy.js.map +1 -0
  250. package/x/timeline/renderers/parts/samplers/audio/parts/find.d.ts +6 -0
  251. package/x/timeline/renderers/parts/samplers/audio/parts/find.js +15 -0
  252. package/x/timeline/renderers/parts/samplers/audio/parts/find.js.map +1 -0
  253. package/x/timeline/renderers/parts/samplers/audio/parts/init.d.ts +5 -0
  254. package/x/timeline/renderers/parts/samplers/audio/parts/init.js +40 -0
  255. package/x/timeline/renderers/parts/samplers/audio/parts/init.js.map +1 -0
  256. package/x/timeline/renderers/parts/samplers/audio/parts/sink.d.ts +8 -0
  257. package/x/timeline/renderers/parts/samplers/audio/parts/sink.js +24 -0
  258. package/x/timeline/renderers/parts/samplers/audio/parts/sink.js.map +1 -0
  259. package/x/timeline/renderers/parts/samplers/audio/parts/types.d.ts +14 -0
  260. package/x/timeline/renderers/parts/samplers/audio/parts/types.js +2 -0
  261. package/x/timeline/renderers/parts/samplers/audio/parts/types.js.map +1 -0
  262. package/x/timeline/renderers/parts/samplers/audio/sampler.d.ts +11 -0
  263. package/x/timeline/renderers/parts/samplers/audio/sampler.js +22 -0
  264. package/x/timeline/renderers/parts/samplers/audio/sampler.js.map +1 -0
  265. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.d.ts +5 -0
  266. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js +10 -0
  267. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js.map +1 -0
  268. package/x/timeline/renderers/parts/samplers/visual/parts/sample.d.ts +6 -0
  269. package/x/timeline/renderers/parts/samplers/visual/parts/sample.js +48 -0
  270. package/x/timeline/renderers/parts/samplers/visual/parts/sample.js.map +1 -0
  271. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.d.ts +6 -0
  272. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js +75 -0
  273. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js.map +1 -0
  274. package/x/timeline/renderers/parts/samplers/visual/parts/sink.d.ts +8 -0
  275. package/x/timeline/renderers/parts/samplers/visual/parts/sink.js +24 -0
  276. package/x/timeline/renderers/parts/samplers/visual/parts/sink.js.map +1 -0
  277. package/x/timeline/renderers/parts/samplers/visual/parts/transition.d.ts +3 -0
  278. package/x/timeline/renderers/parts/samplers/visual/parts/transition.js +18 -0
  279. package/x/timeline/renderers/parts/samplers/visual/parts/transition.js.map +1 -0
  280. package/x/timeline/renderers/parts/samplers/visual/parts/types.d.ts +8 -0
  281. package/x/timeline/renderers/parts/samplers/visual/parts/types.js +2 -0
  282. package/x/timeline/renderers/parts/samplers/visual/parts/types.js.map +1 -0
  283. package/x/timeline/renderers/parts/samplers/visual/sampler.d.ts +7 -0
  284. package/x/timeline/renderers/parts/samplers/visual/sampler.js +17 -0
  285. package/x/timeline/renderers/parts/samplers/visual/sampler.js.map +1 -0
  286. package/x/timeline/renderers/parts/schedulers.d.ts +17 -0
  287. package/x/timeline/renderers/parts/schedulers.js +64 -0
  288. package/x/timeline/renderers/parts/schedulers.js.map +1 -0
  289. package/x/timeline/renderers/player/parts/playback.d.ts +36 -0
  290. package/x/timeline/renderers/player/parts/playback.js +113 -0
  291. package/x/timeline/renderers/player/parts/playback.js.map +1 -0
  292. package/x/timeline/renderers/player/player.d.ts +25 -0
  293. package/x/timeline/renderers/player/player.js +56 -0
  294. package/x/timeline/renderers/player/player.js.map +1 -0
  295. package/x/timeline/renderers/renderers.test.d.ts +32 -0
  296. package/x/timeline/renderers/renderers.test.js +305 -0
  297. package/x/timeline/renderers/renderers.test.js.map +1 -0
  298. package/x/timeline/sugar/helpers.d.ts +56 -0
  299. package/x/timeline/sugar/helpers.js +104 -0
  300. package/x/timeline/sugar/helpers.js.map +1 -0
  301. package/x/timeline/sugar/o.d.ts +48 -14
  302. package/x/timeline/sugar/o.js +213 -54
  303. package/x/timeline/sugar/o.js.map +1 -1
  304. package/x/timeline/sugar/omni.d.ts +11 -6
  305. package/x/timeline/sugar/omni.js +28 -8
  306. package/x/timeline/sugar/omni.js.map +1 -1
  307. package/x/timeline/sugar/omni.test.d.ts +27 -0
  308. package/x/timeline/sugar/omni.test.js +128 -0
  309. package/x/timeline/sugar/omni.test.js.map +1 -0
  310. package/x/timeline/types.d.ts +12 -2
  311. package/x/timeline/utils/anim.d.ts +5 -0
  312. package/x/timeline/utils/anim.js +44 -0
  313. package/x/timeline/utils/anim.js.map +1 -0
  314. package/x/timeline/utils/checksum.d.ts +3 -2
  315. package/x/timeline/utils/checksum.js.map +1 -1
  316. package/x/timeline/utils/datafile.d.ts +5 -3
  317. package/x/timeline/utils/datafile.js +18 -5
  318. package/x/timeline/utils/datafile.js.map +1 -1
  319. package/x/timeline/utils/dummy-data.d.ts +1 -2
  320. package/x/timeline/utils/dummy-data.js +4 -2
  321. package/x/timeline/utils/dummy-data.js.map +1 -1
  322. package/x/timeline/utils/matrix.d.ts +9 -0
  323. package/x/timeline/utils/matrix.js +10 -0
  324. package/x/timeline/utils/matrix.js.map +1 -1
  325. package/x/timeline/utils/terps.d.ts +11 -0
  326. package/x/timeline/utils/terps.js +57 -0
  327. package/x/timeline/utils/terps.js.map +1 -0
  328. package/x/units/fps.d.ts +6 -0
  329. package/x/units/fps.js +2 -0
  330. package/x/units/fps.js.map +1 -0
  331. package/x/units/ms.d.ts +6 -0
  332. package/x/units/ms.js +2 -0
  333. package/x/units/ms.js.map +1 -0
  334. package/x/units/seconds.d.ts +6 -0
  335. package/x/units/seconds.js +2 -0
  336. package/x/units/seconds.js.map +1 -0
  337. package/x/webworkerAll-RLCTMSDD.js +2 -0
  338. package/x/webworkerAll-RLCTMSDD.js.map +7 -0
  339. package/s/tests.test.ts +0 -8
  340. package/s/timeline/parts/compositor/export.ts +0 -77
  341. package/s/timeline/parts/compositor/parts/html-tree.ts +0 -37
  342. package/s/timeline/parts/compositor/parts/schedulers.ts +0 -85
  343. package/s/timeline/parts/compositor/parts/tree-builder.ts +0 -184
  344. package/s/timeline/parts/compositor/parts/webcodecs-tree.ts +0 -30
  345. package/s/timeline/parts/compositor/playback.ts +0 -81
  346. package/s/timeline/parts/compositor/samplers/html.ts +0 -115
  347. package/s/timeline/parts/compositor/samplers/webcodecs.ts +0 -60
  348. package/s/timeline/parts/waveform.ts +0 -62
  349. package/s/timeline/sugar/builders.ts +0 -102
  350. package/s/timeline/sugar/omni-test.ts +0 -38
  351. package/s/timeline/timeline.ts +0 -22
  352. package/s/timeline/utils/audio-stream.ts +0 -15
  353. package/s/timeline/utils/video-cursor.ts +0 -40
  354. package/s/tools/common/loader.ts +0 -26
  355. package/s/tools/common/transformer-pipeline.ts +0 -26
  356. package/s/tools/speech-recognition/common/model.ts +0 -26
  357. package/s/tools/speech-recognition/whisper/fns/host.ts +0 -25
  358. package/s/tools/speech-recognition/whisper/fns/schematic.ts +0 -23
  359. package/s/tools/speech-recognition/whisper/fns/work.ts +0 -91
  360. package/s/tools/speech-recognition/whisper/parts/types.ts +0 -38
  361. package/s/tools/speech-recognition/whisper/parts/worker.bundle.ts +0 -7
  362. package/s/tools/speech-recognition/whisper/tool.ts +0 -70
  363. package/x/tests.test.js +0 -6
  364. package/x/tests.test.js.map +0 -1
  365. package/x/timeline/parts/compositor/export.d.ts +0 -9
  366. package/x/timeline/parts/compositor/export.js +0 -64
  367. package/x/timeline/parts/compositor/export.js.map +0 -1
  368. package/x/timeline/parts/compositor/parts/html-tree.d.ts +0 -3
  369. package/x/timeline/parts/compositor/parts/html-tree.js +0 -40
  370. package/x/timeline/parts/compositor/parts/html-tree.js.map +0 -1
  371. package/x/timeline/parts/compositor/parts/schedulers.d.ts +0 -15
  372. package/x/timeline/parts/compositor/parts/schedulers.js +0 -64
  373. package/x/timeline/parts/compositor/parts/schedulers.js.map +0 -1
  374. package/x/timeline/parts/compositor/parts/tree-builder.d.ts +0 -37
  375. package/x/timeline/parts/compositor/parts/tree-builder.js +0 -147
  376. package/x/timeline/parts/compositor/parts/tree-builder.js.map +0 -1
  377. package/x/timeline/parts/compositor/parts/webcodecs-tree.d.ts +0 -3
  378. package/x/timeline/parts/compositor/parts/webcodecs-tree.js +0 -28
  379. package/x/timeline/parts/compositor/parts/webcodecs-tree.js.map +0 -1
  380. package/x/timeline/parts/compositor/playback.d.ts +0 -19
  381. package/x/timeline/parts/compositor/playback.js +0 -71
  382. package/x/timeline/parts/compositor/playback.js.map +0 -1
  383. package/x/timeline/parts/compositor/samplers/html.d.ts +0 -3
  384. package/x/timeline/parts/compositor/samplers/html.js +0 -106
  385. package/x/timeline/parts/compositor/samplers/html.js.map +0 -1
  386. package/x/timeline/parts/compositor/samplers/webcodecs.d.ts +0 -2
  387. package/x/timeline/parts/compositor/samplers/webcodecs.js +0 -55
  388. package/x/timeline/parts/compositor/samplers/webcodecs.js.map +0 -1
  389. package/x/timeline/parts/waveform.d.ts +0 -8
  390. package/x/timeline/parts/waveform.js +0 -51
  391. package/x/timeline/parts/waveform.js.map +0 -1
  392. package/x/timeline/sugar/builders.d.ts +0 -96
  393. package/x/timeline/sugar/builders.js +0 -108
  394. package/x/timeline/sugar/builders.js.map +0 -1
  395. package/x/timeline/sugar/omni-test.d.ts +0 -1
  396. package/x/timeline/sugar/omni-test.js +0 -22
  397. package/x/timeline/sugar/omni-test.js.map +0 -1
  398. package/x/timeline/timeline.d.ts +0 -9
  399. package/x/timeline/timeline.js +0 -22
  400. package/x/timeline/timeline.js.map +0 -1
  401. package/x/timeline/utils/audio-stream.d.ts +0 -6
  402. package/x/timeline/utils/audio-stream.js +0 -17
  403. package/x/timeline/utils/audio-stream.js.map +0 -1
  404. package/x/timeline/utils/video-cursor.d.ts +0 -10
  405. package/x/timeline/utils/video-cursor.js +0 -36
  406. package/x/timeline/utils/video-cursor.js.map +0 -1
  407. package/x/tools/common/loader.d.ts +0 -19
  408. package/x/tools/common/loader.js +0 -18
  409. package/x/tools/common/loader.js.map +0 -1
  410. package/x/tools/common/transformer-pipeline.d.ts +0 -8
  411. package/x/tools/common/transformer-pipeline.js +0 -24
  412. package/x/tools/common/transformer-pipeline.js.map +0 -1
  413. package/x/tools/speech-recognition/common/model.d.ts +0 -14
  414. package/x/tools/speech-recognition/common/model.js +0 -16
  415. package/x/tools/speech-recognition/common/model.js.map +0 -1
  416. package/x/tools/speech-recognition/whisper/fns/host.d.ts +0 -13
  417. package/x/tools/speech-recognition/whisper/fns/host.js +0 -19
  418. package/x/tools/speech-recognition/whisper/fns/host.js.map +0 -1
  419. package/x/tools/speech-recognition/whisper/fns/schematic.d.ts +0 -19
  420. package/x/tools/speech-recognition/whisper/fns/schematic.js +0 -2
  421. package/x/tools/speech-recognition/whisper/fns/schematic.js.map +0 -1
  422. package/x/tools/speech-recognition/whisper/fns/work.d.ts +0 -12
  423. package/x/tools/speech-recognition/whisper/fns/work.js +0 -74
  424. package/x/tools/speech-recognition/whisper/fns/work.js.map +0 -1
  425. package/x/tools/speech-recognition/whisper/parts/types.d.ts +0 -31
  426. package/x/tools/speech-recognition/whisper/parts/types.js.map +0 -1
  427. package/x/tools/speech-recognition/whisper/parts/worker.bundle.d.ts +0 -1
  428. package/x/tools/speech-recognition/whisper/parts/worker.bundle.js +0 -4
  429. package/x/tools/speech-recognition/whisper/parts/worker.bundle.js.map +0 -1
  430. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js +0 -8
  431. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js.map +0 -7
  432. package/x/tools/speech-recognition/whisper/tool.d.ts +0 -12
  433. package/x/tools/speech-recognition/whisper/tool.js +0 -63
  434. package/x/tools/speech-recognition/whisper/tool.js.map +0 -1
  435. /package/x/{tests.test.d.ts → tests.bundle.d.ts} +0 -0
  436. /package/x/{tools/speech-recognition/whisper → timeline/parts/waveform}/parts/types.js +0 -0
@@ -1,4 +1,13 @@
1
- export type Interpolation = "linear" | "catmullRom"
1
+ import {Item, VisualAnimatableItem} from "./parts/item.js"
2
+
3
+ export type Interpolation =
4
+ | "linear"
5
+ | "ease"
6
+ | "easeIn"
7
+ | "easeOut"
8
+ | "bounce"
9
+ | "catmullRom"
10
+
2
11
  export type Keyframe<Value = number> = [time: number, value: Value]
3
12
  export type Keyframes<Value = number> = Keyframe<Value>[]
4
13
  export type Vec2 = [x: number, y: number]
@@ -14,16 +23,32 @@ export type Anim<T> = {
14
23
  track: T
15
24
  }
16
25
 
17
- export type Animations = Anim<TrackTransform>
18
-
19
26
  export type TrackTransform = {
20
27
  position: TrackVec2
21
28
  scale: TrackVec2
22
29
  rotation: Keyframes
23
30
  }
24
31
 
32
+ export type ScalarAnimation = Anim<Keyframes>
33
+ export type Vec2Animation = Anim<TrackVec2>
34
+ export type TransformAnimation = Anim<TrackTransform>
35
+ export type VisualAnimations = {
36
+ opacity?: ScalarAnimation
37
+ }
38
+ export interface AnimateAction {
39
+ <T extends VisualAnimatableItem>(
40
+ item: T,
41
+ terp: Interpolation,
42
+ track: Keyframes
43
+ ): T
44
+ make(terp: Interpolation, track: Keyframes): Item.Animation
45
+ }
46
+
47
+ // export type Animations = Anim<TrackTransform>
48
+
25
49
  export type TransformOptions = {
26
50
  position?: Vec2
27
51
  scale?: Vec2
28
52
  rotation?: number
29
53
  }
54
+
@@ -0,0 +1,71 @@
1
+
2
+ import {resolveTerp} from "./terps.js"
3
+ import {Item, Kind} from "../parts/item.js"
4
+ import {Anim, Keyframes, ScalarAnimation, TrackTransform, Transform} from "../types.js"
5
+
6
+ const resolveScalar =(
7
+ time: number,
8
+ keys: Keyframes,
9
+ terp: Anim<Keyframes>["terp"],
10
+ ): number => {
11
+ if (keys.length === 0)
12
+ return 0
13
+
14
+ if (keys.length === 1)
15
+ return keys[0][1]
16
+
17
+ const sorted = [...keys].sort((a, b) => a[0] - b[0])
18
+
19
+ if (time <= sorted[0][0])
20
+ return sorted[0][1]
21
+
22
+ const last = sorted[sorted.length - 1]
23
+ if (time >= last[0])
24
+ return last[1]
25
+
26
+ let index = 0
27
+ for (let i = 0; i < sorted.length - 1; i++) {
28
+ const a = sorted[i]
29
+ const b = sorted[i + 1]
30
+ if (time >= a[0] && time <= b[0]) {
31
+ index = i
32
+ break
33
+ }
34
+ }
35
+
36
+ const [t2] = sorted[index]
37
+ const [t3] = sorted[index + 1]
38
+ const span = t3 - t2
39
+ const x = span === 0 ? 0 : (time - t2) / span
40
+
41
+ return resolveTerp(terp, x, sorted, index)
42
+ }
43
+
44
+ export const resolveTransformAnimation =(
45
+ time: number,
46
+ anim: Anim<TrackTransform>,
47
+ ): Transform => ([
48
+ [
49
+ resolveScalar(time, anim.track.position.x, anim.terp),
50
+ resolveScalar(time, anim.track.position.y, anim.terp),
51
+ ],
52
+ [
53
+ resolveScalar(time, anim.track.scale.x, anim.terp),
54
+ resolveScalar(time, anim.track.scale.y, anim.terp),
55
+ ],
56
+ resolveScalar(time, anim.track.rotation, anim.terp),
57
+ ])
58
+
59
+ export const resolveScalarAnimation =(
60
+ time: number,
61
+ anim: ScalarAnimation,
62
+ ): number => resolveScalar(time, anim.track, anim.terp)
63
+
64
+ export const resolveSpatialTransform =(
65
+ spatial: Item.Spatial | Item.AnimatedSpatial,
66
+ time: number,
67
+ ): Transform =>
68
+ spatial.kind === Kind.AnimatedSpatial
69
+ ? resolveTransformAnimation(time, spatial.anim)
70
+ : spatial.transform
71
+
@@ -1,11 +1,13 @@
1
1
 
2
2
  import {Hex, Thumbprint} from "@e280/stz"
3
3
 
4
+ import {Hash} from "../parts/basics.js"
5
+
4
6
  export class Checksum {
5
7
  constructor(
6
8
  public data: Uint8Array,
7
9
  public bytes: Uint8Array,
8
- public hash: string,
10
+ public hash: Hash,
9
11
  public nickname: string,
10
12
  ) {}
11
13
 
@@ -3,19 +3,30 @@ import {Checksum} from "./checksum.js"
3
3
 
4
4
  export class Datafile {
5
5
  constructor(
6
+ public url: string,
6
7
  public bytes: Uint8Array,
8
+ public blob: Blob,
7
9
  public filename: string,
8
10
  public checksum: Checksum,
9
11
  ) {}
10
12
 
11
- static async make(bytes: Uint8Array, name?: string) {
13
+ static async make(file: Blob, name?: string) {
14
+ const buffer = await file.arrayBuffer()
15
+ const bytes = new Uint8Array(buffer)
12
16
  const checksum = await Checksum.make(bytes)
13
17
  const filename = name ?? checksum.nickname
14
- return new this(bytes, filename, checksum)
18
+ const url = URL.createObjectURL(file)
19
+ return new this(url, bytes, file, filename, checksum)
15
20
  }
16
21
 
17
- static async load(_path: string): Promise<Datafile> {
18
- throw new Error("TODO implement")
22
+ static async load(path: string) {
23
+ // const file = await fetch(path)
24
+ // const buffer = await file.arrayBuffer()
25
+ // const bytes = new Uint8Array(buffer)
26
+ // const filename = file?.headers.get('Content-Disposition')?.split('filename=')[1] ?? "file"
27
+ // console.log(filename)
28
+ // const checksum = await Checksum.make(bytes)
29
+ // return new this(path, bytes, filename, checksum)
19
30
  }
20
31
  }
21
32
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  import {Datafile} from "./datafile.js"
3
3
 
4
- export const dummyData = () => Datafile.make(
5
- new Uint8Array([0xDE, 0xAD, 0xBE, 0xEF])
6
- )
4
+ // export const dummyData = () => Datafile.make(
5
+ // new Uint8Array([0xDE, 0xAD, 0xBE, 0xEF])
6
+ // )
7
7
 
@@ -29,5 +29,26 @@ export const mul6 = (local: Mat6, parent: Mat6): Mat6 => {
29
29
  ]
30
30
  }
31
31
 
32
+ export const mat6ToTransform = (mat: Mat6Obj): Transform => {
33
+ const scaleX = Math.hypot(mat.a, mat.b)
34
+ const scaleY = Math.hypot(mat.c, mat.d)
35
+ const rotation = Math.atan2(mat.b, mat.a) * (180 / Math.PI)
36
+
37
+ return [
38
+ [mat.tx, mat.ty],
39
+ [scaleX, scaleY],
40
+ rotation,
41
+ ]
42
+ }
43
+
44
+ export interface Mat6Obj {
45
+ a: number
46
+ b: number
47
+ c: number
48
+ d: number
49
+ tx: number
50
+ ty: number
51
+ }
52
+
32
53
  export const I6: Mat6 = [1, 0, 0, 1, 0, 0]
33
54
  export type Mat6 = [a: number, b: number, c: number, d: number, tx: number, ty: number]
@@ -0,0 +1,81 @@
1
+
2
+ import {Interpolation, Keyframes} from "../types.js"
3
+
4
+ type EasingFn = (x: number, a: number, b: number) => number
5
+
6
+ class TerpKeys {
7
+ constructor(
8
+ private keys: Keyframes,
9
+ private index: number,
10
+ ) {}
11
+
12
+ near(offset: number): number {
13
+ const next = this.keys[Math.max(0, Math.min(this.keys.length - 1, this.index + offset))]
14
+ return next[1]
15
+ }
16
+ }
17
+
18
+ type TerpFn = (x: number, keys: TerpKeys) => number
19
+
20
+ const asTerp = (fn: TerpFn): TerpFn => fn
21
+
22
+ const fromEasingFn = (easing: EasingFn): TerpFn =>
23
+ asTerp((x, keys) => easing(x, keys.near(0), keys.near(1)))
24
+
25
+ const lerp = (x: number, a: number, b: number) => a + (b - a) * x
26
+
27
+ export const terps: Record<Interpolation, TerpFn> = {
28
+ linear: fromEasingFn(lerp),
29
+
30
+ ease: fromEasingFn((x, a, b) => {
31
+ const eased = x < 0.5
32
+ ? 4 * x * x * x
33
+ : 1 - Math.pow(-2 * x + 2, 3) / 2
34
+ return lerp(eased, a, b)
35
+ }),
36
+
37
+ easeIn: fromEasingFn((x, a, b) => lerp(x * x * x, a, b)),
38
+
39
+ easeOut: fromEasingFn((x, a, b) => lerp(1 - Math.pow(1 - x, 3), a, b)),
40
+
41
+ bounce: fromEasingFn((x, a, b) => {
42
+ const n1 = 7.5625
43
+ const d1 = 2.75
44
+ const eased = x < 1 / d1
45
+ ? n1 * x * x
46
+ : x < 2 / d1
47
+ ? n1 * (x - 1.5 / d1) ** 2 + 0.75
48
+ : x < 2.5 / d1
49
+ ? n1 * (x - 2.25 / d1) ** 2 + 0.9375
50
+ : n1 * (x - 2.625 / d1) ** 2 + 0.984375
51
+ return lerp(eased, a, b)
52
+ }),
53
+
54
+ catmullRom: asTerp((x, keys) => {
55
+ const p1 = keys.near(-1)
56
+ const p2 = keys.near(0)
57
+ const p3 = keys.near(1)
58
+ const p4 = keys.near(2)
59
+ const x2 = x * x
60
+ const x3 = x2 * x
61
+ return 0.5 * (
62
+ (2 * p2) +
63
+ (-p1 + p3) * x +
64
+ (2 * p1 - 5 * p2 + 4 * p3 - p4) * x2 +
65
+ (-p1 + 3 * p2 - 3 * p3 + p4) * x3
66
+ )
67
+ }),
68
+ }
69
+
70
+ export const resolveTerp =(
71
+ terp: Interpolation,
72
+ x: number,
73
+ keys: Keyframes,
74
+ index: number,
75
+ ): number => {
76
+ const fn = terps[terp]
77
+ if (!fn)
78
+ throw new Error(`unknown terp "${terp}"`)
79
+
80
+ return fn(x, new TerpKeys(keys, index))
81
+ }
package/s/units/fps.ts ADDED
@@ -0,0 +1,8 @@
1
+ declare const FpsBrand: unique symbol
2
+
3
+ export type Fps = number & {
4
+ readonly [FpsBrand]: "fps"
5
+ }
6
+
7
+ export const fps = (value: number): Fps =>
8
+ value as Fps
package/s/units/ms.ts ADDED
@@ -0,0 +1,8 @@
1
+ declare const MsBrand: unique symbol
2
+
3
+ export type Ms = number & {
4
+ readonly [MsBrand]: "ms"
5
+ }
6
+
7
+ export const ms = (value: number): Ms =>
8
+ value as Ms
@@ -0,0 +1,8 @@
1
+ declare const SecondsBrand: unique symbol
2
+
3
+ export type Seconds = number & {
4
+ readonly [SecondsBrand]: "s"
5
+ }
6
+
7
+ export const seconds = (value: number): Seconds =>
8
+ value as Seconds
@@ -0,0 +1,2 @@
1
+ import{a}from"./chunk-KCMVLWBS.js";import"./chunk-VCUJJYRJ.js";import"./chunk-XNIZ4L5W.js";export{a as WebGLRenderer};
2
+ //# sourceMappingURL=WebGLRenderer-4CHIZDHY.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a}from"./chunk-IAWJKNX5.js";import"./chunk-23FOBGX6.js";import"./chunk-VCUJJYRJ.js";import"./chunk-XNIZ4L5W.js";export{a as WebGPURenderer};
2
+ //# sourceMappingURL=WebGPURenderer-O6WXU2QR.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as i,b as o,c as m,d as p,e}from"./chunk-ZLGNQFUI.js";import"./chunk-MR32SQ27.js";import"./chunk-73XOWA4F.js";import"./chunk-23FOBGX6.js";import{P as t,e as r}from"./chunk-XNIZ4L5W.js";r.add(i);r.mixin(t,o);r.add(m);r.mixin(t,p);r.add(e);
2
+ //# sourceMappingURL=browserAll-WNIOTNNP.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../node_modules/pixi.js/src/accessibility/init.ts", "../node_modules/pixi.js/src/events/init.ts", "../node_modules/pixi.js/src/dom/init.ts"],
4
+ "sourcesContent": ["import { extensions } from '../extensions/Extensions';\nimport { Container } from '../scene/container/Container';\nimport { AccessibilitySystem } from './AccessibilitySystem';\nimport { accessibilityTarget } from './accessibilityTarget';\n\nextensions.add(AccessibilitySystem);\nextensions.mixin(Container, accessibilityTarget);\n", "import { extensions } from '../extensions/Extensions';\nimport { Container } from '../scene/container/Container';\nimport { EventSystem } from './EventSystem';\nimport { FederatedContainer } from './FederatedEventTarget';\n\nextensions.add(EventSystem);\nextensions.mixin(Container, FederatedContainer);\n", "import { extensions } from '../extensions/Extensions';\nimport { DOMPipe } from './DOMPipe';\n\nexport * from './index';\n\nextensions.add(DOMPipe);\n"],
5
+ "mappings": "kMAKAA,EAAW,IAAIC,CAAmB,EAClCD,EAAW,MAAME,EAAWC,CAAmB,ECD/CC,EAAW,IAAIC,CAAW,EAC1BD,EAAW,MAAME,EAAWC,CAAkB,ECD9CC,EAAW,IAAIC,CAAO",
6
+ "names": ["extensions", "AccessibilitySystem", "Container", "accessibilityTarget", "extensions", "EventSystem", "Container", "FederatedContainer", "extensions", "DOMPipe"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{D as a,J as f,T as v,X as x,q as p}from"./chunk-XNIZ4L5W.js";var h={};function G(c,t,r){let e=2166136261;for(let o=0;o<t;o++)e^=c[o].uid,e=Math.imul(e,16777619),e>>>=0;return h[e]||d(c,t,e,r)}function d(c,t,r,e){let o={},s=0;for(let n=0;n<e;n++){let i=n<t?c[n]:f.EMPTY.source;o[s++]=i.source,o[s++]=i.style}let l=new x(o);return h[r]=l,l}var u=class{constructor(t){this._canvasPool=Object.create(null),this.canvasOptions=t||{},this.enableFullScreen=!1}_createCanvasAndContext(t,r){let e=v.get().createCanvas();e.width=t,e.height=r;let o=e.getContext("2d");return{canvas:e,context:o}}getOptimalCanvasAndContext(t,r,e=1){t=Math.ceil(t*e-1e-6),r=Math.ceil(r*e-1e-6),t=a(t),r=a(r);let o=(t<<17)+(r<<1);this._canvasPool[o]||(this._canvasPool[o]=[]);let s=this._canvasPool[o].pop();return s||(s=this._createCanvasAndContext(t,r)),s}returnCanvasAndContext(t){let r=t.canvas,{width:e,height:o}=r,s=(e<<17)+(o<<1);t.context.resetTransform(),t.context.clearRect(0,0,e,o),this._canvasPool[s].push(t)}clear(){this._canvasPool={}}},P=new u;p.register(P);export{G as a,P as b};
2
+ //# sourceMappingURL=chunk-23FOBGX6.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../node_modules/pixi.js/src/rendering/batcher/gpu/getTextureBatchBindGroup.ts", "../node_modules/pixi.js/src/rendering/renderers/shared/texture/CanvasPool.ts"],
4
+ "sourcesContent": ["import { BindGroup } from '../../renderers/gpu/shader/BindGroup';\nimport { Texture } from '../../renderers/shared/texture/Texture';\n\nimport type { TextureSource } from '../../renderers/shared/texture/sources/TextureSource';\n\nconst cachedGroups: Record<number, BindGroup> = {};\n\n/**\n * @param textures\n * @param size\n * @param maxTextures\n * @internal\n */\nexport function getTextureBatchBindGroup(textures: TextureSource[], size: number, maxTextures: number)\n{\n let uid = 2166136261; // FNV-1a 32-bit offset basis\n\n for (let i = 0; i < size; i++)\n {\n uid ^= textures[i].uid;\n uid = Math.imul(uid, 16777619);\n uid >>>= 0;\n }\n\n return cachedGroups[uid] || generateTextureBatchBindGroup(textures, size, uid, maxTextures);\n}\n\nfunction generateTextureBatchBindGroup(textures: TextureSource[], size: number, key: number, maxTextures: number): BindGroup\n{\n const bindGroupResources: Record<string, any> = {};\n\n let bindIndex = 0;\n\n for (let i = 0; i < maxTextures; i++)\n {\n const texture = i < size ? textures[i] : Texture.EMPTY.source;\n\n bindGroupResources[bindIndex++] = texture.source;\n bindGroupResources[bindIndex++] = texture.style;\n }\n\n // pad out with empty textures\n const bindGroup = new BindGroup(bindGroupResources);\n\n cachedGroups[key] = bindGroup;\n\n return bindGroup;\n}\n\n", "import { DOMAdapter } from '../../../../environment/adapter';\nimport { nextPow2 } from '../../../../maths/misc/pow2';\nimport { GlobalResourceRegistry } from '../../../../utils/pool/GlobalResourceRegistry';\n\nimport type { ICanvas, ICanvasRenderingContext2DSettings } from '../../../../environment/canvas/ICanvas';\nimport type { ICanvasRenderingContext2D } from '../../../../environment/canvas/ICanvasRenderingContext2D';\n\n/**\n * A utility type that represents a canvas and its rendering context.\n * @category rendering\n * @internal\n */\nexport interface CanvasAndContext\n{\n /** The canvas element. */\n canvas: ICanvas;\n /** The rendering context of the canvas. */\n context: ICanvasRenderingContext2D;\n}\n\n/**\n * CanvasPool is a utility class that manages a pool of reusable canvas elements\n * @category rendering\n * @internal\n */\nexport class CanvasPoolClass\n{\n public canvasOptions: ICanvasRenderingContext2DSettings;\n\n /**\n * Allow renderTextures of the same size as screen, not just pow2\n *\n * Automatically sets to true after `setScreenSize`\n * @default false\n */\n public enableFullScreen: boolean;\n private _canvasPool: {[x in string | number]: CanvasAndContext[]};\n\n constructor(canvasOptions?: ICanvasRenderingContext2DSettings)\n {\n this._canvasPool = Object.create(null);\n this.canvasOptions = canvasOptions || {};\n this.enableFullScreen = false;\n }\n\n /**\n * Creates texture with params that were specified in pool constructor.\n * @param pixelWidth - Width of texture in pixels.\n * @param pixelHeight - Height of texture in pixels.\n */\n private _createCanvasAndContext(pixelWidth: number, pixelHeight: number): CanvasAndContext\n {\n const canvas = DOMAdapter.get().createCanvas();\n\n canvas.width = pixelWidth;\n canvas.height = pixelHeight;\n\n const context = canvas.getContext('2d');\n\n return { canvas, context };\n }\n\n /**\n * Gets a Power-of-Two render texture or fullScreen texture\n * @param minWidth - The minimum width of the render texture.\n * @param minHeight - The minimum height of the render texture.\n * @param resolution - The resolution of the render texture.\n * @returns The new render texture.\n */\n public getOptimalCanvasAndContext(minWidth: number, minHeight: number, resolution = 1): CanvasAndContext\n {\n minWidth = Math.ceil((minWidth * resolution) - 1e-6);\n minHeight = Math.ceil((minHeight * resolution) - 1e-6);\n minWidth = nextPow2(minWidth);\n minHeight = nextPow2(minHeight);\n\n const key = (minWidth << 17) + (minHeight << 1);\n\n if (!this._canvasPool[key])\n {\n this._canvasPool[key] = [];\n }\n\n let canvasAndContext = this._canvasPool[key].pop();\n\n if (!canvasAndContext)\n {\n canvasAndContext = this._createCanvasAndContext(minWidth, minHeight);\n }\n\n return canvasAndContext;\n }\n\n /**\n * Place a render texture back into the pool.\n * @param canvasAndContext\n */\n public returnCanvasAndContext(canvasAndContext: CanvasAndContext): void\n {\n const canvas = canvasAndContext.canvas;\n const { width, height } = canvas;\n\n const key = (width << 17) + (height << 1);\n\n canvasAndContext.context.resetTransform();\n canvasAndContext.context.clearRect(0, 0, width, height);\n\n this._canvasPool[key].push(canvasAndContext);\n }\n\n public clear(): void\n {\n this._canvasPool = {};\n }\n}\n\n/**\n * CanvasPool is a utility class that manages a pool of reusable canvas elements\n * @category rendering\n * @internal\n */\nexport const CanvasPool = new CanvasPoolClass();\nGlobalResourceRegistry.register(CanvasPool);\n"],
5
+ "mappings": "oEAKA,IAAMA,EAA0C,CAAA,EAQhC,SAAAC,EAAyBC,EAA2BC,EAAcC,EAClF,CACI,IAAIC,EAAM,WAEV,QAASC,EAAI,EAAGA,EAAIH,EAAMG,IAEfD,GAAAH,EAASI,CAAC,EAAE,IACbD,EAAA,KAAK,KAAKA,EAAK,QAAQ,EACpBA,KAAA,EAGb,OAAOL,EAAaK,CAAG,GAAKE,EAA8BL,EAAUC,EAAME,EAAKD,CAAW,CAC9F,CAEA,SAASG,EAA8BL,EAA2BC,EAAcK,EAAaJ,EAC7F,CACI,IAAMK,EAA0C,CAAA,EAE5CC,EAAY,EAEhB,QAASJ,EAAI,EAAGA,EAAIF,EAAaE,IACjC,CACI,IAAMK,EAAUL,EAAIH,EAAOD,EAASI,CAAC,EAAIM,EAAQ,MAAM,OAEpCH,EAAAC,GAAW,EAAIC,EAAQ,OACvBF,EAAAC,GAAW,EAAIC,EAAQ,KAAA,CAIxC,IAAAE,EAAY,IAAIC,EAAUL,CAAkB,EAElD,OAAAT,EAAaQ,CAAG,EAAIK,EAEbA,CACX,CCtBO,IAAME,EAAN,KACP,CAYI,YAAYC,EACZ,CACS,KAAA,YAAqB,OAAA,OAAO,IAAI,EAChC,KAAA,cAAgBA,GAAiB,CAAA,EACtC,KAAK,iBAAmB,EAAA,CAQpB,wBAAwBC,EAAoBC,EACpD,CACI,IAAMC,EAASC,EAAW,IAAI,EAAE,aAAa,EAE7CD,EAAO,MAAQF,EACfE,EAAO,OAASD,EAEV,IAAAG,EAAUF,EAAO,WAAW,IAAI,EAE/B,MAAA,CAAE,OAAAA,EAAQ,QAAAE,CAAQ,CAAA,CAUtB,2BAA2BC,EAAkBC,EAAmBC,EAAa,EACpF,CACIF,EAAW,KAAK,KAAMA,EAAWE,EAAc,IAAI,EACnDD,EAAY,KAAK,KAAMA,EAAYC,EAAc,IAAI,EACrDF,EAAWG,EAASH,CAAQ,EAC5BC,EAAYE,EAASF,CAAS,EAExB,IAAAG,GAAOJ,GAAY,KAAOC,GAAa,GAExC,KAAK,YAAYG,CAAG,IAEhB,KAAA,YAAYA,CAAG,EAAI,CAAA,GAG5B,IAAIC,EAAmB,KAAK,YAAYD,CAAG,EAAE,IAAI,EAEjD,OAAKC,IAEkBA,EAAA,KAAK,wBAAwBL,EAAUC,CAAS,GAGhEI,CAAA,CAOJ,uBAAuBA,EAC9B,CACI,IAAMR,EAASQ,EAAiB,OAC1B,CAAE,MAAAC,EAAO,OAAAC,CAAA,EAAWV,EAEpBO,GAAOE,GAAS,KAAOC,GAAU,GAEvCF,EAAiB,QAAQ,eAAe,EACxCA,EAAiB,QAAQ,UAAU,EAAG,EAAGC,EAAOC,CAAM,EAEtD,KAAK,YAAYH,CAAG,EAAE,KAAKC,CAAgB,CAAA,CAGxC,OACP,CACI,KAAK,YAAc,CAAA,CAAC,CAE5B,EAOaG,EAAa,IAAIf,EAC9BgB,EAAuB,SAASD,CAAU",
6
+ "names": ["cachedGroups", "getTextureBatchBindGroup", "textures", "size", "maxTextures", "uid", "i", "generateTextureBatchBindGroup", "key", "bindGroupResources", "bindIndex", "texture", "Texture", "bindGroup", "BindGroup", "CanvasPoolClass", "canvasOptions", "pixelWidth", "pixelHeight", "canvas", "DOMAdapter", "context", "minWidth", "minHeight", "resolution", "nextPow2", "key", "canvasAndContext", "width", "height", "CanvasPool", "GlobalResourceRegistry"]
7
+ }