@twick/core 0.14.17 → 0.14.19

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 (373) hide show
  1. package/LICENSE +21 -21
  2. package/package.json +2 -2
  3. package/project.d.ts +24 -24
  4. package/shaders/common.glsl +14 -14
  5. package/shaders/fragment.glsl +7 -7
  6. package/tsconfig.project.json +14 -14
  7. package/lib/app/Logger.d.ts +0 -105
  8. package/lib/app/Logger.d.ts.map +0 -1
  9. package/lib/app/Logger.js +0 -77
  10. package/lib/app/PlaybackManager.d.ts +0 -55
  11. package/lib/app/PlaybackManager.d.ts.map +0 -1
  12. package/lib/app/PlaybackManager.js +0 -179
  13. package/lib/app/PlaybackStatus.d.ts +0 -30
  14. package/lib/app/PlaybackStatus.d.ts.map +0 -1
  15. package/lib/app/PlaybackStatus.js +0 -46
  16. package/lib/app/Player.d.ts +0 -130
  17. package/lib/app/Player.d.ts.map +0 -1
  18. package/lib/app/Player.js +0 -375
  19. package/lib/app/Project.d.ts +0 -145
  20. package/lib/app/Project.d.ts.map +0 -1
  21. package/lib/app/Project.js +0 -10
  22. package/lib/app/Renderer.d.ts +0 -90
  23. package/lib/app/Renderer.d.ts.map +0 -1
  24. package/lib/app/Renderer.js +0 -318
  25. package/lib/app/SharedWebGLContext.d.ts +0 -24
  26. package/lib/app/SharedWebGLContext.d.ts.map +0 -1
  27. package/lib/app/SharedWebGLContext.js +0 -200
  28. package/lib/app/Stage.d.ts +0 -30
  29. package/lib/app/Stage.d.ts.map +0 -1
  30. package/lib/app/Stage.js +0 -75
  31. package/lib/app/TimeEstimator.d.ts +0 -53
  32. package/lib/app/TimeEstimator.d.ts.map +0 -1
  33. package/lib/app/TimeEstimator.js +0 -70
  34. package/lib/app/index.d.ts +0 -16
  35. package/lib/app/index.d.ts.map +0 -1
  36. package/lib/app/index.js +0 -16
  37. package/lib/app/makeProject.d.ts +0 -15
  38. package/lib/app/makeProject.d.ts.map +0 -1
  39. package/lib/app/makeProject.js +0 -72
  40. package/lib/app/project-settings.d.ts +0 -8
  41. package/lib/app/project-settings.d.ts.map +0 -1
  42. package/lib/app/project-settings.js +0 -13
  43. package/lib/decorators/decorate.d.ts +0 -2
  44. package/lib/decorators/decorate.d.ts.map +0 -1
  45. package/lib/decorators/decorate.js +0 -10
  46. package/lib/decorators/deprecated.d.ts +0 -5
  47. package/lib/decorators/deprecated.d.ts.map +0 -1
  48. package/lib/decorators/deprecated.js +0 -23
  49. package/lib/decorators/index.d.ts +0 -9
  50. package/lib/decorators/index.d.ts.map +0 -1
  51. package/lib/decorators/index.js +0 -9
  52. package/lib/decorators/lazy.d.ts +0 -14
  53. package/lib/decorators/lazy.d.ts.map +0 -1
  54. package/lib/decorators/lazy.js +0 -27
  55. package/lib/decorators/threadable.d.ts +0 -2
  56. package/lib/decorators/threadable.d.ts.map +0 -1
  57. package/lib/decorators/threadable.js +0 -7
  58. package/lib/events/AsyncEventDispatcher.d.ts +0 -45
  59. package/lib/events/AsyncEventDispatcher.d.ts.map +0 -1
  60. package/lib/events/AsyncEventDispatcher.js +0 -33
  61. package/lib/events/EventDispatcher.d.ts +0 -38
  62. package/lib/events/EventDispatcher.d.ts.map +0 -1
  63. package/lib/events/EventDispatcher.js +0 -29
  64. package/lib/events/EventDispatcherBase.d.ts +0 -55
  65. package/lib/events/EventDispatcherBase.d.ts.map +0 -1
  66. package/lib/events/EventDispatcherBase.js +0 -68
  67. package/lib/events/FlagDispatcher.d.ts +0 -54
  68. package/lib/events/FlagDispatcher.d.ts.map +0 -1
  69. package/lib/events/FlagDispatcher.js +0 -63
  70. package/lib/events/ValueDispatcher.d.ts +0 -81
  71. package/lib/events/ValueDispatcher.d.ts.map +0 -1
  72. package/lib/events/ValueDispatcher.js +0 -97
  73. package/lib/events/index.d.ts +0 -11
  74. package/lib/events/index.d.ts.map +0 -1
  75. package/lib/events/index.js +0 -11
  76. package/lib/exporter/Exporter.d.ts +0 -101
  77. package/lib/exporter/Exporter.d.ts.map +0 -1
  78. package/lib/exporter/Exporter.js +0 -2
  79. package/lib/exporter/FFmpegExporter.d.ts +0 -50
  80. package/lib/exporter/FFmpegExporter.d.ts.map +0 -1
  81. package/lib/exporter/FFmpegExporter.js +0 -140
  82. package/lib/exporter/ImageExporter.d.ts +0 -34
  83. package/lib/exporter/ImageExporter.d.ts.map +0 -1
  84. package/lib/exporter/ImageExporter.js +0 -80
  85. package/lib/exporter/WasmExporter.d.ts +0 -19
  86. package/lib/exporter/WasmExporter.d.ts.map +0 -1
  87. package/lib/exporter/WasmExporter.js +0 -78
  88. package/lib/exporter/download-videos.d.ts +0 -3
  89. package/lib/exporter/download-videos.d.ts.map +0 -1
  90. package/lib/exporter/download-videos.js +0 -45
  91. package/lib/exporter/index.d.ts +0 -5
  92. package/lib/exporter/index.d.ts.map +0 -1
  93. package/lib/exporter/index.js +0 -5
  94. package/lib/flow/all.d.ts +0 -18
  95. package/lib/flow/all.d.ts.map +0 -1
  96. package/lib/flow/all.js +0 -25
  97. package/lib/flow/any.d.ts +0 -18
  98. package/lib/flow/any.d.ts.map +0 -1
  99. package/lib/flow/any.js +0 -25
  100. package/lib/flow/chain.d.ts +0 -36
  101. package/lib/flow/chain.d.ts.map +0 -1
  102. package/lib/flow/chain.js +0 -46
  103. package/lib/flow/delay.d.ts +0 -29
  104. package/lib/flow/delay.d.ts.map +0 -1
  105. package/lib/flow/delay.js +0 -39
  106. package/lib/flow/every.d.ts +0 -41
  107. package/lib/flow/every.d.ts.map +0 -1
  108. package/lib/flow/every.js +0 -61
  109. package/lib/flow/index.d.ts +0 -17
  110. package/lib/flow/index.d.ts.map +0 -1
  111. package/lib/flow/index.js +0 -17
  112. package/lib/flow/join.d.ts +0 -35
  113. package/lib/flow/join.d.ts.map +0 -1
  114. package/lib/flow/join.js +0 -33
  115. package/lib/flow/loop.d.ts +0 -58
  116. package/lib/flow/loop.d.ts.map +0 -1
  117. package/lib/flow/loop.js +0 -51
  118. package/lib/flow/loopFor.d.ts +0 -25
  119. package/lib/flow/loopFor.d.ts.map +0 -1
  120. package/lib/flow/loopFor.js +0 -42
  121. package/lib/flow/names.d.ts +0 -3
  122. package/lib/flow/names.d.ts.map +0 -1
  123. package/lib/flow/names.js +0 -11
  124. package/lib/flow/run.d.ts +0 -45
  125. package/lib/flow/run.d.ts.map +0 -1
  126. package/lib/flow/run.js +0 -14
  127. package/lib/flow/scheduling.d.ts +0 -18
  128. package/lib/flow/scheduling.d.ts.map +0 -1
  129. package/lib/flow/scheduling.js +0 -33
  130. package/lib/flow/sequence.d.ts +0 -22
  131. package/lib/flow/sequence.d.ts.map +0 -1
  132. package/lib/flow/sequence.js +0 -31
  133. package/lib/index.d.ts +0 -16
  134. package/lib/index.d.ts.map +0 -1
  135. package/lib/index.js +0 -16
  136. package/lib/media/index.d.ts +0 -7
  137. package/lib/media/index.d.ts.map +0 -1
  138. package/lib/media/index.js +0 -7
  139. package/lib/media/loadImage.d.ts +0 -8
  140. package/lib/media/loadImage.d.ts.map +0 -1
  141. package/lib/media/loadImage.js +0 -29
  142. package/lib/plugin/DefaultPlugin.d.ts +0 -10
  143. package/lib/plugin/DefaultPlugin.d.ts.map +0 -1
  144. package/lib/plugin/DefaultPlugin.js +0 -17
  145. package/lib/plugin/Plugin.d.ts +0 -53
  146. package/lib/plugin/Plugin.d.ts.map +0 -1
  147. package/lib/plugin/Plugin.js +0 -2
  148. package/lib/plugin/index.d.ts +0 -3
  149. package/lib/plugin/index.d.ts.map +0 -1
  150. package/lib/plugin/index.js +0 -3
  151. package/lib/plugin/makePlugin.d.ts +0 -15
  152. package/lib/plugin/makePlugin.d.ts.map +0 -1
  153. package/lib/plugin/makePlugin.js +0 -16
  154. package/lib/scenes/GeneratorScene.d.ts +0 -95
  155. package/lib/scenes/GeneratorScene.d.ts.map +0 -1
  156. package/lib/scenes/GeneratorScene.js +0 -273
  157. package/lib/scenes/Inspectable.d.ts +0 -71
  158. package/lib/scenes/Inspectable.d.ts.map +0 -1
  159. package/lib/scenes/Inspectable.js +0 -4
  160. package/lib/scenes/LifecycleEvents.d.ts +0 -18
  161. package/lib/scenes/LifecycleEvents.d.ts.map +0 -1
  162. package/lib/scenes/LifecycleEvents.js +0 -45
  163. package/lib/scenes/Random.d.ts +0 -66
  164. package/lib/scenes/Random.d.ts.map +0 -1
  165. package/lib/scenes/Random.js +0 -101
  166. package/lib/scenes/Scene.d.ts +0 -298
  167. package/lib/scenes/Scene.d.ts.map +0 -1
  168. package/lib/scenes/Scene.js +0 -25
  169. package/lib/scenes/SceneState.d.ts +0 -34
  170. package/lib/scenes/SceneState.d.ts.map +0 -1
  171. package/lib/scenes/SceneState.js +0 -35
  172. package/lib/scenes/Shaders.d.ts +0 -63
  173. package/lib/scenes/Shaders.d.ts.map +0 -1
  174. package/lib/scenes/Shaders.js +0 -158
  175. package/lib/scenes/Slides.d.ts +0 -33
  176. package/lib/scenes/Slides.d.ts.map +0 -1
  177. package/lib/scenes/Slides.js +0 -115
  178. package/lib/scenes/Threadable.d.ts +0 -19
  179. package/lib/scenes/Threadable.d.ts.map +0 -1
  180. package/lib/scenes/Threadable.js +0 -4
  181. package/lib/scenes/Variables.d.ts +0 -24
  182. package/lib/scenes/Variables.d.ts.map +0 -1
  183. package/lib/scenes/Variables.js +0 -39
  184. package/lib/scenes/index.d.ts +0 -16
  185. package/lib/scenes/index.d.ts.map +0 -1
  186. package/lib/scenes/index.js +0 -16
  187. package/lib/signals/CompoundSignalContext.d.ts +0 -21
  188. package/lib/signals/CompoundSignalContext.d.ts.map +0 -1
  189. package/lib/signals/CompoundSignalContext.js +0 -73
  190. package/lib/signals/ComputedContext.d.ts +0 -14
  191. package/lib/signals/ComputedContext.d.ts.map +0 -1
  192. package/lib/signals/ComputedContext.js +0 -36
  193. package/lib/signals/DependencyContext.d.ts +0 -32
  194. package/lib/signals/DependencyContext.d.ts.map +0 -1
  195. package/lib/signals/DependencyContext.js +0 -87
  196. package/lib/signals/SignalContext.d.ts +0 -120
  197. package/lib/signals/SignalContext.d.ts.map +0 -1
  198. package/lib/signals/SignalContext.js +0 -245
  199. package/lib/signals/createComputed.d.ts +0 -3
  200. package/lib/signals/createComputed.d.ts.map +0 -1
  201. package/lib/signals/createComputed.js +0 -5
  202. package/lib/signals/createComputedAsync.d.ts +0 -4
  203. package/lib/signals/createComputedAsync.d.ts.map +0 -1
  204. package/lib/signals/createComputedAsync.js +0 -15
  205. package/lib/signals/createSignal.d.ts +0 -5
  206. package/lib/signals/createSignal.d.ts.map +0 -1
  207. package/lib/signals/createSignal.js +0 -6
  208. package/lib/signals/index.d.ts +0 -16
  209. package/lib/signals/index.d.ts.map +0 -1
  210. package/lib/signals/index.js +0 -16
  211. package/lib/signals/symbols.d.ts +0 -2
  212. package/lib/signals/symbols.d.ts.map +0 -1
  213. package/lib/signals/symbols.js +0 -2
  214. package/lib/signals/types.d.ts +0 -51
  215. package/lib/signals/types.d.ts.map +0 -1
  216. package/lib/signals/types.js +0 -2
  217. package/lib/signals/utils.d.ts +0 -5
  218. package/lib/signals/utils.d.ts.map +0 -1
  219. package/lib/signals/utils.js +0 -10
  220. package/lib/threading/Thread.d.ts +0 -77
  221. package/lib/threading/Thread.d.ts.map +0 -1
  222. package/lib/threading/Thread.js +0 -169
  223. package/lib/threading/ThreadGenerator.d.ts +0 -39
  224. package/lib/threading/ThreadGenerator.d.ts.map +0 -1
  225. package/lib/threading/ThreadGenerator.js +0 -17
  226. package/lib/threading/cancel.d.ts +0 -17
  227. package/lib/threading/cancel.d.ts.map +0 -1
  228. package/lib/threading/cancel.js +0 -26
  229. package/lib/threading/index.d.ts +0 -11
  230. package/lib/threading/index.d.ts.map +0 -1
  231. package/lib/threading/index.js +0 -11
  232. package/lib/threading/spawn.d.ts +0 -28
  233. package/lib/threading/spawn.d.ts.map +0 -1
  234. package/lib/threading/spawn.js +0 -30
  235. package/lib/threading/threads.d.ts +0 -46
  236. package/lib/threading/threads.d.ts.map +0 -1
  237. package/lib/threading/threads.js +0 -89
  238. package/lib/transitions/fadeTransition.d.ts +0 -8
  239. package/lib/transitions/fadeTransition.d.ts.map +0 -1
  240. package/lib/transitions/fadeTransition.js +0 -16
  241. package/lib/transitions/index.d.ts +0 -11
  242. package/lib/transitions/index.d.ts.map +0 -1
  243. package/lib/transitions/index.js +0 -11
  244. package/lib/transitions/slideTransition.d.ts +0 -18
  245. package/lib/transitions/slideTransition.d.ts.map +0 -1
  246. package/lib/transitions/slideTransition.js +0 -14
  247. package/lib/transitions/useTransition.d.ts +0 -10
  248. package/lib/transitions/useTransition.d.ts.map +0 -1
  249. package/lib/transitions/useTransition.js +0 -27
  250. package/lib/transitions/zoomInTransition.d.ts +0 -10
  251. package/lib/transitions/zoomInTransition.d.ts.map +0 -1
  252. package/lib/transitions/zoomInTransition.js +0 -33
  253. package/lib/transitions/zoomOutTransition.d.ts +0 -10
  254. package/lib/transitions/zoomOutTransition.d.ts.map +0 -1
  255. package/lib/transitions/zoomOutTransition.js +0 -33
  256. package/lib/tsconfig.build.tsbuildinfo +0 -1
  257. package/lib/tweening/helpers.d.ts +0 -5
  258. package/lib/tweening/helpers.d.ts.map +0 -1
  259. package/lib/tweening/helpers.js +0 -16
  260. package/lib/tweening/index.d.ts +0 -11
  261. package/lib/tweening/index.d.ts.map +0 -1
  262. package/lib/tweening/index.js +0 -11
  263. package/lib/tweening/interpolationFunctions.d.ts +0 -38
  264. package/lib/tweening/interpolationFunctions.d.ts.map +0 -1
  265. package/lib/tweening/interpolationFunctions.js +0 -107
  266. package/lib/tweening/spring.d.ts +0 -20
  267. package/lib/tweening/spring.d.ts.map +0 -1
  268. package/lib/tweening/spring.js +0 -103
  269. package/lib/tweening/timingFunctions.d.ts +0 -46
  270. package/lib/tweening/timingFunctions.d.ts.map +0 -1
  271. package/lib/tweening/timingFunctions.js +0 -233
  272. package/lib/tweening/tween.d.ts +0 -3
  273. package/lib/tweening/tween.d.ts.map +0 -1
  274. package/lib/tweening/tween.js +0 -21
  275. package/lib/types/BBox.d.ts +0 -73
  276. package/lib/types/BBox.d.ts.map +0 -1
  277. package/lib/types/BBox.js +0 -249
  278. package/lib/types/Canvas.d.ts +0 -3
  279. package/lib/types/Canvas.d.ts.map +0 -1
  280. package/lib/types/Canvas.js +0 -2
  281. package/lib/types/Color.d.ts +0 -65
  282. package/lib/types/Color.d.ts.map +0 -1
  283. package/lib/types/Color.js +0 -185
  284. package/lib/types/Matrix.d.ts +0 -3
  285. package/lib/types/Matrix.d.ts.map +0 -1
  286. package/lib/types/Matrix.js +0 -10
  287. package/lib/types/Matrix2D.d.ts +0 -363
  288. package/lib/types/Matrix2D.d.ts.map +0 -1
  289. package/lib/types/Matrix2D.js +0 -554
  290. package/lib/types/Origin.d.ts +0 -17
  291. package/lib/types/Origin.d.ts.map +0 -1
  292. package/lib/types/Origin.js +0 -53
  293. package/lib/types/Spacing.d.ts +0 -36
  294. package/lib/types/Spacing.d.ts.map +0 -1
  295. package/lib/types/Spacing.js +0 -70
  296. package/lib/types/Type.d.ts +0 -9
  297. package/lib/types/Type.d.ts.map +0 -1
  298. package/lib/types/Type.js +0 -5
  299. package/lib/types/Vector.d.ts +0 -203
  300. package/lib/types/Vector.d.ts.map +0 -1
  301. package/lib/types/Vector.js +0 -355
  302. package/lib/types/alignment-enums.d.ts +0 -22
  303. package/lib/types/alignment-enums.d.ts.map +0 -1
  304. package/lib/types/alignment-enums.js +0 -25
  305. package/lib/types/index.d.ts +0 -17
  306. package/lib/types/index.d.ts.map +0 -1
  307. package/lib/types/index.js +0 -17
  308. package/lib/types/vector-transformations.d.ts +0 -20
  309. package/lib/types/vector-transformations.d.ts.map +0 -1
  310. package/lib/types/vector-transformations.js +0 -31
  311. package/lib/utils/DetailedError.d.ts +0 -24
  312. package/lib/utils/DetailedError.d.ts.map +0 -1
  313. package/lib/utils/DetailedError.js +0 -16
  314. package/lib/utils/ExperimentalError.d.ts +0 -10
  315. package/lib/utils/ExperimentalError.d.ts.map +0 -1
  316. package/lib/utils/ExperimentalError.js +0 -32
  317. package/lib/utils/Semaphore.d.ts +0 -12
  318. package/lib/utils/Semaphore.d.ts.map +0 -1
  319. package/lib/utils/Semaphore.js +0 -25
  320. package/lib/utils/beginSlide.d.ts +0 -3
  321. package/lib/utils/beginSlide.d.ts.map +0 -1
  322. package/lib/utils/beginSlide.js +0 -12
  323. package/lib/utils/capitalize.d.ts +0 -2
  324. package/lib/utils/capitalize.d.ts.map +0 -1
  325. package/lib/utils/capitalize.js +0 -4
  326. package/lib/utils/createRef.d.ts +0 -15
  327. package/lib/utils/createRef.d.ts.map +0 -1
  328. package/lib/utils/createRef.js +0 -21
  329. package/lib/utils/createRefArray.d.ts +0 -27
  330. package/lib/utils/createRefArray.d.ts.map +0 -1
  331. package/lib/utils/createRefArray.js +0 -49
  332. package/lib/utils/createRefMap.d.ts +0 -50
  333. package/lib/utils/createRefMap.d.ts.map +0 -1
  334. package/lib/utils/createRefMap.js +0 -77
  335. package/lib/utils/debug.d.ts +0 -24
  336. package/lib/utils/debug.d.ts.map +0 -1
  337. package/lib/utils/debug.js +0 -47
  338. package/lib/utils/deprecate.d.ts +0 -9
  339. package/lib/utils/deprecate.d.ts.map +0 -1
  340. package/lib/utils/deprecate.js +0 -15
  341. package/lib/utils/errorToLog.d.ts +0 -3
  342. package/lib/utils/errorToLog.d.ts.map +0 -1
  343. package/lib/utils/errorToLog.js +0 -8
  344. package/lib/utils/experimentalLog.d.ts +0 -3
  345. package/lib/utils/experimentalLog.d.ts.map +0 -1
  346. package/lib/utils/experimentalLog.js +0 -10
  347. package/lib/utils/getContext.d.ts +0 -2
  348. package/lib/utils/getContext.d.ts.map +0 -1
  349. package/lib/utils/getContext.js +0 -8
  350. package/lib/utils/index.d.ts +0 -26
  351. package/lib/utils/index.d.ts.map +0 -1
  352. package/lib/utils/index.js +0 -26
  353. package/lib/utils/math.d.ts +0 -15
  354. package/lib/utils/math.d.ts.map +0 -1
  355. package/lib/utils/math.js +0 -15
  356. package/lib/utils/range.d.ts +0 -40
  357. package/lib/utils/range.d.ts.map +0 -1
  358. package/lib/utils/range.js +0 -18
  359. package/lib/utils/useContext.d.ts +0 -13
  360. package/lib/utils/useContext.d.ts.map +0 -1
  361. package/lib/utils/useContext.js +0 -18
  362. package/lib/utils/usePlayback.d.ts +0 -8
  363. package/lib/utils/usePlayback.d.ts.map +0 -1
  364. package/lib/utils/usePlayback.js +0 -20
  365. package/lib/utils/useScene.d.ts +0 -17
  366. package/lib/utils/useScene.d.ts.map +0 -1
  367. package/lib/utils/useScene.js +0 -33
  368. package/lib/utils/useThread.d.ts +0 -8
  369. package/lib/utils/useThread.d.ts.map +0 -1
  370. package/lib/utils/useThread.js +0 -24
  371. package/lib/utils/useTime.d.ts +0 -19
  372. package/lib/utils/useTime.d.ts.map +0 -1
  373. package/lib/utils/useTime.js +0 -22
@@ -1,145 +0,0 @@
1
- import type { FfmpegExporterOptions, ImageExporterOptions } from '../exporter';
2
- import type { Plugin } from '../plugin';
3
- import type { SceneDescription } from '../scenes';
4
- import type { CanvasColorSpace, Color, Vector2 } from '../types';
5
- import type { Logger } from './Logger';
6
- export interface Versions {
7
- core: string;
8
- two: string | null;
9
- ui: string | null;
10
- vitePlugin: string | null;
11
- }
12
- export declare function createVersionObject(version: string): {
13
- core: string;
14
- two: string;
15
- ui: string;
16
- vitePlugin: string;
17
- };
18
- export type ExporterSettings = {
19
- name: '@twick/core/image-sequence';
20
- options: ImageExporterOptions;
21
- } | {
22
- name: '@twick/core/ffmpeg';
23
- options: FfmpegExporterOptions;
24
- } | {
25
- name: '@twick/core/wasm';
26
- };
27
- export interface ProjectSettings {
28
- shared: {
29
- background: Color;
30
- range: [number, number];
31
- size: Vector2;
32
- };
33
- rendering: {
34
- exporter: ExporterSettings;
35
- fps: number;
36
- resolutionScale: number;
37
- colorSpace: CanvasColorSpace;
38
- };
39
- preview: {
40
- fps: number;
41
- resolutionScale: number;
42
- };
43
- }
44
- export interface UserProjectSettings {
45
- shared: {
46
- range: [number, number];
47
- background: string | null;
48
- size: {
49
- x: number;
50
- y: number;
51
- };
52
- };
53
- rendering: {
54
- exporter: ExporterSettings;
55
- fps: number;
56
- resolutionScale: number;
57
- colorSpace: CanvasColorSpace;
58
- };
59
- preview: {
60
- fps: number;
61
- resolutionScale: number;
62
- };
63
- }
64
- /**
65
- * Settings that can be passed to the renderVideo / renderPartialVideo functions
66
- */
67
- export type RenderVideoUserProjectSettings = {
68
- range?: UserProjectSettings['shared']['range'];
69
- background?: UserProjectSettings['shared']['background'];
70
- size?: UserProjectSettings['shared']['size'];
71
- exporter?: UserProjectSettings['rendering']['exporter'];
72
- };
73
- /**
74
- * Settings that can be passed to the createProject function
75
- */
76
- export type PartialUserProjectSettings = {
77
- shared?: Partial<UserProjectSettings['shared']>;
78
- rendering?: Partial<UserProjectSettings['rendering']>;
79
- preview?: Partial<UserProjectSettings['preview']>;
80
- };
81
- export interface UserProject {
82
- /**
83
- * The name of the project.
84
- */
85
- name?: string;
86
- /**
87
- * A list of scene descriptions that make up the project.
88
- */
89
- scenes: SceneDescription<any>[];
90
- /**
91
- * Default values for project variables.
92
- *
93
- * @see https://motioncanvas.io/docs/project-variables
94
- */
95
- variables?: Record<string, unknown>;
96
- /**
97
- * Enable experimental features.
98
- *
99
- * @see https://motioncanvas.io/docs/experimental
100
- *
101
- * @experimental
102
- */
103
- experimentalFeatures?: boolean;
104
- /**
105
- * Settings for the project. This includes shared settings, rendering settings
106
- * and preview settings.
107
- *
108
- * Includes things like the background color, the resolution, the frame rate,
109
- * and the exporter to use.
110
- */
111
- settings?: PartialUserProjectSettings;
112
- }
113
- /**
114
- * Internal project that includes legacy properties that can't be changed by the user
115
- * as well as defaulted properties in case the user didn't provide them.
116
- */
117
- export interface Project extends Omit<UserProject, 'settings'> {
118
- name: string;
119
- settings: ProjectSettings;
120
- /**
121
- * @deprecated Not exposed in the public API. We set the exporters as plugins
122
- * which is why we can't delete this yet.
123
- *
124
- * // TODO(konsti): get rid of plugins
125
- *
126
- * A list of plugins to include in the project.
127
- *
128
- * @remarks
129
- * When a string is provided, the plugin will be imported dynamically using
130
- * the string as the module specifier. This is the preferred way to include
131
- * editor plugins because it makes sure that the plugin's source code gets
132
- * excluded from the production build.
133
- */
134
- plugins: Plugin[];
135
- /**
136
- * Not exposed in the public API.
137
- */
138
- logger: Logger;
139
- /**
140
- * Manually set via a constant. This should be automated by reading the
141
- * package.json files of the packages.
142
- */
143
- versions: Versions;
144
- }
145
- //# sourceMappingURL=Project.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../src/app/Project.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- // TODO(refactor): check if we can get rid of this
2
- export function createVersionObject(version) {
3
- return {
4
- core: version,
5
- two: version,
6
- ui: version,
7
- vitePlugin: version,
8
- };
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHAvUHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxrREFBa0Q7QUFDbEQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE9BQWU7SUFDakQsT0FBTztRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsR0FBRyxFQUFFLE9BQU87UUFDWixFQUFFLEVBQUUsT0FBTztRQUNYLFVBQVUsRUFBRSxPQUFPO0tBQ3BCLENBQUM7QUFDSixDQUFDIn0=
@@ -1,90 +0,0 @@
1
- import type { ExporterSettings, Project } from './Project';
2
- import type { StageSettings } from './Stage';
3
- import { Stage } from './Stage';
4
- import { TimeEstimator } from './TimeEstimator';
5
- export interface RendererSettings extends StageSettings {
6
- name: string;
7
- range: [number, number];
8
- fps: number;
9
- exporter: ExporterSettings;
10
- hiddenFolderId?: string;
11
- }
12
- export interface AssetInfo {
13
- key: string;
14
- type: 'video' | 'audio';
15
- src: string;
16
- playbackRate: number;
17
- volume: number;
18
- currentTime: number;
19
- duration: number;
20
- decoder?: string | null;
21
- }
22
- export declare enum RendererState {
23
- Initial = 0,
24
- Working = 1,
25
- Aborting = 2
26
- }
27
- export declare enum RendererResult {
28
- Success = 0,
29
- Error = 1,
30
- Aborted = 2
31
- }
32
- /**
33
- * The rendering logic used by the editor to export animations.
34
- *
35
- * @remarks
36
- * This class uses the `PlaybackManager` to render animations. In contrast to a
37
- * player, a renderer does not use an update loop. It plays through the
38
- * animation as fast as it can, occasionally pausing to keep the UI responsive.
39
- *
40
- * The actual exporting is outsourced to an Exporter.
41
- */
42
- export declare class Renderer {
43
- private project;
44
- get onStateChanged(): import("../events").SubscribableValueEvent<RendererState>;
45
- private readonly state;
46
- get onFinished(): import("../events").Subscribable<RendererResult, import("../events").EventHandler<RendererResult>>;
47
- private readonly finished;
48
- get onFrameChanged(): import("../events").SubscribableValueEvent<number>;
49
- private readonly frame;
50
- readonly stage: Stage;
51
- readonly estimator: TimeEstimator;
52
- private readonly lock;
53
- private readonly playback;
54
- private readonly status;
55
- private readonly sharedWebGLContext;
56
- private exporter;
57
- private abortController;
58
- constructor(project: Project);
59
- /**
60
- * Returns number of frames that a project will have.
61
- */
62
- getNumberOfFrames(settings: RendererSettings): Promise<number>;
63
- frameToTime(frame: number): number;
64
- timeToFrame(second: number): number;
65
- /**
66
- * Render the animation using the provided settings.
67
- *
68
- * @param settings - The rendering settings.
69
- */
70
- render(settings: RendererSettings): Promise<void>;
71
- /**
72
- * Abort the ongoing render process.
73
- */
74
- abort(): void;
75
- /**
76
- * Export an individual frame.
77
- *
78
- * @remarks
79
- * This method always uses the default `ImageExporter`.
80
- *
81
- * @param settings - The rendering settings.
82
- * @param time - The timestamp to export.
83
- */
84
- renderFrame(settings: RendererSettings, time: number): Promise<void>;
85
- private run;
86
- private reloadScenes;
87
- private exportFrame;
88
- private getMediaByFrames;
89
- }
90
- //# sourceMappingURL=Renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../src/app/Renderer.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAC,gBAAgB,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,oBAAY,aAAa;IACvB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,QAAQ,IAAA;CACT;AAED,oBAAY,cAAc;IACxB,OAAO,IAAA;IACP,KAAK,IAAA;IACL,OAAO,IAAA;CACR;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAQ;IA0BA,OAAO,CAAC,OAAO;IAzBlC,IAAW,cAAc,8DAExB;IACD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8C;IAEpE,IAAW,UAAU,uGAEpB;IACD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;IAElE,IAAW,cAAc,uDAExB;IACD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,SAAgB,KAAK,QAAe;IACpC,SAAgB,SAAS,gBAAuB;IAEhD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,eAAe,CAAgC;gBAE5B,OAAO,EAAE,OAAO;IAqB3C;;OAEG;IACU,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB;IAkBlD,WAAW,CAAC,KAAK,EAAE,MAAM;IAIzB,WAAW,CAAC,MAAM,EAAE,MAAM;IAIjC;;;;OAIG;IACU,MAAM,CAAC,QAAQ,EAAE,gBAAgB;IA8B9C;;OAEG;IACI,KAAK;IAMZ;;;;;;;;OAQG;IACU,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;YAgCnD,GAAG;YAkIH,YAAY;YAWZ,WAAW;YAmBX,gBAAgB;CAqC/B"}
@@ -1,318 +0,0 @@
1
- import { EventDispatcher, ValueDispatcher } from '../events';
2
- import { FFmpegExporterClient, ImageExporter, WasmExporter, } from '../exporter';
3
- import { clampRemap } from '../tweening';
4
- import { Vector2 } from '../types';
5
- import { Semaphore } from '../utils';
6
- import { PlaybackManager, PlaybackState } from './PlaybackManager';
7
- import { PlaybackStatus } from './PlaybackStatus';
8
- import { SharedWebGLContext } from './SharedWebGLContext';
9
- import { Stage } from './Stage';
10
- import { TimeEstimator } from './TimeEstimator';
11
- export var RendererState;
12
- (function (RendererState) {
13
- RendererState[RendererState["Initial"] = 0] = "Initial";
14
- RendererState[RendererState["Working"] = 1] = "Working";
15
- RendererState[RendererState["Aborting"] = 2] = "Aborting";
16
- })(RendererState || (RendererState = {}));
17
- export var RendererResult;
18
- (function (RendererResult) {
19
- RendererResult[RendererResult["Success"] = 0] = "Success";
20
- RendererResult[RendererResult["Error"] = 1] = "Error";
21
- RendererResult[RendererResult["Aborted"] = 2] = "Aborted";
22
- })(RendererResult || (RendererResult = {}));
23
- /**
24
- * The rendering logic used by the editor to export animations.
25
- *
26
- * @remarks
27
- * This class uses the `PlaybackManager` to render animations. In contrast to a
28
- * player, a renderer does not use an update loop. It plays through the
29
- * animation as fast as it can, occasionally pausing to keep the UI responsive.
30
- *
31
- * The actual exporting is outsourced to an Exporter.
32
- */
33
- export class Renderer {
34
- get onStateChanged() {
35
- return this.state.subscribable;
36
- }
37
- get onFinished() {
38
- return this.finished.subscribable;
39
- }
40
- get onFrameChanged() {
41
- return this.frame.subscribable;
42
- }
43
- constructor(project) {
44
- this.project = project;
45
- this.state = new ValueDispatcher(RendererState.Initial);
46
- this.finished = new EventDispatcher();
47
- this.frame = new ValueDispatcher(0);
48
- this.stage = new Stage();
49
- this.estimator = new TimeEstimator();
50
- this.lock = new Semaphore();
51
- this.exporter = null;
52
- this.abortController = null;
53
- this.playback = new PlaybackManager();
54
- this.status = new PlaybackStatus(this.playback);
55
- this.sharedWebGLContext = new SharedWebGLContext(this.project.logger);
56
- const scenes = [];
57
- for (const description of project.scenes) {
58
- const scene = new description.klass({
59
- ...description,
60
- playback: this.status,
61
- logger: this.project.logger,
62
- size: new Vector2(1920, 1080),
63
- resolutionScale: 1,
64
- sharedWebGLContext: this.sharedWebGLContext,
65
- experimentalFeatures: project.experimentalFeatures,
66
- });
67
- scenes.push(scene);
68
- }
69
- this.playback.setup(scenes);
70
- }
71
- /**
72
- * Returns number of frames that a project will have.
73
- */
74
- async getNumberOfFrames(settings) {
75
- await this.lock.acquire();
76
- this.estimator.reset();
77
- this.state.current = RendererState.Working;
78
- await this.reloadScenes(settings);
79
- await this.playback.recalculate();
80
- await this.playback.reset();
81
- const frames = this.playback.duration;
82
- this.state.current = RendererState.Initial;
83
- this.sharedWebGLContext.dispose();
84
- this.lock.release();
85
- return frames;
86
- }
87
- frameToTime(frame) {
88
- return this.status.framesToSeconds(frame);
89
- }
90
- timeToFrame(second) {
91
- return this.status.secondsToFrames(second);
92
- }
93
- /**
94
- * Render the animation using the provided settings.
95
- *
96
- * @param settings - The rendering settings.
97
- */
98
- async render(settings) {
99
- if (this.state.current !== RendererState.Initial)
100
- return;
101
- await this.lock.acquire();
102
- this.estimator.reset();
103
- this.state.current = RendererState.Working;
104
- let result;
105
- try {
106
- this.abortController = new AbortController();
107
- result = await this.run(settings, this.abortController.signal);
108
- }
109
- catch (e) {
110
- this.project.logger.error(e);
111
- result = RendererResult.Error;
112
- if (this.exporter) {
113
- try {
114
- await this.exporter.stop?.(result);
115
- }
116
- catch (_) {
117
- throw Error(e.message);
118
- }
119
- this.exporter = null;
120
- throw Error(e.message);
121
- }
122
- }
123
- this.estimator.update(1);
124
- this.state.current = RendererState.Initial;
125
- this.finished.dispatch(result);
126
- this.sharedWebGLContext.dispose();
127
- this.lock.release();
128
- }
129
- /**
130
- * Abort the ongoing render process.
131
- */
132
- abort() {
133
- if (this.state.current !== RendererState.Working)
134
- return;
135
- this.abortController?.abort();
136
- this.state.current = RendererState.Aborting;
137
- }
138
- /**
139
- * Export an individual frame.
140
- *
141
- * @remarks
142
- * This method always uses the default `ImageExporter`.
143
- *
144
- * @param settings - The rendering settings.
145
- * @param time - The timestamp to export.
146
- */
147
- async renderFrame(settings, time) {
148
- await this.lock.acquire();
149
- try {
150
- const frame = this.status.secondsToFrames(time);
151
- this.stage.configure(settings);
152
- this.playback.fps = settings.fps;
153
- this.playback.state = PlaybackState.Rendering;
154
- await this.reloadScenes(settings);
155
- await this.playback.reset();
156
- await this.playback.seek(frame);
157
- await this.stage.render(this.playback.currentScene, this.playback.previousScene);
158
- if (import.meta.hot) {
159
- import.meta.hot.send('twick:export', {
160
- frame,
161
- data: this.stage.finalBuffer.toDataURL('image/png'),
162
- mimeType: 'image/png',
163
- subDirectories: ['still', this.project.name],
164
- });
165
- }
166
- }
167
- catch (e) {
168
- this.project.logger.error(e);
169
- }
170
- this.lock.release();
171
- }
172
- async run(settings, signal) {
173
- // Select exporter
174
- // TODO(refactor): check if i want to keep it this way
175
- const exporters = [
176
- FFmpegExporterClient,
177
- ImageExporter,
178
- WasmExporter,
179
- ];
180
- const exporterClass = exporters.find(exporter => exporter.id === settings.exporter.name);
181
- if (!exporterClass) {
182
- this.project.logger.error(`Could not find the "${settings.exporter.name}" exporter.`);
183
- return RendererResult.Error;
184
- }
185
- // Instantiate exporter
186
- this.exporter = await exporterClass.create(this.project, settings);
187
- if (this.exporter.configuration) {
188
- settings = {
189
- ...settings,
190
- ...((await this.exporter.configuration()) ?? {}),
191
- };
192
- }
193
- this.stage.configure(settings);
194
- this.playback.fps = settings.fps;
195
- this.playback.state = PlaybackState.Rendering;
196
- const from = this.status.secondsToFrames(settings.range[0]);
197
- this.frame.current = from;
198
- // Reset
199
- await this.reloadScenes(settings);
200
- await this.playback.recalculate();
201
- await this.playback.reset();
202
- const to = Math.min(this.playback.duration, this.status.secondsToFrames(settings.range[1]));
203
- await this.playback.seek(from);
204
- if (signal.aborted)
205
- return RendererResult.Aborted;
206
- await this.exporter.start?.();
207
- let lastRefresh = performance.now();
208
- let result = RendererResult.Success;
209
- const mediaByFrames = await this.getMediaByFrames(settings);
210
- // Start audio export
211
- let generateAudioPromise;
212
- if (this.exporter && this.exporter.generateAudio) {
213
- generateAudioPromise = this.exporter.generateAudio(mediaByFrames, from, to);
214
- }
215
- if (this.exporter && this.exporter.downloadVideos) {
216
- await this.exporter.downloadVideos(mediaByFrames);
217
- }
218
- // Main rendering loop
219
- await this.playback.seek(from);
220
- try {
221
- this.estimator.reset(1 / (to - from));
222
- await this.exportFrame(signal);
223
- this.estimator.update(clampRemap(from, to, 0, 1, this.playback.frame));
224
- this.estimator.reportProgress();
225
- if (signal.aborted) {
226
- result = RendererResult.Aborted;
227
- }
228
- else {
229
- let finished = false;
230
- while (!finished) {
231
- await this.playback.progress();
232
- await this.exportFrame(signal);
233
- this.estimator.update(clampRemap(from, to, 0, 1, this.playback.frame));
234
- this.estimator.reportProgress();
235
- if (performance.now() - lastRefresh > 1 / 30) {
236
- lastRefresh = performance.now();
237
- await new Promise(resolve => setTimeout(resolve, 0));
238
- }
239
- if (this.playback.finished || this.playback.frame >= to) {
240
- finished = true;
241
- }
242
- if (signal.aborted) {
243
- result = RendererResult.Aborted;
244
- finished = true;
245
- }
246
- }
247
- }
248
- }
249
- catch (e) {
250
- this.project.logger.error(e);
251
- result = RendererResult.Error;
252
- }
253
- await this.exporter.stop?.(result);
254
- // Only merge media when rendering images was actually successful.
255
- if (result === RendererResult.Success &&
256
- this.exporter &&
257
- this.exporter.mergeMedia &&
258
- generateAudioPromise) {
259
- try {
260
- await generateAudioPromise;
261
- await this.exporter.mergeMedia();
262
- }
263
- catch (e) {
264
- this.project.logger.error(e);
265
- result = RendererResult.Error;
266
- }
267
- }
268
- await this.exporter?.kill?.();
269
- this.exporter = null;
270
- return result;
271
- }
272
- async reloadScenes(settings) {
273
- for (let i = 0; i < this.project.scenes.length; i++) {
274
- const scene = this.playback.onScenesRecalculated.current[i];
275
- scene.reload({
276
- size: settings.size,
277
- resolutionScale: settings.resolutionScale,
278
- });
279
- scene.variables.updateSignals(this.project.variables ?? {});
280
- }
281
- }
282
- async exportFrame(signal) {
283
- this.frame.current = this.playback.frame;
284
- await this.stage.render(this.playback.currentScene, this.playback.previousScene);
285
- const sceneFrame = this.playback.frame - this.playback.currentScene.firstFrame;
286
- await this.exporter.handleFrame(this.stage.finalBuffer, this.playback.frame, sceneFrame, this.playback.currentScene.name, signal);
287
- }
288
- async getMediaByFrames(settings) {
289
- this.stage.configure(settings);
290
- this.playback.fps = settings.fps;
291
- this.playback.state = PlaybackState.Rendering;
292
- const from = this.status.secondsToFrames(settings.range[0]);
293
- this.frame.current = from;
294
- await this.reloadScenes(settings);
295
- await this.playback.recalculate();
296
- await this.playback.reset();
297
- const to = Math.min(this.playback.duration, this.status.secondsToFrames(settings.range[1]));
298
- await this.playback.seek(from);
299
- const mediaAssets = [];
300
- try {
301
- const currentMediaAssets = this.playback.currentScene.getMediaAssets();
302
- mediaAssets.push(currentMediaAssets);
303
- let finished = false;
304
- while (!finished) {
305
- await this.playback.progress();
306
- mediaAssets.push(this.playback.currentScene.getMediaAssets());
307
- if (this.playback.finished || this.playback.frame >= to) {
308
- finished = true;
309
- }
310
- }
311
- }
312
- catch (e) {
313
- this.project.logger.error(e);
314
- }
315
- return mediaAssets;
316
- }
317
- }
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwL1JlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsZUFBZSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRTNELE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFlBQVksR0FFYixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQXFCOUMsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN2Qix1REFBTyxDQUFBO0lBQ1AsdURBQU8sQ0FBQTtJQUNQLHlEQUFRLENBQUE7QUFDVixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLHlEQUFPLENBQUE7SUFDUCxxREFBSyxDQUFBO0lBQ0wseURBQU8sQ0FBQTtBQUNULENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxRQUFRO0lBQ25CLElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FB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
@@ -1,24 +0,0 @@
1
- import type { Logger } from './Logger';
2
- /**
3
- * @internal
4
- */
5
- export interface WebGLContextOwner {
6
- setup(gl: WebGL2RenderingContext): void;
7
- teardown(gl: WebGL2RenderingContext): void;
8
- }
9
- export declare class SharedWebGLContext {
10
- private readonly logger;
11
- private gl;
12
- private currentOwner;
13
- private readonly programLookup;
14
- constructor(logger: Logger);
15
- borrow(owner: WebGLContextOwner): WebGL2RenderingContext;
16
- /**
17
- * Dispose the WebGL context to free up resources.
18
- */
19
- dispose(): void;
20
- getProgram(fragment: string, vertex: string): WebGLProgram | null;
21
- private getShader;
22
- private getGL;
23
- }
24
- //# sourceMappingURL=SharedWebGLContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SharedWebGLContext.d.ts","sourceRoot":"","sources":["../../src/app/SharedWebGLContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAgCrC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC5C;AAQD,qBAAa,kBAAkB;IAKV,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ1C,OAAO,CAAC,EAAE,CAAuC;IACjD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;gBAEjC,MAAM,EAAE,MAAM;IAE3C,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,sBAAsB;IAW/D;;OAEG;IACI,OAAO;IAqBP,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAqCxE,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,KAAK;CA8Bd"}