@twick/core 0.14.21 → 0.15.0

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 (376) hide show
  1. package/dist/index.cjs +6465 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +3919 -0
  4. package/dist/index.d.ts +3919 -0
  5. package/dist/index.js +6225 -0
  6. package/dist/index.js.map +1 -0
  7. package/package.json +28 -18
  8. package/tsconfig.project.json +1 -0
  9. package/lib/app/Logger.d.ts +0 -105
  10. package/lib/app/Logger.d.ts.map +0 -1
  11. package/lib/app/Logger.js +0 -77
  12. package/lib/app/PlaybackManager.d.ts +0 -55
  13. package/lib/app/PlaybackManager.d.ts.map +0 -1
  14. package/lib/app/PlaybackManager.js +0 -179
  15. package/lib/app/PlaybackStatus.d.ts +0 -30
  16. package/lib/app/PlaybackStatus.d.ts.map +0 -1
  17. package/lib/app/PlaybackStatus.js +0 -46
  18. package/lib/app/Player.d.ts +0 -130
  19. package/lib/app/Player.d.ts.map +0 -1
  20. package/lib/app/Player.js +0 -375
  21. package/lib/app/Project.d.ts +0 -145
  22. package/lib/app/Project.d.ts.map +0 -1
  23. package/lib/app/Project.js +0 -10
  24. package/lib/app/Renderer.d.ts +0 -90
  25. package/lib/app/Renderer.d.ts.map +0 -1
  26. package/lib/app/Renderer.js +0 -318
  27. package/lib/app/SharedWebGLContext.d.ts +0 -24
  28. package/lib/app/SharedWebGLContext.d.ts.map +0 -1
  29. package/lib/app/SharedWebGLContext.js +0 -200
  30. package/lib/app/Stage.d.ts +0 -30
  31. package/lib/app/Stage.d.ts.map +0 -1
  32. package/lib/app/Stage.js +0 -75
  33. package/lib/app/TimeEstimator.d.ts +0 -53
  34. package/lib/app/TimeEstimator.d.ts.map +0 -1
  35. package/lib/app/TimeEstimator.js +0 -70
  36. package/lib/app/index.d.ts +0 -16
  37. package/lib/app/index.d.ts.map +0 -1
  38. package/lib/app/index.js +0 -16
  39. package/lib/app/makeProject.d.ts +0 -15
  40. package/lib/app/makeProject.d.ts.map +0 -1
  41. package/lib/app/makeProject.js +0 -72
  42. package/lib/app/project-settings.d.ts +0 -8
  43. package/lib/app/project-settings.d.ts.map +0 -1
  44. package/lib/app/project-settings.js +0 -13
  45. package/lib/decorators/decorate.d.ts +0 -2
  46. package/lib/decorators/decorate.d.ts.map +0 -1
  47. package/lib/decorators/decorate.js +0 -10
  48. package/lib/decorators/deprecated.d.ts +0 -5
  49. package/lib/decorators/deprecated.d.ts.map +0 -1
  50. package/lib/decorators/deprecated.js +0 -23
  51. package/lib/decorators/index.d.ts +0 -9
  52. package/lib/decorators/index.d.ts.map +0 -1
  53. package/lib/decorators/index.js +0 -9
  54. package/lib/decorators/lazy.d.ts +0 -14
  55. package/lib/decorators/lazy.d.ts.map +0 -1
  56. package/lib/decorators/lazy.js +0 -27
  57. package/lib/decorators/threadable.d.ts +0 -2
  58. package/lib/decorators/threadable.d.ts.map +0 -1
  59. package/lib/decorators/threadable.js +0 -9
  60. package/lib/events/AsyncEventDispatcher.d.ts +0 -45
  61. package/lib/events/AsyncEventDispatcher.d.ts.map +0 -1
  62. package/lib/events/AsyncEventDispatcher.js +0 -33
  63. package/lib/events/EventDispatcher.d.ts +0 -38
  64. package/lib/events/EventDispatcher.d.ts.map +0 -1
  65. package/lib/events/EventDispatcher.js +0 -29
  66. package/lib/events/EventDispatcherBase.d.ts +0 -55
  67. package/lib/events/EventDispatcherBase.d.ts.map +0 -1
  68. package/lib/events/EventDispatcherBase.js +0 -68
  69. package/lib/events/FlagDispatcher.d.ts +0 -54
  70. package/lib/events/FlagDispatcher.d.ts.map +0 -1
  71. package/lib/events/FlagDispatcher.js +0 -63
  72. package/lib/events/ValueDispatcher.d.ts +0 -81
  73. package/lib/events/ValueDispatcher.d.ts.map +0 -1
  74. package/lib/events/ValueDispatcher.js +0 -97
  75. package/lib/events/index.d.ts +0 -11
  76. package/lib/events/index.d.ts.map +0 -1
  77. package/lib/events/index.js +0 -11
  78. package/lib/exporter/Exporter.d.ts +0 -101
  79. package/lib/exporter/Exporter.d.ts.map +0 -1
  80. package/lib/exporter/Exporter.js +0 -2
  81. package/lib/exporter/FFmpegExporter.d.ts +0 -50
  82. package/lib/exporter/FFmpegExporter.d.ts.map +0 -1
  83. package/lib/exporter/FFmpegExporter.js +0 -140
  84. package/lib/exporter/ImageExporter.d.ts +0 -34
  85. package/lib/exporter/ImageExporter.d.ts.map +0 -1
  86. package/lib/exporter/ImageExporter.js +0 -80
  87. package/lib/exporter/WasmExporter.d.ts +0 -19
  88. package/lib/exporter/WasmExporter.d.ts.map +0 -1
  89. package/lib/exporter/WasmExporter.js +0 -78
  90. package/lib/exporter/download-videos.d.ts +0 -3
  91. package/lib/exporter/download-videos.d.ts.map +0 -1
  92. package/lib/exporter/download-videos.js +0 -45
  93. package/lib/exporter/index.d.ts +0 -5
  94. package/lib/exporter/index.d.ts.map +0 -1
  95. package/lib/exporter/index.js +0 -5
  96. package/lib/flow/all.d.ts +0 -18
  97. package/lib/flow/all.d.ts.map +0 -1
  98. package/lib/flow/all.js +0 -25
  99. package/lib/flow/any.d.ts +0 -18
  100. package/lib/flow/any.d.ts.map +0 -1
  101. package/lib/flow/any.js +0 -25
  102. package/lib/flow/chain.d.ts +0 -36
  103. package/lib/flow/chain.d.ts.map +0 -1
  104. package/lib/flow/chain.js +0 -46
  105. package/lib/flow/delay.d.ts +0 -29
  106. package/lib/flow/delay.d.ts.map +0 -1
  107. package/lib/flow/delay.js +0 -39
  108. package/lib/flow/every.d.ts +0 -41
  109. package/lib/flow/every.d.ts.map +0 -1
  110. package/lib/flow/every.js +0 -61
  111. package/lib/flow/index.d.ts +0 -17
  112. package/lib/flow/index.d.ts.map +0 -1
  113. package/lib/flow/index.js +0 -17
  114. package/lib/flow/join.d.ts +0 -35
  115. package/lib/flow/join.d.ts.map +0 -1
  116. package/lib/flow/join.js +0 -33
  117. package/lib/flow/loop.d.ts +0 -58
  118. package/lib/flow/loop.d.ts.map +0 -1
  119. package/lib/flow/loop.js +0 -51
  120. package/lib/flow/loopFor.d.ts +0 -25
  121. package/lib/flow/loopFor.d.ts.map +0 -1
  122. package/lib/flow/loopFor.js +0 -42
  123. package/lib/flow/names.d.ts +0 -3
  124. package/lib/flow/names.d.ts.map +0 -1
  125. package/lib/flow/names.js +0 -11
  126. package/lib/flow/run.d.ts +0 -45
  127. package/lib/flow/run.d.ts.map +0 -1
  128. package/lib/flow/run.js +0 -14
  129. package/lib/flow/scheduling.d.ts +0 -18
  130. package/lib/flow/scheduling.d.ts.map +0 -1
  131. package/lib/flow/scheduling.js +0 -33
  132. package/lib/flow/sequence.d.ts +0 -22
  133. package/lib/flow/sequence.d.ts.map +0 -1
  134. package/lib/flow/sequence.js +0 -31
  135. package/lib/index.d.ts +0 -16
  136. package/lib/index.d.ts.map +0 -1
  137. package/lib/index.js +0 -16
  138. package/lib/media/index.d.ts +0 -7
  139. package/lib/media/index.d.ts.map +0 -1
  140. package/lib/media/index.js +0 -7
  141. package/lib/media/loadImage.d.ts +0 -8
  142. package/lib/media/loadImage.d.ts.map +0 -1
  143. package/lib/media/loadImage.js +0 -29
  144. package/lib/plugin/DefaultPlugin.d.ts +0 -10
  145. package/lib/plugin/DefaultPlugin.d.ts.map +0 -1
  146. package/lib/plugin/DefaultPlugin.js +0 -17
  147. package/lib/plugin/Plugin.d.ts +0 -53
  148. package/lib/plugin/Plugin.d.ts.map +0 -1
  149. package/lib/plugin/Plugin.js +0 -2
  150. package/lib/plugin/index.d.ts +0 -3
  151. package/lib/plugin/index.d.ts.map +0 -1
  152. package/lib/plugin/index.js +0 -3
  153. package/lib/plugin/makePlugin.d.ts +0 -15
  154. package/lib/plugin/makePlugin.d.ts.map +0 -1
  155. package/lib/plugin/makePlugin.js +0 -16
  156. package/lib/scenes/GeneratorScene.d.ts +0 -95
  157. package/lib/scenes/GeneratorScene.d.ts.map +0 -1
  158. package/lib/scenes/GeneratorScene.js +0 -273
  159. package/lib/scenes/Inspectable.d.ts +0 -71
  160. package/lib/scenes/Inspectable.d.ts.map +0 -1
  161. package/lib/scenes/Inspectable.js +0 -4
  162. package/lib/scenes/LifecycleEvents.d.ts +0 -18
  163. package/lib/scenes/LifecycleEvents.d.ts.map +0 -1
  164. package/lib/scenes/LifecycleEvents.js +0 -45
  165. package/lib/scenes/Random.d.ts +0 -66
  166. package/lib/scenes/Random.d.ts.map +0 -1
  167. package/lib/scenes/Random.js +0 -101
  168. package/lib/scenes/Scene.d.ts +0 -298
  169. package/lib/scenes/Scene.d.ts.map +0 -1
  170. package/lib/scenes/Scene.js +0 -25
  171. package/lib/scenes/SceneState.d.ts +0 -34
  172. package/lib/scenes/SceneState.d.ts.map +0 -1
  173. package/lib/scenes/SceneState.js +0 -35
  174. package/lib/scenes/Shaders.d.ts +0 -63
  175. package/lib/scenes/Shaders.d.ts.map +0 -1
  176. package/lib/scenes/Shaders.js +0 -158
  177. package/lib/scenes/Slides.d.ts +0 -33
  178. package/lib/scenes/Slides.d.ts.map +0 -1
  179. package/lib/scenes/Slides.js +0 -115
  180. package/lib/scenes/Threadable.d.ts +0 -19
  181. package/lib/scenes/Threadable.d.ts.map +0 -1
  182. package/lib/scenes/Threadable.js +0 -4
  183. package/lib/scenes/Variables.d.ts +0 -24
  184. package/lib/scenes/Variables.d.ts.map +0 -1
  185. package/lib/scenes/Variables.js +0 -39
  186. package/lib/scenes/index.d.ts +0 -16
  187. package/lib/scenes/index.d.ts.map +0 -1
  188. package/lib/scenes/index.js +0 -16
  189. package/lib/signals/CompoundSignalContext.d.ts +0 -21
  190. package/lib/signals/CompoundSignalContext.d.ts.map +0 -1
  191. package/lib/signals/CompoundSignalContext.js +0 -73
  192. package/lib/signals/ComputedContext.d.ts +0 -14
  193. package/lib/signals/ComputedContext.d.ts.map +0 -1
  194. package/lib/signals/ComputedContext.js +0 -36
  195. package/lib/signals/DependencyContext.d.ts +0 -32
  196. package/lib/signals/DependencyContext.d.ts.map +0 -1
  197. package/lib/signals/DependencyContext.js +0 -87
  198. package/lib/signals/SignalContext.d.ts +0 -120
  199. package/lib/signals/SignalContext.d.ts.map +0 -1
  200. package/lib/signals/SignalContext.js +0 -245
  201. package/lib/signals/createComputed.d.ts +0 -3
  202. package/lib/signals/createComputed.d.ts.map +0 -1
  203. package/lib/signals/createComputed.js +0 -5
  204. package/lib/signals/createComputedAsync.d.ts +0 -4
  205. package/lib/signals/createComputedAsync.d.ts.map +0 -1
  206. package/lib/signals/createComputedAsync.js +0 -15
  207. package/lib/signals/createSignal.d.ts +0 -5
  208. package/lib/signals/createSignal.d.ts.map +0 -1
  209. package/lib/signals/createSignal.js +0 -6
  210. package/lib/signals/index.d.ts +0 -16
  211. package/lib/signals/index.d.ts.map +0 -1
  212. package/lib/signals/index.js +0 -16
  213. package/lib/signals/symbols.d.ts +0 -2
  214. package/lib/signals/symbols.d.ts.map +0 -1
  215. package/lib/signals/symbols.js +0 -2
  216. package/lib/signals/types.d.ts +0 -51
  217. package/lib/signals/types.d.ts.map +0 -1
  218. package/lib/signals/types.js +0 -2
  219. package/lib/signals/utils.d.ts +0 -5
  220. package/lib/signals/utils.d.ts.map +0 -1
  221. package/lib/signals/utils.js +0 -10
  222. package/lib/threading/Thread.d.ts +0 -77
  223. package/lib/threading/Thread.d.ts.map +0 -1
  224. package/lib/threading/Thread.js +0 -169
  225. package/lib/threading/ThreadGenerator.d.ts +0 -39
  226. package/lib/threading/ThreadGenerator.d.ts.map +0 -1
  227. package/lib/threading/ThreadGenerator.js +0 -17
  228. package/lib/threading/cancel.d.ts +0 -17
  229. package/lib/threading/cancel.d.ts.map +0 -1
  230. package/lib/threading/cancel.js +0 -26
  231. package/lib/threading/index.d.ts +0 -11
  232. package/lib/threading/index.d.ts.map +0 -1
  233. package/lib/threading/index.js +0 -11
  234. package/lib/threading/spawn.d.ts +0 -28
  235. package/lib/threading/spawn.d.ts.map +0 -1
  236. package/lib/threading/spawn.js +0 -30
  237. package/lib/threading/threads.d.ts +0 -46
  238. package/lib/threading/threads.d.ts.map +0 -1
  239. package/lib/threading/threads.js +0 -89
  240. package/lib/transitions/fadeTransition.d.ts +0 -8
  241. package/lib/transitions/fadeTransition.d.ts.map +0 -1
  242. package/lib/transitions/fadeTransition.js +0 -16
  243. package/lib/transitions/index.d.ts +0 -11
  244. package/lib/transitions/index.d.ts.map +0 -1
  245. package/lib/transitions/index.js +0 -11
  246. package/lib/transitions/slideTransition.d.ts +0 -18
  247. package/lib/transitions/slideTransition.d.ts.map +0 -1
  248. package/lib/transitions/slideTransition.js +0 -14
  249. package/lib/transitions/useTransition.d.ts +0 -10
  250. package/lib/transitions/useTransition.d.ts.map +0 -1
  251. package/lib/transitions/useTransition.js +0 -27
  252. package/lib/transitions/zoomInTransition.d.ts +0 -10
  253. package/lib/transitions/zoomInTransition.d.ts.map +0 -1
  254. package/lib/transitions/zoomInTransition.js +0 -33
  255. package/lib/transitions/zoomOutTransition.d.ts +0 -10
  256. package/lib/transitions/zoomOutTransition.d.ts.map +0 -1
  257. package/lib/transitions/zoomOutTransition.js +0 -33
  258. package/lib/tsconfig.build.tsbuildinfo +0 -1
  259. package/lib/tweening/helpers.d.ts +0 -5
  260. package/lib/tweening/helpers.d.ts.map +0 -1
  261. package/lib/tweening/helpers.js +0 -16
  262. package/lib/tweening/index.d.ts +0 -11
  263. package/lib/tweening/index.d.ts.map +0 -1
  264. package/lib/tweening/index.js +0 -11
  265. package/lib/tweening/interpolationFunctions.d.ts +0 -38
  266. package/lib/tweening/interpolationFunctions.d.ts.map +0 -1
  267. package/lib/tweening/interpolationFunctions.js +0 -107
  268. package/lib/tweening/spring.d.ts +0 -20
  269. package/lib/tweening/spring.d.ts.map +0 -1
  270. package/lib/tweening/spring.js +0 -103
  271. package/lib/tweening/timingFunctions.d.ts +0 -46
  272. package/lib/tweening/timingFunctions.d.ts.map +0 -1
  273. package/lib/tweening/timingFunctions.js +0 -233
  274. package/lib/tweening/tween.d.ts +0 -3
  275. package/lib/tweening/tween.d.ts.map +0 -1
  276. package/lib/tweening/tween.js +0 -21
  277. package/lib/types/BBox.d.ts +0 -73
  278. package/lib/types/BBox.d.ts.map +0 -1
  279. package/lib/types/BBox.js +0 -249
  280. package/lib/types/Canvas.d.ts +0 -3
  281. package/lib/types/Canvas.d.ts.map +0 -1
  282. package/lib/types/Canvas.js +0 -2
  283. package/lib/types/Color.d.ts +0 -65
  284. package/lib/types/Color.d.ts.map +0 -1
  285. package/lib/types/Color.js +0 -185
  286. package/lib/types/Matrix.d.ts +0 -3
  287. package/lib/types/Matrix.d.ts.map +0 -1
  288. package/lib/types/Matrix.js +0 -10
  289. package/lib/types/Matrix2D.d.ts +0 -363
  290. package/lib/types/Matrix2D.d.ts.map +0 -1
  291. package/lib/types/Matrix2D.js +0 -554
  292. package/lib/types/Origin.d.ts +0 -17
  293. package/lib/types/Origin.d.ts.map +0 -1
  294. package/lib/types/Origin.js +0 -53
  295. package/lib/types/Spacing.d.ts +0 -36
  296. package/lib/types/Spacing.d.ts.map +0 -1
  297. package/lib/types/Spacing.js +0 -70
  298. package/lib/types/Type.d.ts +0 -9
  299. package/lib/types/Type.d.ts.map +0 -1
  300. package/lib/types/Type.js +0 -5
  301. package/lib/types/Vector.d.ts +0 -203
  302. package/lib/types/Vector.d.ts.map +0 -1
  303. package/lib/types/Vector.js +0 -355
  304. package/lib/types/alignment-enums.d.ts +0 -22
  305. package/lib/types/alignment-enums.d.ts.map +0 -1
  306. package/lib/types/alignment-enums.js +0 -25
  307. package/lib/types/index.d.ts +0 -17
  308. package/lib/types/index.d.ts.map +0 -1
  309. package/lib/types/index.js +0 -17
  310. package/lib/types/vector-transformations.d.ts +0 -20
  311. package/lib/types/vector-transformations.d.ts.map +0 -1
  312. package/lib/types/vector-transformations.js +0 -31
  313. package/lib/utils/DetailedError.d.ts +0 -24
  314. package/lib/utils/DetailedError.d.ts.map +0 -1
  315. package/lib/utils/DetailedError.js +0 -16
  316. package/lib/utils/ExperimentalError.d.ts +0 -10
  317. package/lib/utils/ExperimentalError.d.ts.map +0 -1
  318. package/lib/utils/ExperimentalError.js +0 -32
  319. package/lib/utils/Semaphore.d.ts +0 -12
  320. package/lib/utils/Semaphore.d.ts.map +0 -1
  321. package/lib/utils/Semaphore.js +0 -25
  322. package/lib/utils/beginSlide.d.ts +0 -3
  323. package/lib/utils/beginSlide.d.ts.map +0 -1
  324. package/lib/utils/beginSlide.js +0 -12
  325. package/lib/utils/capitalize.d.ts +0 -2
  326. package/lib/utils/capitalize.d.ts.map +0 -1
  327. package/lib/utils/capitalize.js +0 -4
  328. package/lib/utils/createRef.d.ts +0 -15
  329. package/lib/utils/createRef.d.ts.map +0 -1
  330. package/lib/utils/createRef.js +0 -21
  331. package/lib/utils/createRefArray.d.ts +0 -27
  332. package/lib/utils/createRefArray.d.ts.map +0 -1
  333. package/lib/utils/createRefArray.js +0 -49
  334. package/lib/utils/createRefMap.d.ts +0 -50
  335. package/lib/utils/createRefMap.d.ts.map +0 -1
  336. package/lib/utils/createRefMap.js +0 -77
  337. package/lib/utils/debug.d.ts +0 -24
  338. package/lib/utils/debug.d.ts.map +0 -1
  339. package/lib/utils/debug.js +0 -47
  340. package/lib/utils/deprecate.d.ts +0 -9
  341. package/lib/utils/deprecate.d.ts.map +0 -1
  342. package/lib/utils/deprecate.js +0 -15
  343. package/lib/utils/errorToLog.d.ts +0 -3
  344. package/lib/utils/errorToLog.d.ts.map +0 -1
  345. package/lib/utils/errorToLog.js +0 -8
  346. package/lib/utils/experimentalLog.d.ts +0 -3
  347. package/lib/utils/experimentalLog.d.ts.map +0 -1
  348. package/lib/utils/experimentalLog.js +0 -10
  349. package/lib/utils/getContext.d.ts +0 -2
  350. package/lib/utils/getContext.d.ts.map +0 -1
  351. package/lib/utils/getContext.js +0 -8
  352. package/lib/utils/index.d.ts +0 -26
  353. package/lib/utils/index.d.ts.map +0 -1
  354. package/lib/utils/index.js +0 -26
  355. package/lib/utils/math.d.ts +0 -15
  356. package/lib/utils/math.d.ts.map +0 -1
  357. package/lib/utils/math.js +0 -15
  358. package/lib/utils/range.d.ts +0 -40
  359. package/lib/utils/range.d.ts.map +0 -1
  360. package/lib/utils/range.js +0 -18
  361. package/lib/utils/useContext.d.ts +0 -13
  362. package/lib/utils/useContext.d.ts.map +0 -1
  363. package/lib/utils/useContext.js +0 -18
  364. package/lib/utils/usePlayback.d.ts +0 -8
  365. package/lib/utils/usePlayback.d.ts.map +0 -1
  366. package/lib/utils/usePlayback.js +0 -20
  367. package/lib/utils/useScene.d.ts +0 -17
  368. package/lib/utils/useScene.d.ts.map +0 -1
  369. package/lib/utils/useScene.js +0 -33
  370. package/lib/utils/useThread.d.ts +0 -8
  371. package/lib/utils/useThread.d.ts.map +0 -1
  372. package/lib/utils/useThread.js +0 -24
  373. package/lib/utils/useTime.d.ts +0 -19
  374. package/lib/utils/useTime.d.ts.map +0 -1
  375. package/lib/utils/useTime.js +0 -22
  376. package/project.d.ts +0 -24
@@ -1,200 +0,0 @@
1
- const SOURCE_URL_REGEX = /^\/\/# sourceURL=(.*)$/gm;
2
- const INFO_LOG_REGEX = /ERROR: \d+:(\d+): (.*)/g;
3
- const INFO_TOKEN_REGEX = /^'([^']+)'/;
4
- const includeWithoutPreprocessor = `
5
- The \`#include\` directive requires the use of a preprocessor.
6
-
7
- Make sure to import the shader from a file:
8
-
9
- \`\`\`ts
10
- import shader from './shader.glsl';
11
- \`\`\`
12
-
13
- Do **NOT** use the raw loader:
14
-
15
- \`\`\`ts
16
- import shader from './shader.glsl?raw';
17
- \`\`\`
18
-
19
- Do **NOT** use \`#include\` in an inline string:
20
-
21
- \`\`\`ts
22
- const shader = \`\\
23
- #include "example.glsl"
24
- \`;
25
- \`\`\`
26
-
27
- [Learn more](https://motioncanvas.io/docs/shaders) about working with shaders.
28
- `;
29
- export class SharedWebGLContext {
30
- constructor(logger) {
31
- this.logger = logger;
32
- this.gl = null;
33
- this.currentOwner = null;
34
- this.programLookup = new Map();
35
- }
36
- borrow(owner) {
37
- if (this.currentOwner === owner) {
38
- return this.gl;
39
- }
40
- this.currentOwner?.teardown(this.gl);
41
- this.currentOwner = owner;
42
- this.currentOwner.setup(this.getGL());
43
- return this.gl;
44
- }
45
- /**
46
- * Dispose the WebGL context to free up resources.
47
- */
48
- dispose() {
49
- if (!this.gl) {
50
- return;
51
- }
52
- this.currentOwner?.teardown(this.gl);
53
- this.currentOwner = null;
54
- this.gl.useProgram(null);
55
- for (const { program, fragment, vertex } of this.programLookup.values()) {
56
- this.gl.deleteProgram(program);
57
- this.gl.deleteShader(fragment);
58
- this.gl.deleteShader(vertex);
59
- }
60
- this.programLookup.clear();
61
- this.gl.getExtension('WEBGL_lose_context')?.loseContext();
62
- this.gl.canvas.remove();
63
- this.gl = null;
64
- }
65
- getProgram(fragment, vertex) {
66
- const key = `${fragment}#${vertex}`;
67
- if (this.programLookup.has(key)) {
68
- return this.programLookup.get(key).program;
69
- }
70
- const gl = this.getGL();
71
- const fragmentShader = this.getShader(gl.FRAGMENT_SHADER, fragment);
72
- const vertexShader = this.getShader(gl.VERTEX_SHADER, vertex);
73
- if (!fragmentShader || !vertexShader) {
74
- return null;
75
- }
76
- const program = gl.createProgram();
77
- gl.attachShader(program, fragmentShader);
78
- gl.attachShader(program, vertexShader);
79
- gl.linkProgram(program);
80
- if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
81
- this.logger.error({
82
- message: 'Failed to initialize the shader program.',
83
- remarks: gl.getProgramInfoLog(program) ?? undefined,
84
- stack: new Error().stack,
85
- });
86
- gl.deleteProgram(program);
87
- return null;
88
- }
89
- this.programLookup.set(key, {
90
- program,
91
- fragment: fragmentShader,
92
- vertex: vertexShader,
93
- });
94
- return program;
95
- }
96
- getShader(type, source) {
97
- const gl = this.getGL();
98
- const shader = gl.createShader(type);
99
- gl.shaderSource(shader, source);
100
- gl.compileShader(shader);
101
- if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
102
- const log = gl.getShaderInfoLog(shader);
103
- logGlslError(this.logger, log, source);
104
- gl.deleteShader(shader);
105
- return null;
106
- }
107
- return shader;
108
- }
109
- getGL() {
110
- if (this.gl) {
111
- return this.gl;
112
- }
113
- this.gl = document.createElement('canvas').getContext('webgl2', {
114
- depth: false,
115
- premultipliedAlpha: false,
116
- stencil: false,
117
- powerPreference: 'high-performance',
118
- });
119
- if (!this.gl) {
120
- throw new Error('Failed to initialize WebGL.');
121
- }
122
- /* NOTE: Temporary debugging code
123
- const canvas = this.gl.canvas as HTMLCanvasElement;
124
- document.body.append(canvas);
125
- canvas.style.position = 'absolute';
126
- canvas.style.top = '16px';
127
- canvas.style.right = '16px';
128
- canvas.style.width = '300px';
129
- canvas.style.borderRadius = '4px';
130
- canvas.style.border = '1px solid #ccc';
131
- canvas.style.backgroundColor = '#141414';
132
- canvas.style.zIndex = '1000';
133
- */
134
- return this.gl;
135
- }
136
- }
137
- function logGlslError(logger, log, source) {
138
- let sourceUrl = null;
139
- SOURCE_URL_REGEX.lastIndex = 0;
140
- const sourceMatch = SOURCE_URL_REGEX.exec(source);
141
- if (sourceMatch) {
142
- const url = new URL(sourceMatch[1], window.location.origin);
143
- url.searchParams.set('t', Date.now().toString());
144
- sourceUrl = url.toString();
145
- }
146
- if (!log) {
147
- logger.error({
148
- message: `Unknown shader compilation error.`,
149
- stack: fakeStackTrace(sourceUrl, 1, 0),
150
- });
151
- return null;
152
- }
153
- let logged = false;
154
- let result;
155
- while ((result = INFO_LOG_REGEX.exec(log))) {
156
- const [, line, message] = result;
157
- let column = 0;
158
- const match = message.match(INFO_TOKEN_REGEX);
159
- if (match) {
160
- const tokenLine = source.split('\n')[parseInt(line) - 1];
161
- const index = tokenLine.indexOf(match[1]);
162
- if (index !== -1) {
163
- column = index;
164
- }
165
- if (match[1] === 'include') {
166
- const line = source
167
- .split('\n')
168
- .find(line => line.startsWith('#include'));
169
- if (line) {
170
- logged = true;
171
- logger.error({
172
- message: `Shader compilation error: ${message}`,
173
- remarks: includeWithoutPreprocessor,
174
- });
175
- break;
176
- }
177
- }
178
- }
179
- logged = true;
180
- logger.error({
181
- message: `Shader compilation error: ${message}`,
182
- stack: fakeStackTrace(sourceUrl, line, column),
183
- });
184
- }
185
- if (!logged) {
186
- logger.error({
187
- message: `Shader compilation error: ${log}`,
188
- stack: fakeStackTrace(sourceUrl, 1, 0),
189
- });
190
- }
191
- }
192
- function fakeStackTrace(file, line, column) {
193
- if (!file) {
194
- return undefined;
195
- }
196
- return navigator.userAgent.toLowerCase().includes('chrome')
197
- ? ` at (${file}:${line}:${column})`
198
- : `@${file}:${line}:${column}`;
199
- }
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhcmVkV2ViR0xDb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9TaGFyZWRXZWJHTENvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxnQkFBZ0IsR0FBRywwQkFBMEIsQ0FBQztBQUNwRCxNQUFNLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQztBQUNqRCxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQztBQUV0QyxNQUFNLDBCQUEwQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F3QmxDLENBQUM7QUFnQkYsTUFBTSxPQUFPLGtCQUFrQjtJQUs3QixZQUFvQyxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUoxQyxPQUFFLEdBQWtDLElBQUksQ0FBQztRQUN6QyxpQkFBWSxHQUE2QixJQUFJLENBQUM7UUFDckMsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztJQUVoQixDQUFDO0lBRS9DLE1BQU0sQ0FBQyxLQUF3QjtRQUNwQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsRUFBRyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsRUFBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMs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
@@ -1,30 +0,0 @@
1
- import type { Scene } from '../scenes';
2
- import type { CanvasColorSpace, Color } from '../types';
3
- import { Vector2 } from '../types';
4
- export interface StageSettings {
5
- size: Vector2;
6
- resolutionScale: number;
7
- colorSpace: CanvasColorSpace;
8
- background: Color | string | null;
9
- }
10
- /**
11
- * Manages canvases on which an animation can be displayed.
12
- */
13
- export declare class Stage {
14
- private background;
15
- private resolutionScale;
16
- private colorSpace;
17
- private size;
18
- readonly finalBuffer: HTMLCanvasElement;
19
- private readonly currentBuffer;
20
- private readonly previousBuffer;
21
- private context;
22
- private currentContext;
23
- private previousContext;
24
- private get canvasSize();
25
- constructor();
26
- configure({ colorSpace, size, resolutionScale, background, }: Partial<StageSettings>): void;
27
- render(currentScene: Scene, previousScene: Scene | null): Promise<void>;
28
- resizeCanvas(context: CanvasRenderingContext2D): void;
29
- }
30
- //# sourceMappingURL=Stage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Stage.d.ts","sourceRoot":"","sources":["../../src/app/Stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAC,gBAAgB,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AACtD,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAGjC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,KAAK;IAGhB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,IAAI,CAAgB;IAE5B,SAAgB,WAAW,EAAE,iBAAiB,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IAEnD,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,eAAe,CAA2B;IAElD,OAAO,KAAK,UAAU,GAErB;;IAaM,SAAS,CAAC,EACf,UAA4B,EAC5B,IAAgB,EAChB,eAAsC,EACtC,UAA4B,GAC7B,EAAE,OAAO,CAAC,aAAa,CAAC;IAyBZ,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,GAAG,IAAI;IA6B7D,YAAY,CAAC,OAAO,EAAE,wBAAwB;CAKtD"}
package/lib/app/Stage.js DELETED
@@ -1,75 +0,0 @@
1
- import { unwrap } from '../signals';
2
- import { Vector2 } from '../types';
3
- import { getContext } from '../utils';
4
- /**
5
- * Manages canvases on which an animation can be displayed.
6
- */
7
- export class Stage {
8
- get canvasSize() {
9
- return this.size.scale(this.resolutionScale);
10
- }
11
- constructor() {
12
- // TODO Consider adding pooling for canvases.
13
- this.background = null;
14
- this.resolutionScale = 1;
15
- this.colorSpace = 'srgb';
16
- this.size = Vector2.zero;
17
- this.finalBuffer = document.createElement('canvas');
18
- this.currentBuffer = document.createElement('canvas');
19
- this.previousBuffer = document.createElement('canvas');
20
- const colorSpace = this.colorSpace;
21
- this.context = getContext({ colorSpace }, this.finalBuffer);
22
- this.currentContext = getContext({ colorSpace }, this.currentBuffer);
23
- this.previousContext = getContext({ colorSpace }, this.previousBuffer);
24
- }
25
- configure({ colorSpace = this.colorSpace, size = this.size, resolutionScale = this.resolutionScale, background = this.background, }) {
26
- if (colorSpace !== this.colorSpace) {
27
- this.colorSpace = colorSpace;
28
- this.context = getContext({ colorSpace }, this.finalBuffer);
29
- this.currentContext = getContext({ colorSpace }, this.currentBuffer);
30
- this.previousContext = getContext({ colorSpace }, this.previousBuffer);
31
- }
32
- if (!size.exactlyEquals(this.size) ||
33
- resolutionScale !== this.resolutionScale) {
34
- this.resolutionScale = resolutionScale;
35
- this.size = size;
36
- this.resizeCanvas(this.context);
37
- this.resizeCanvas(this.currentContext);
38
- this.resizeCanvas(this.previousContext);
39
- }
40
- this.background =
41
- typeof background === 'string'
42
- ? background
43
- : (background?.serialize() ?? null);
44
- }
45
- async render(currentScene, previousScene) {
46
- const previousOnTop = previousScene
47
- ? unwrap(currentScene.previousOnTop)
48
- : false;
49
- if (previousScene) {
50
- await previousScene.render(this.previousContext);
51
- }
52
- await currentScene.render(this.currentContext);
53
- const size = this.canvasSize;
54
- this.context.clearRect(0, 0, size.width, size.height);
55
- if (this.background) {
56
- this.context.save();
57
- this.context.fillStyle = this.background;
58
- this.context.fillRect(0, 0, size.width, size.height);
59
- this.context.restore();
60
- }
61
- if (previousScene && !previousOnTop) {
62
- this.context.drawImage(this.previousBuffer, 0, 0);
63
- }
64
- this.context.drawImage(this.currentBuffer, 0, 0);
65
- if (previousOnTop) {
66
- this.context.drawImage(this.previousBuffer, 0, 0);
67
- }
68
- }
69
- resizeCanvas(context) {
70
- const size = this.canvasSize;
71
- context.canvas.width = size.width;
72
- context.canvas.height = size.height;
73
- }
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwL1N0YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFbEMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBU3BDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLEtBQUs7SUFnQmhCLElBQVksVUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7UUFuQkEsNkNBQTZDO1FBRXJDLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ2pDLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLGVBQVUsR0FBcUIsTUFBTSxDQUFDO1FBQ3RDLFNBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBZTFCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsRUFBQyxVQUFVLEVBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsRUFBQyxVQUFVLEVBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGVBQWUsR0FB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
@@ -1,53 +0,0 @@
1
- /**
2
- * An estimate of the time remaining until the process is finished.
3
- */
4
- export interface TimeEstimate {
5
- /**
6
- * The completion percentage ranging from `0` to `1`.
7
- */
8
- completion: number;
9
- /**
10
- * The time passed since the beginning of the process in milliseconds.
11
- */
12
- elapsed: number;
13
- /**
14
- * The estimated time remaining until the process is finished in milliseconds.
15
- */
16
- eta: number;
17
- }
18
- /**
19
- * Calculates the estimated time remaining until a process is finished.
20
- */
21
- export declare class TimeEstimator {
22
- get onCompletionChanged(): import("../events").SubscribableValueEvent<number>;
23
- private readonly completion;
24
- private startTimestamp;
25
- private lastUpdateTimestamp;
26
- private nextCompletion;
27
- /**
28
- * Get the current time estimate.
29
- *
30
- * @param timestamp - The timestamp to calculate the estimate against.
31
- * Defaults to `performance.now()`.
32
- */
33
- estimate(timestamp?: number): TimeEstimate;
34
- /**
35
- * Update the completion percentage.
36
- *
37
- * @param completion - The completion percentage ranging from `0` to `1`.
38
- * @param timestamp - A timestamp at which the process was updated.
39
- * Defaults to `performance.now()`.
40
- */
41
- update(completion: number, timestamp?: number): void;
42
- reportProgress(): void;
43
- /**
44
- * Reset the estimator.
45
- *
46
- * @param nextCompletion - If known, the completion percentage of the next
47
- * update.
48
- * @param timestamp - A timestamp at which the process started.
49
- * Defaults to `performance.now()`.
50
- */
51
- reset(nextCompletion?: number, timestamp?: number): void;
52
- }
53
- //# sourceMappingURL=TimeEstimator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimeEstimator.d.ts","sourceRoot":"","sources":["../../src/app/TimeEstimator.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,IAAW,mBAAmB,uDAE7B;IACD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,cAAc,CAAK;IAE3B;;;;;OAKG;IACI,QAAQ,CAAC,SAAS,SAAoB,GAAG,YAAY;IAkB5D;;;;;;OAMG;IACI,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,SAAoB;IAKxD,cAAc;IAMrB;;;;;;;OAOG;IACI,KAAK,CAAC,cAAc,SAAI,EAAE,SAAS,SAAoB;CAM/D"}
@@ -1,70 +0,0 @@
1
- import { ValueDispatcher } from '../events';
2
- import { clamp } from '../tweening';
3
- /**
4
- * Calculates the estimated time remaining until a process is finished.
5
- */
6
- export class TimeEstimator {
7
- constructor() {
8
- this.completion = new ValueDispatcher(0);
9
- this.startTimestamp = 0;
10
- this.lastUpdateTimestamp = 0;
11
- this.nextCompletion = 0;
12
- }
13
- get onCompletionChanged() {
14
- return this.completion.subscribable;
15
- }
16
- /**
17
- * Get the current time estimate.
18
- *
19
- * @param timestamp - The timestamp to calculate the estimate against.
20
- * Defaults to `performance.now()`.
21
- */
22
- estimate(timestamp = performance.now()) {
23
- const elapsed = timestamp - this.startTimestamp;
24
- const completion = this.completion.current;
25
- let eta = Infinity;
26
- if (completion >= 1) {
27
- eta = 0;
28
- }
29
- else if (completion > 0) {
30
- const lastUpdateDuration = this.lastUpdateTimestamp - this.startTimestamp;
31
- eta = lastUpdateDuration / completion - elapsed;
32
- eta = Math.max(0, eta);
33
- }
34
- else if (this.nextCompletion > 0) {
35
- eta = elapsed / this.nextCompletion - elapsed;
36
- }
37
- return { completion, elapsed, eta };
38
- }
39
- /**
40
- * Update the completion percentage.
41
- *
42
- * @param completion - The completion percentage ranging from `0` to `1`.
43
- * @param timestamp - A timestamp at which the process was updated.
44
- * Defaults to `performance.now()`.
45
- */
46
- update(completion, timestamp = performance.now()) {
47
- this.completion.current = clamp(0, 1, completion);
48
- this.lastUpdateTimestamp = timestamp;
49
- }
50
- reportProgress() {
51
- if (window.logProgress) {
52
- window.logProgress(this.completion.current);
53
- }
54
- }
55
- /**
56
- * Reset the estimator.
57
- *
58
- * @param nextCompletion - If known, the completion percentage of the next
59
- * update.
60
- * @param timestamp - A timestamp at which the process started.
61
- * Defaults to `performance.now()`.
62
- */
63
- reset(nextCompletion = 0, timestamp = performance.now()) {
64
- this.startTimestamp = timestamp;
65
- this.lastUpdateTimestamp = timestamp;
66
- this.completion.current = 0;
67
- this.nextCompletion = nextCompletion;
68
- }
69
- }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZUVzdGltYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHAvVGltZUVzdGltYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFvQmxDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFJbUIsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUN4QixtQkFBYyxHQUFHLENBQUMsQ0FBQztJQTBEN0IsQ0FBQztJQWhFQyxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQ3RDLENBQUM7SUFNRDs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtRQUMzQyxNQUFNLE9BQU8sR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUUzQyxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUM7UUFDbkIsSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEIsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUM7YUFBTSxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQzFFLEdBQUcsR0FBRyxrQkFBa0IsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDO1lBQ2hELEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLEdBQUcsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8sRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsVUFBa0IsRUFBRSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtRQUM3RCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUssTUFBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLE1BQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxLQUFLLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtRQUM1RCxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YifQ==
@@ -1,16 +0,0 @@
1
- /**
2
- * Main Motion Canvas classes.
3
- *
4
- * @packageDocumentation
5
- */
6
- export * from './Logger';
7
- export * from './makeProject';
8
- export * from './PlaybackManager';
9
- export * from './PlaybackStatus';
10
- export * from './Player';
11
- export * from './Project';
12
- export * from './project-settings';
13
- export * from './Renderer';
14
- export * from './SharedWebGLContext';
15
- export * from './Stage';
16
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
package/lib/app/index.js DELETED
@@ -1,16 +0,0 @@
1
- /**
2
- * Main Motion Canvas classes.
3
- *
4
- * @packageDocumentation
5
- */
6
- export * from './Logger';
7
- export * from './makeProject';
8
- export * from './PlaybackManager';
9
- export * from './PlaybackStatus';
10
- export * from './Player';
11
- export * from './Project';
12
- export * from './project-settings';
13
- export * from './Renderer';
14
- export * from './SharedWebGLContext';
15
- export * from './Stage';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsU0FBUyxDQUFDIn0=
@@ -1,15 +0,0 @@
1
- import { Logger } from './Logger';
2
- import type { Project, UserProject, UserProjectSettings } from './Project';
3
- export declare const defaultUserProjectSettings: UserProjectSettings;
4
- export declare function makeProject(project: UserProject): Project;
5
- export declare function addEditorToProject(project: Project): Promise<{
6
- plugins: any[];
7
- name: string;
8
- settings: import("./Project").ProjectSettings;
9
- logger: Logger;
10
- versions: import("./Project").Versions;
11
- scenes: import("..").SceneDescription<any>[];
12
- variables?: Record<string, unknown> | undefined;
13
- experimentalFeatures?: boolean | undefined;
14
- }>;
15
- //# sourceMappingURL=makeProject.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"makeProject.d.ts","sourceRoot":"","sources":["../../src/app/makeProject.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAC,MAAM,WAAW,CAAC;AAGzE,eAAO,MAAM,0BAA0B,EAAE,mBAkBxC,CAAC;AAEF,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAwCzD;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO;;;;;;;;;GAWxD"}
@@ -1,72 +0,0 @@
1
- import DefaultPlugin from '../plugin/DefaultPlugin';
2
- import { Color, Vector2 } from '../types';
3
- import { Logger } from './Logger';
4
- import { createVersionObject } from './Project';
5
- export const defaultUserProjectSettings = {
6
- shared: {
7
- background: 'FFFFFF00',
8
- range: [0, Infinity],
9
- size: { x: 1920, y: 1080 },
10
- },
11
- rendering: {
12
- exporter: {
13
- name: '@twick/core/wasm',
14
- },
15
- fps: 30,
16
- resolutionScale: 1,
17
- colorSpace: 'srgb',
18
- },
19
- preview: {
20
- fps: 30,
21
- resolutionScale: 1,
22
- },
23
- };
24
- export function makeProject(project) {
25
- // Don't delete, has side effects
26
- // TODO(konsti): Figure out how to get rid of this
27
- void DefaultPlugin;
28
- const settings = {
29
- ...defaultUserProjectSettings,
30
- ...project.settings,
31
- shared: {
32
- ...defaultUserProjectSettings.shared,
33
- ...project.settings?.shared,
34
- },
35
- rendering: {
36
- ...defaultUserProjectSettings.rendering,
37
- ...project.settings?.rendering,
38
- },
39
- preview: {
40
- ...defaultUserProjectSettings.preview,
41
- ...project.settings?.preview,
42
- },
43
- };
44
- // Convert background and size to correct types
45
- const convertedSettings = {
46
- ...settings,
47
- shared: {
48
- ...settings.shared,
49
- background: new Color(settings.shared.background),
50
- size: new Vector2(settings.shared.size),
51
- },
52
- };
53
- return {
54
- ...project,
55
- name: project.name ?? 'project',
56
- settings: convertedSettings,
57
- plugins: [],
58
- logger: new Logger(),
59
- versions: createVersionObject('0.10.4'),
60
- };
61
- }
62
- export async function addEditorToProject(project) {
63
- const url = '/@id/@twick/2d/editor';
64
- const imported = await import(
65
- /* webpackIgnore: true */ /* @vite-ignore */ url);
66
- const plugin = imported.default();
67
- return {
68
- ...project,
69
- plugins: [...project.plugins, plugin],
70
- };
71
- }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwL21ha2VQcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sYUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFaEMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF3QjtJQUM3RCxNQUFNLEVBQUU7UUFDTixVQUFVLEVBQUUsVUFBVTtRQUN0QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDO1FBQ3BCLElBQUksRUFBRSxFQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBQztLQUN6QjtJQUNELFNBQVMsRUFBRTtRQUNULFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxrQkFBa0I7U0FDekI7UUFDRCxHQUFHLEVBQUUsRUFBRTtRQUNQLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLFVBQVUsRUFBRSxNQUFNO0tBQ25CO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsR0FBRyxFQUFFLEVBQUU7UUFDUCxlQUFlLEVBQUUsQ0FBQztLQUNuQjtDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQW9CO0lBQzlDLGlDQUFpQztJQUNqQyxrREFBa0Q7SUFDbEQsS0FBSyxhQUFhLENBQUM7SUFFbkIsTUFBTSxRQUFRLEdBQUc7UUFDZixHQUFHLDBCQUEwQjtRQUM3QixHQUFHLE9BQU8sQ0FBQyxRQUFRO1FBQ25CLE1BQU0sRUFBRTtZQUNOLEdBQUcsMEJBQTBCLENBQUMsTUFBTTtZQUNwQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTTtTQUM1QjtRQUNELFNBQVMsRUFBRTtZQUNULEdBQUcsMEJBQTBCLENBQUMsU0FBUztZQUN2QyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsU0FBUztTQUMvQjtRQUNELE9BQU8sRUFBRTtZQUNQLEdBQUcsMEJBQTBCLENBQUMsT0FBTztZQUNyQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTztTQUM3QjtLQUNGLENBQUM7SUFFRiwrQ0FBK0M7SUFDL0MsTUFBTSxpQkFBaUIsR0FBRztRQUN4QixHQUFHLFFBQVE7UUFDWCxNQUFNLEVBQUU7WUFDTixHQUFHLFFBQVEsQ0FBQyxNQUFNO1lBQ2xCLFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVcsQ0FBQztZQUNsRCxJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDeEM7S0FDRixDQUFDO0lBRUYsT0FBTztRQUNMLEdBQUcsT0FBTztRQUNWLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLFNBQVM7UUFDL0IsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixPQUFPLEVBQUUsRUFBRTtRQUNYLE1BQU0sRUFBRSxJQUFJLE1BQU0sRUFBRTtRQUNwQixRQUFRLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDO0tBQ3hDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxPQUFnQjtJQUN2RCxNQUFNLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQztJQUNwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU07SUFDM0IseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUNqRCxDQUFDO0lBQ0YsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRWxDLE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0tBQ3RDLENBQUM7QUFDSixDQUFDIn0=
@@ -1,8 +0,0 @@
1
- import type { Project } from './Project';
2
- type SharedSettings = Project['settings']['shared'];
3
- type PreviewSettings = Project['settings']['preview'];
4
- type RenderingSettings = Project['settings']['rendering'];
5
- export declare function getFullPreviewSettings(project: Project): SharedSettings & PreviewSettings;
6
- export declare function getFullRenderingSettings(project: Project): SharedSettings & RenderingSettings;
7
- export {};
8
- //# sourceMappingURL=project-settings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-settings.d.ts","sourceRoot":"","sources":["../../src/app/project-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAEvC,KAAK,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpD,KAAK,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;AACtD,KAAK,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;AAE1D,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,GACf,cAAc,GAAG,eAAe,CAKlC;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,GACf,cAAc,GAAG,iBAAiB,CAKpC"}
@@ -1,13 +0,0 @@
1
- export function getFullPreviewSettings(project) {
2
- return {
3
- ...project.settings.shared,
4
- ...project.settings.preview,
5
- };
6
- }
7
- export function getFullRenderingSettings(project) {
8
- return {
9
- ...project.settings.shared,
10
- ...project.settings.rendering,
11
- };
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHAvcHJvamVjdC1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLE9BQWdCO0lBRWhCLE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtRQUMxQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTztLQUM1QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsT0FBZ0I7SUFFaEIsT0FBTztRQUNMLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO1FBQzFCLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO0tBQzlCLENBQUM7QUFDSixDQUFDIn0=
@@ -1,2 +0,0 @@
1
- export declare function decorate(fn: Callback, ...decorators: MethodDecorator[]): void;
2
- //# sourceMappingURL=decorate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorate.d.ts","sourceRoot":"","sources":["../../src/decorators/decorate.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,eAAe,EAAE,QAQtE"}
@@ -1,10 +0,0 @@
1
- export function decorate(fn, ...decorators) {
2
- const target = { [fn.name]: fn };
3
- const descriptor = Object.getOwnPropertyDescriptor(target, fn.name);
4
- if (descriptor) {
5
- for (let i = decorators.length - 1; i >= 0; i--) {
6
- decorators[i](target, fn.name, descriptor);
7
- }
8
- }
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9ycy9kZWNvcmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLEVBQVksRUFBRSxHQUFHLFVBQTZCO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLEVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDL0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEUsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hELFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Create a deprecated decorator that marks methods as deprecated.
3
- */
4
- export declare function deprecated(remarks?: string): MethodDecorator;
5
- //# sourceMappingURL=deprecated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deprecated.d.ts","sourceRoot":"","sources":["../../src/decorators/deprecated.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,CAuB5D"}