@lightningjs/renderer 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +4 -0
  3. package/README.md +184 -0
  4. package/dist/exports/core-api.d.ts +73 -0
  5. package/dist/exports/core-api.js +95 -0
  6. package/dist/exports/core-api.js.map +1 -0
  7. package/dist/exports/main-api.d.ts +28 -0
  8. package/dist/exports/main-api.js +45 -0
  9. package/dist/exports/main-api.js.map +1 -0
  10. package/dist/exports/utils.d.ts +23 -0
  11. package/dist/exports/utils.js +42 -0
  12. package/dist/exports/utils.js.map +1 -0
  13. package/dist/src/common/CommonTypes.d.ts +38 -0
  14. package/dist/src/common/CommonTypes.js +20 -0
  15. package/dist/src/common/CommonTypes.js.map +1 -0
  16. package/dist/src/common/EventEmitter.d.ts +12 -0
  17. package/dist/src/common/EventEmitter.js +66 -0
  18. package/dist/src/common/EventEmitter.js.map +1 -0
  19. package/dist/src/common/IAnimationController.d.ts +9 -0
  20. package/dist/src/common/IAnimationController.js +20 -0
  21. package/dist/src/common/IAnimationController.js.map +1 -0
  22. package/dist/src/core/CoreExtension.d.ts +12 -0
  23. package/dist/src/core/CoreExtension.js +29 -0
  24. package/dist/src/core/CoreExtension.js.map +1 -0
  25. package/dist/src/core/CoreNode.d.ts +147 -0
  26. package/dist/src/core/CoreNode.js +498 -0
  27. package/dist/src/core/CoreNode.js.map +1 -0
  28. package/dist/src/core/CoreShaderManager.d.ts +29 -0
  29. package/dist/src/core/CoreShaderManager.js +58 -0
  30. package/dist/src/core/CoreShaderManager.js.map +1 -0
  31. package/dist/src/core/CoreTextNode.d.ts +64 -0
  32. package/dist/src/core/CoreTextNode.js +251 -0
  33. package/dist/src/core/CoreTextNode.js.map +1 -0
  34. package/dist/src/core/CoreTextureManager.d.ts +173 -0
  35. package/dist/src/core/CoreTextureManager.js +190 -0
  36. package/dist/src/core/CoreTextureManager.js.map +1 -0
  37. package/dist/src/core/Matrix2DContext.d.ts +15 -0
  38. package/dist/src/core/Matrix2DContext.js +45 -0
  39. package/dist/src/core/Matrix2DContext.js.map +1 -0
  40. package/dist/src/core/Stage.d.ts +53 -0
  41. package/dist/src/core/Stage.js +214 -0
  42. package/dist/src/core/Stage.js.map +1 -0
  43. package/dist/src/core/animations/AnimationManager.d.ts +7 -0
  44. package/dist/src/core/animations/AnimationManager.js +34 -0
  45. package/dist/src/core/animations/AnimationManager.js.map +1 -0
  46. package/dist/src/core/animations/CoreAnimation.d.ts +27 -0
  47. package/dist/src/core/animations/CoreAnimation.js +103 -0
  48. package/dist/src/core/animations/CoreAnimation.js.map +1 -0
  49. package/dist/src/core/animations/CoreAnimationController.d.ts +21 -0
  50. package/dist/src/core/animations/CoreAnimationController.js +96 -0
  51. package/dist/src/core/animations/CoreAnimationController.js.map +1 -0
  52. package/dist/src/core/lib/glm/common.d.ts +162 -0
  53. package/dist/src/core/lib/glm/common.js +81 -0
  54. package/dist/src/core/lib/glm/common.js.map +1 -0
  55. package/dist/src/core/lib/glm/index.d.ts +11 -0
  56. package/dist/src/core/lib/glm/index.js +30 -0
  57. package/dist/src/core/lib/glm/index.js.map +1 -0
  58. package/dist/src/core/lib/glm/mat2.d.ts +219 -0
  59. package/dist/src/core/lib/glm/mat2.js +396 -0
  60. package/dist/src/core/lib/glm/mat2.js.map +1 -0
  61. package/dist/src/core/lib/glm/mat2d.d.ts +237 -0
  62. package/dist/src/core/lib/glm/mat2d.js +442 -0
  63. package/dist/src/core/lib/glm/mat2d.js.map +1 -0
  64. package/dist/src/core/lib/glm/mat3.d.ts +283 -0
  65. package/dist/src/core/lib/glm/mat3.js +680 -0
  66. package/dist/src/core/lib/glm/mat3.js.map +1 -0
  67. package/dist/src/core/lib/glm/mat4.d.ts +550 -0
  68. package/dist/src/core/lib/glm/mat4.js +1802 -0
  69. package/dist/src/core/lib/glm/mat4.js.map +1 -0
  70. package/dist/src/core/lib/glm/quat.d.ts +363 -0
  71. package/dist/src/core/lib/glm/quat.js +693 -0
  72. package/dist/src/core/lib/glm/quat.js.map +1 -0
  73. package/dist/src/core/lib/glm/quat2.d.ts +356 -0
  74. package/dist/src/core/lib/glm/quat2.js +754 -0
  75. package/dist/src/core/lib/glm/quat2.js.map +1 -0
  76. package/dist/src/core/lib/glm/vec2.d.ts +365 -0
  77. package/dist/src/core/lib/glm/vec2.js +569 -0
  78. package/dist/src/core/lib/glm/vec2.js.map +1 -0
  79. package/dist/src/core/lib/glm/vec3.d.ts +406 -0
  80. package/dist/src/core/lib/glm/vec3.js +720 -0
  81. package/dist/src/core/lib/glm/vec3.js.map +1 -0
  82. package/dist/src/core/lib/glm/vec4.d.ts +330 -0
  83. package/dist/src/core/lib/glm/vec4.js +608 -0
  84. package/dist/src/core/lib/glm/vec4.js.map +1 -0
  85. package/dist/src/core/lib/utils.d.ts +27 -0
  86. package/dist/src/core/lib/utils.js +108 -0
  87. package/dist/src/core/lib/utils.js.map +1 -0
  88. package/dist/src/core/platform.d.ts +10 -0
  89. package/dist/src/core/platform.js +37 -0
  90. package/dist/src/core/platform.js.map +1 -0
  91. package/dist/src/core/renderers/CoreContextTexture.d.ts +6 -0
  92. package/dist/src/core/renderers/CoreContextTexture.js +25 -0
  93. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -0
  94. package/dist/src/core/renderers/CoreRenderOp.d.ts +3 -0
  95. package/dist/src/core/renderers/CoreRenderOp.js +21 -0
  96. package/dist/src/core/renderers/CoreRenderOp.js.map +1 -0
  97. package/dist/src/core/renderers/CoreRenderer.d.ts +39 -0
  98. package/dist/src/core/renderers/CoreRenderer.js +26 -0
  99. package/dist/src/core/renderers/CoreRenderer.js.map +1 -0
  100. package/dist/src/core/renderers/CoreShader.d.ts +9 -0
  101. package/dist/src/core/renderers/CoreShader.js +28 -0
  102. package/dist/src/core/renderers/CoreShader.js.map +1 -0
  103. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +7 -0
  104. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +32 -0
  105. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
  106. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +46 -0
  107. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +163 -0
  108. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
  109. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +27 -0
  110. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +82 -0
  111. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
  112. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +100 -0
  113. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +372 -0
  114. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
  115. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +39 -0
  116. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +187 -0
  117. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
  118. package/dist/src/core/renderers/webgl/internal/BufferCollection.d.ts +27 -0
  119. package/dist/src/core/renderers/webgl/internal/BufferCollection.js +48 -0
  120. package/dist/src/core/renderers/webgl/internal/BufferCollection.js.map +1 -0
  121. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +39 -0
  122. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +92 -0
  123. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -0
  124. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +46 -0
  125. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +50 -0
  126. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -0
  127. package/dist/src/core/renderers/webgl/internal/WebGlUtils.d.ts +10 -0
  128. package/dist/src/core/renderers/webgl/internal/WebGlUtils.js +31 -0
  129. package/dist/src/core/renderers/webgl/internal/WebGlUtils.js.map +1 -0
  130. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
  131. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +89 -0
  132. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
  133. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
  134. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +119 -0
  135. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
  136. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +53 -0
  137. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +299 -0
  138. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
  139. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +29 -0
  140. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +135 -0
  141. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
  142. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +45 -0
  143. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +137 -0
  144. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
  145. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +15 -0
  146. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +68 -0
  147. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
  148. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +14 -0
  149. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +54 -0
  150. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
  151. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +15 -0
  152. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +68 -0
  153. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
  154. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +15 -0
  155. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +68 -0
  156. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
  157. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +15 -0
  158. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +68 -0
  159. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
  160. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +1 -0
  161. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +33 -0
  162. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
  163. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +17 -0
  164. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +98 -0
  165. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
  166. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +6 -0
  167. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +32 -0
  168. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
  169. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +16 -0
  170. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +140 -0
  171. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
  172. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +14 -0
  173. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +82 -0
  174. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
  175. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +44 -0
  176. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
  177. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
  178. package/dist/src/core/scene/Scene.d.ts +59 -0
  179. package/dist/src/core/scene/Scene.js +106 -0
  180. package/dist/src/core/scene/Scene.js.map +1 -0
  181. package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +53 -0
  182. package/dist/src/core/text-rendering/TextTextureRendererUtils.js +156 -0
  183. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -0
  184. package/dist/src/core/text-rendering/TrFontManager.d.ts +25 -0
  185. package/dist/src/core/text-rendering/TrFontManager.js +75 -0
  186. package/dist/src/core/text-rendering/TrFontManager.js.map +1 -0
  187. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +29 -0
  188. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +88 -0
  189. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -0
  190. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +103 -0
  191. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js +21 -0
  192. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +1 -0
  193. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +59 -0
  194. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +86 -0
  195. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -0
  196. package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +48 -0
  197. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +54 -0
  198. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -0
  199. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +11 -0
  200. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +54 -0
  201. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -0
  202. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +45 -0
  203. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +492 -0
  204. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -0
  205. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +115 -0
  206. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +493 -0
  207. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -0
  208. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +67 -0
  209. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +452 -0
  210. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -0
  211. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +12 -0
  212. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +61 -0
  213. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +1 -0
  214. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +33 -0
  215. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +52 -0
  216. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +1 -0
  217. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +13 -0
  218. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +32 -0
  219. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +1 -0
  220. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +21 -0
  221. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +53 -0
  222. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -0
  223. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +4 -0
  224. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +34 -0
  225. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +1 -0
  226. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +18 -0
  227. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +294 -0
  228. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -0
  229. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
  230. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
  231. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
  232. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +10 -0
  233. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +39 -0
  234. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +1 -0
  235. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +254 -0
  236. package/dist/src/core/text-rendering/renderers/TextRenderer.js +100 -0
  237. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -0
  238. package/dist/src/core/textures/ColorTexture.d.ts +35 -0
  239. package/dist/src/core/textures/ColorTexture.js +62 -0
  240. package/dist/src/core/textures/ColorTexture.js.map +1 -0
  241. package/dist/src/core/textures/ImageTexture.d.ts +51 -0
  242. package/dist/src/core/textures/ImageTexture.js +76 -0
  243. package/dist/src/core/textures/ImageTexture.js.map +1 -0
  244. package/dist/src/core/textures/NoiseTexture.d.ts +42 -0
  245. package/dist/src/core/textures/NoiseTexture.js +63 -0
  246. package/dist/src/core/textures/NoiseTexture.js.map +1 -0
  247. package/dist/src/core/textures/SubTexture.d.ts +57 -0
  248. package/dist/src/core/textures/SubTexture.js +82 -0
  249. package/dist/src/core/textures/SubTexture.js.map +1 -0
  250. package/dist/src/core/textures/Texture.d.ts +92 -0
  251. package/dist/src/core/textures/Texture.js +105 -0
  252. package/dist/src/core/textures/Texture.js.map +1 -0
  253. package/dist/src/core/utils.d.ts +15 -0
  254. package/dist/src/core/utils.js +183 -0
  255. package/dist/src/core/utils.js.map +1 -0
  256. package/dist/src/main-api/INode.d.ts +390 -0
  257. package/dist/src/main-api/INode.js +20 -0
  258. package/dist/src/main-api/INode.js.map +1 -0
  259. package/dist/src/main-api/IRenderDriver.d.ts +20 -0
  260. package/dist/src/main-api/IRenderDriver.js +20 -0
  261. package/dist/src/main-api/IRenderDriver.js.map +1 -0
  262. package/dist/src/main-api/RendererMain.d.ts +232 -0
  263. package/dist/src/main-api/RendererMain.js +303 -0
  264. package/dist/src/main-api/RendererMain.js.map +1 -0
  265. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +84 -0
  266. package/dist/src/render-drivers/main/MainOnlyNode.js +324 -0
  267. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -0
  268. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +39 -0
  269. package/dist/src/render-drivers/main/MainOnlyTextNode.js +165 -0
  270. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -0
  271. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +17 -0
  272. package/dist/src/render-drivers/main/MainRenderDriver.js +88 -0
  273. package/dist/src/render-drivers/main/MainRenderDriver.js.map +1 -0
  274. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +81 -0
  275. package/dist/src/render-drivers/threadx/NodeStruct.js +254 -0
  276. package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -0
  277. package/dist/src/render-drivers/threadx/SharedNode.d.ts +36 -0
  278. package/dist/src/render-drivers/threadx/SharedNode.js +57 -0
  279. package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -0
  280. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +34 -0
  281. package/dist/src/render-drivers/threadx/TextNodeStruct.js +156 -0
  282. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -0
  283. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +20 -0
  284. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +84 -0
  285. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -0
  286. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +37 -0
  287. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +121 -0
  288. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -0
  289. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +23 -0
  290. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +50 -0
  291. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -0
  292. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +21 -0
  293. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +194 -0
  294. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +1 -0
  295. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +48 -0
  296. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +32 -0
  297. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -0
  298. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +19 -0
  299. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +172 -0
  300. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -0
  301. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +22 -0
  302. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +101 -0
  303. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -0
  304. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +1 -0
  305. package/dist/src/render-drivers/threadx/worker/renderer.js +130 -0
  306. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -0
  307. package/dist/src/render-drivers/utils.d.ts +10 -0
  308. package/dist/src/render-drivers/utils.js +41 -0
  309. package/dist/src/render-drivers/utils.js.map +1 -0
  310. package/dist/src/utils.d.ts +79 -0
  311. package/dist/src/utils.js +162 -0
  312. package/dist/src/utils.js.map +1 -0
  313. package/dist/tsconfig.dist.tsbuildinfo +1 -0
  314. package/package.json +74 -0
@@ -0,0 +1,45 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ /**
20
+ * Represents a 2D transformation context, providing a 2x2 matrix for transformations.
21
+ */
22
+ export class Matrix2DContext {
23
+ // world alpha
24
+ alpha = 1;
25
+ // world position
26
+ px = 0;
27
+ py = 0;
28
+ ta = 1;
29
+ tb = 0;
30
+ tc = 0;
31
+ td = 1;
32
+ isIdentity() {
33
+ return (this.alpha === 1 &&
34
+ this.px === 0 &&
35
+ this.py === 0 &&
36
+ this.isIdentityMatrix());
37
+ }
38
+ isIdentityMatrix() {
39
+ return this.ta === 1 && this.tb === 0 && this.tc === 0 && this.td === 1;
40
+ }
41
+ isSquare() {
42
+ return this.tb === 0 && this.tc === 0;
43
+ }
44
+ }
45
+ //# sourceMappingURL=Matrix2DContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Matrix2DContext.js","sourceRoot":"","sources":["../../../src/core/Matrix2DContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B,cAAc;IACd,KAAK,GAAG,CAAC,CAAC;IAEV,iBAAiB;IACjB,EAAE,GAAG,CAAC,CAAC;IACP,EAAE,GAAG,CAAC,CAAC;IAEP,EAAE,GAAG,CAAC,CAAC;IACP,EAAE,GAAG,CAAC,CAAC;IACP,EAAE,GAAG,CAAC,CAAC;IACP,EAAE,GAAG,CAAC,CAAC;IAEP,UAAU;QACR,OAAO,CACL,IAAI,CAAC,KAAK,KAAK,CAAC;YAChB,IAAI,CAAC,EAAE,KAAK,CAAC;YACb,IAAI,CAAC,EAAE,KAAK,CAAC;YACb,IAAI,CAAC,gBAAgB,EAAE,CACxB,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -0,0 +1,53 @@
1
+ import { WebGlCoreRenderer } from './renderers/webgl/WebGlCoreRenderer.js';
2
+ import { AnimationManager } from './animations/AnimationManager.js';
3
+ import { CoreNode } from './CoreNode.js';
4
+ import { CoreTextureManager } from './CoreTextureManager.js';
5
+ import { TrFontManager } from './text-rendering/TrFontManager.js';
6
+ import { CoreShaderManager } from './CoreShaderManager.js';
7
+ import type { TextRenderer, TextRendererMap, TrProps } from './text-rendering/renderers/TextRenderer.js';
8
+ export interface StageOptions {
9
+ rootId: number;
10
+ appWidth: number;
11
+ appHeight: number;
12
+ deviceLogicalPixelRatio: number;
13
+ devicePhysicalPixelRatio: number;
14
+ canvas: HTMLCanvasElement | OffscreenCanvas;
15
+ clearColor: number;
16
+ debug?: {
17
+ monitorTextureCache?: boolean;
18
+ };
19
+ }
20
+ export declare class Stage {
21
+ readonly options: StageOptions;
22
+ readonly animationManager: AnimationManager;
23
+ readonly txManager: CoreTextureManager;
24
+ readonly fontManager: TrFontManager;
25
+ readonly textRenderers: Partial<TextRendererMap>;
26
+ readonly shManager: CoreShaderManager;
27
+ readonly renderer: WebGlCoreRenderer;
28
+ private scene;
29
+ deltaTime: number;
30
+ lastFrameTime: number;
31
+ currentFrameTime: number;
32
+ /**
33
+ * Stage constructor
34
+ */
35
+ constructor(options: StageOptions);
36
+ /**
37
+ * Start a new frame draw
38
+ */
39
+ drawFrame(): void;
40
+ addQuads(node: CoreNode): void;
41
+ /**
42
+ * Given a font name, and possible renderer override, return the best compatible text renderer.
43
+ *
44
+ * @remarks
45
+ * Will always return at least a canvas renderer if no other suitable renderer can be resolved.
46
+ *
47
+ * @param fontFamily
48
+ * @param textRendererOverride
49
+ * @returns
50
+ */
51
+ resolveTextRenderer(trProps: TrProps, textRendererOverride?: keyof TextRendererMap | null): TextRenderer;
52
+ get root(): CoreNode;
53
+ }
@@ -0,0 +1,214 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { Scene } from './scene/Scene.js';
20
+ import { startLoop, getTimeStamp } from './platform.js';
21
+ import { WebGlCoreRenderer } from './renderers/webgl/WebGlCoreRenderer.js';
22
+ import { assertTruthy } from '../utils.js';
23
+ import { AnimationManager } from './animations/AnimationManager.js';
24
+ import { CoreNode } from './CoreNode.js';
25
+ import { CoreTextureManager } from './CoreTextureManager.js';
26
+ import { TrFontManager } from './text-rendering/TrFontManager.js';
27
+ import { CoreShaderManager } from './CoreShaderManager.js';
28
+ import { WebTrFontFace } from './text-rendering/font-face-types/WebTrFontFace.js';
29
+ import { SdfTextRenderer } from './text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js';
30
+ import { SdfTrFontFace } from './text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js';
31
+ import { CanvasTextRenderer } from './text-rendering/renderers/CanvasTextRenderer.js';
32
+ const bufferMemory = 2e6;
33
+ const autoStart = true;
34
+ export class Stage {
35
+ options;
36
+ /// Module Instances
37
+ animationManager;
38
+ txManager;
39
+ fontManager;
40
+ textRenderers;
41
+ shManager;
42
+ renderer;
43
+ scene;
44
+ /// State
45
+ deltaTime = 0;
46
+ lastFrameTime = 0;
47
+ currentFrameTime = 0;
48
+ /**
49
+ * Stage constructor
50
+ */
51
+ constructor(options) {
52
+ this.options = options;
53
+ const { canvas, clearColor, rootId, debug, appWidth, appHeight } = options;
54
+ this.txManager = new CoreTextureManager();
55
+ this.shManager = new CoreShaderManager();
56
+ this.animationManager = new AnimationManager();
57
+ if (debug?.monitorTextureCache) {
58
+ setInterval(() => {
59
+ assertTruthy(this.txManager);
60
+ const debugInfo = this.txManager.getDebugInfo();
61
+ console.log('Texture ID Cache Size: ', debugInfo.idCacheSize);
62
+ console.log('Texture Key Cache Size: ', debugInfo.keyCacheSize);
63
+ }, 1000);
64
+ }
65
+ this.renderer = new WebGlCoreRenderer({
66
+ stage: this,
67
+ canvas,
68
+ pixelRatio: options.devicePhysicalPixelRatio * options.deviceLogicalPixelRatio,
69
+ clearColor: clearColor ?? 0xff000000,
70
+ bufferMemory,
71
+ txManager: this.txManager,
72
+ shManager: this.shManager,
73
+ });
74
+ // Must do this after renderer is created
75
+ this.txManager.renderer = this.renderer;
76
+ this.textRenderers = {
77
+ canvas: new CanvasTextRenderer(this),
78
+ sdf: new SdfTextRenderer(this),
79
+ };
80
+ this.fontManager = new TrFontManager(this.textRenderers);
81
+ // create root node
82
+ const rootNode = new CoreNode(this, {
83
+ id: rootId,
84
+ x: 0,
85
+ y: 0,
86
+ width: appWidth,
87
+ height: appHeight,
88
+ alpha: 1,
89
+ color: 0x00000000,
90
+ colorTop: 0x00000000,
91
+ colorBottom: 0x00000000,
92
+ colorLeft: 0x00000000,
93
+ colorRight: 0x00000000,
94
+ colorTl: 0x00000000,
95
+ colorTr: 0x00000000,
96
+ colorBl: 0x00000000,
97
+ colorBr: 0x00000000,
98
+ zIndex: 0,
99
+ zIndexLocked: 0,
100
+ scale: 1,
101
+ mountX: 0,
102
+ mountY: 0,
103
+ mount: 0,
104
+ pivot: 0.5,
105
+ pivotX: 0.5,
106
+ pivotY: 0.5,
107
+ rotation: 0,
108
+ parent: null,
109
+ texture: null,
110
+ textureOptions: null,
111
+ shader: null,
112
+ shaderProps: null,
113
+ });
114
+ this.scene = new Scene(rootNode);
115
+ // execute platform start loop
116
+ if (autoStart) {
117
+ startLoop(this);
118
+ }
119
+ }
120
+ /**
121
+ * Start a new frame draw
122
+ */
123
+ drawFrame() {
124
+ const { renderer, scene, animationManager } = this;
125
+ if (!scene?.root) {
126
+ return;
127
+ }
128
+ this.lastFrameTime = this.currentFrameTime;
129
+ this.currentFrameTime = getTimeStamp();
130
+ this.deltaTime = !this.lastFrameTime
131
+ ? 100 / 6
132
+ : this.currentFrameTime - this.lastFrameTime;
133
+ // step animation
134
+ animationManager.update(this.deltaTime);
135
+ // reset and clear viewport
136
+ renderer?.reset();
137
+ // test if we need to update the scene
138
+ if (scene?.root?.hasUpdates) {
139
+ scene?.root?.update(this.deltaTime);
140
+ }
141
+ this.addQuads(scene.root);
142
+ renderer?.sortRenderables();
143
+ renderer?.render();
144
+ }
145
+ addQuads(node) {
146
+ assertTruthy(this.renderer);
147
+ node.renderQuads(this.renderer);
148
+ node.children.forEach((child) => {
149
+ if (child.alpha === 0) {
150
+ return;
151
+ }
152
+ this.addQuads(child);
153
+ });
154
+ }
155
+ /**
156
+ * Given a font name, and possible renderer override, return the best compatible text renderer.
157
+ *
158
+ * @remarks
159
+ * Will always return at least a canvas renderer if no other suitable renderer can be resolved.
160
+ *
161
+ * @param fontFamily
162
+ * @param textRendererOverride
163
+ * @returns
164
+ */
165
+ resolveTextRenderer(trProps, textRendererOverride = null) {
166
+ let rendererId = textRendererOverride;
167
+ let overrideFallback = false;
168
+ // Check if the override is valid (if one is provided)
169
+ if (rendererId) {
170
+ const possibleRenderer = this.textRenderers[rendererId];
171
+ if (!possibleRenderer) {
172
+ console.warn(`Text renderer override '${rendererId}' not found.`);
173
+ rendererId = null;
174
+ overrideFallback = true;
175
+ }
176
+ else if (!possibleRenderer.canRenderFont(trProps)) {
177
+ console.warn(`Cannot use override text renderer '${rendererId}' for font`, trProps);
178
+ rendererId = null;
179
+ overrideFallback = true;
180
+ }
181
+ }
182
+ if (!rendererId) {
183
+ // Iterate through the text renderers and find the first one that can render the font
184
+ for (const [trId, tr] of Object.entries(this.textRenderers)) {
185
+ if (trId === 'canvas') {
186
+ // Canvas is always a fallback
187
+ continue;
188
+ }
189
+ if (tr.canRenderFont(trProps)) {
190
+ rendererId = trId;
191
+ break;
192
+ }
193
+ }
194
+ if (!rendererId) {
195
+ // If no renderer can be found, use the canvas renderer
196
+ rendererId = 'canvas';
197
+ }
198
+ }
199
+ if (overrideFallback) {
200
+ console.warn(`Falling back to text renderer ${String(rendererId)}`);
201
+ }
202
+ // By now we are guaranteed to have a valid rendererId (at least Canvas);
203
+ const resolvedTextRenderer = this.textRenderers[rendererId];
204
+ assertTruthy(resolvedTextRenderer, 'resolvedTextRenderer undefined');
205
+ // Need to explicitly cast to TextRenderer because TS doesn't like
206
+ // the covariant state argument in the setter method map
207
+ return resolvedTextRenderer;
208
+ }
209
+ //#region Properties
210
+ get root() {
211
+ return this.scene?.root || null;
212
+ }
213
+ }
214
+ //# sourceMappingURL=Stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stage.js","sourceRoot":"","sources":["../../../src/core/Stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { CoreAnimation } from './CoreAnimation.js';
2
+ export declare class AnimationManager {
3
+ activeAnimations: Set<CoreAnimation>;
4
+ registerAnimation(animation: CoreAnimation): void;
5
+ unregisterAnimation(animation: CoreAnimation): void;
6
+ update(dt: number): void;
7
+ }
@@ -0,0 +1,34 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { CoreAnimation } from './CoreAnimation.js';
20
+ export class AnimationManager {
21
+ activeAnimations = new Set();
22
+ registerAnimation(animation) {
23
+ this.activeAnimations.add(animation);
24
+ }
25
+ unregisterAnimation(animation) {
26
+ this.activeAnimations.delete(animation);
27
+ }
28
+ update(dt) {
29
+ this.activeAnimations.forEach((animation) => {
30
+ animation.update(dt);
31
+ });
32
+ }
33
+ }
34
+ //# sourceMappingURL=AnimationManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationManager.js","sourceRoot":"","sources":["../../../../src/core/animations/AnimationManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,gBAAgB;IAC3B,gBAAgB,GAAuB,IAAI,GAAG,EAAE,CAAC;IAEjD,iBAAiB,CAAC,SAAwB;QACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,mBAAmB,CAAC,SAAwB;QAC1C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1C,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ import type { CoreNode } from '../CoreNode.js';
2
+ import type { INodeAnimatableProps } from '../../main-api/INode.js';
3
+ import { EventEmitter } from '../../common/EventEmitter.js';
4
+ export interface IAnimationSettings {
5
+ duration: number;
6
+ delay: number;
7
+ easing: string;
8
+ loop: boolean;
9
+ repeat: number;
10
+ repeatDelay: number;
11
+ stopMethod: 'reverse' | 'reset' | false;
12
+ }
13
+ export declare class CoreAnimation extends EventEmitter {
14
+ private node;
15
+ private props;
16
+ settings: Partial<IAnimationSettings>;
17
+ propStartValues: Partial<INodeAnimatableProps>;
18
+ restoreValues: Partial<INodeAnimatableProps>;
19
+ private progress;
20
+ private timingFunction;
21
+ constructor(node: CoreNode, props: Partial<INodeAnimatableProps>, settings: Partial<IAnimationSettings>);
22
+ reset(): void;
23
+ restore(): void;
24
+ reverse(): void;
25
+ applyEasing(p: number, s: number, e: number): number;
26
+ update(dt: number): void;
27
+ }
@@ -0,0 +1,103 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { getTimingFunction } from '../utils.js';
20
+ import { mergeColorProgress } from '../../utils.js';
21
+ import { EventEmitter } from '../../common/EventEmitter.js';
22
+ export class CoreAnimation extends EventEmitter {
23
+ node;
24
+ props;
25
+ settings;
26
+ propStartValues = {};
27
+ restoreValues = {};
28
+ progress = 0;
29
+ timingFunction;
30
+ constructor(node, props, settings) {
31
+ super();
32
+ this.node = node;
33
+ this.props = props;
34
+ this.settings = settings;
35
+ this.propStartValues = {};
36
+ Object.keys(props).forEach((propName) => {
37
+ this.propStartValues[propName] = node[propName];
38
+ });
39
+ this.timingFunction = (t) => t;
40
+ if (settings.easing && typeof settings.easing === 'string') {
41
+ this.timingFunction = getTimingFunction(settings.easing);
42
+ }
43
+ }
44
+ reset() {
45
+ this.progress = 0;
46
+ this.update(0);
47
+ }
48
+ restore() {
49
+ this.reset();
50
+ Object.keys(this.props).forEach((propName) => {
51
+ this.node[propName] = this.propStartValues[propName];
52
+ });
53
+ }
54
+ reverse() {
55
+ this.progress = 0;
56
+ Object.keys(this.props).forEach((propName) => {
57
+ // set the start value to the current value
58
+ const startValue = this.node[propName];
59
+ const endValue = this.propStartValues[propName];
60
+ // swap the start and end values
61
+ this.props[propName] = endValue;
62
+ this.propStartValues[propName] = startValue;
63
+ });
64
+ // restore stop method
65
+ this.settings.stopMethod = false;
66
+ }
67
+ applyEasing(p, s, e) {
68
+ return (this.timingFunction(p) || p) * (e - s) + s;
69
+ }
70
+ update(dt) {
71
+ // finish if no duration is provided
72
+ const { duration, loop, easing } = this.settings;
73
+ if (!duration) {
74
+ this.emit('finished', {});
75
+ return;
76
+ }
77
+ this.progress += dt / duration;
78
+ if (this.progress > 1) {
79
+ this.progress = loop ? 0 : 1;
80
+ this.emit('finished', {});
81
+ }
82
+ Object.keys(this.props).forEach((propName) => {
83
+ const propValue = this.props[propName];
84
+ const startValue = this.propStartValues[propName];
85
+ const endValue = propValue;
86
+ if (propName.indexOf('color') !== -1) {
87
+ const progressValue = easing
88
+ ? this.timingFunction(this.progress) || this.progress
89
+ : this.progress;
90
+ const colorValue = mergeColorProgress(startValue, endValue, progressValue);
91
+ this.node[propName] = easing
92
+ ? colorValue
93
+ : mergeColorProgress(startValue, endValue, this.progress);
94
+ }
95
+ else {
96
+ this.node[propName] = easing
97
+ ? this.applyEasing(this.progress, startValue, endValue)
98
+ : startValue + (endValue - startValue) * this.progress;
99
+ }
100
+ });
101
+ }
102
+ }
103
+ //# sourceMappingURL=CoreAnimation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoreAnimation.js","sourceRoot":"","sources":["../../../../src/core/animations/CoreAnimation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { AnimationControllerState, IAnimationController } from '../../common/IAnimationController.js';
2
+ import type { AnimationManager } from './AnimationManager.js';
3
+ import type { CoreAnimation } from './CoreAnimation.js';
4
+ export declare class CoreAnimationController implements IAnimationController {
5
+ private manager;
6
+ private animation;
7
+ stoppedPromise: Promise<void> | null;
8
+ /**
9
+ * If this is null, then the animation is in a finished / stopped state.
10
+ */
11
+ stoppedResolve: (() => void) | null;
12
+ constructor(manager: AnimationManager, animation: CoreAnimation);
13
+ state: AnimationControllerState;
14
+ start(): IAnimationController;
15
+ stop(): IAnimationController;
16
+ pause(): IAnimationController;
17
+ restore(): IAnimationController;
18
+ waitUntilStopped(): Promise<void>;
19
+ private makeStoppedPromise;
20
+ private finished;
21
+ }
@@ -0,0 +1,96 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { assertTruthy } from '../../utils.js';
20
+ export class CoreAnimationController {
21
+ manager;
22
+ animation;
23
+ stoppedPromise = null;
24
+ /**
25
+ * If this is null, then the animation is in a finished / stopped state.
26
+ */
27
+ stoppedResolve = null;
28
+ constructor(manager, animation) {
29
+ this.manager = manager;
30
+ this.animation = animation;
31
+ this.state = 'stopped';
32
+ }
33
+ state;
34
+ start() {
35
+ this.makeStoppedPromise();
36
+ this.animation.once('finished', this.finished.bind(this));
37
+ // prevent registering the same animation twice
38
+ if (!this.manager.activeAnimations.has(this.animation)) {
39
+ this.manager.registerAnimation(this.animation);
40
+ }
41
+ this.state = 'running';
42
+ return this;
43
+ }
44
+ stop() {
45
+ this.manager.unregisterAnimation(this.animation);
46
+ if (this.stoppedResolve !== null) {
47
+ this.stoppedResolve();
48
+ this.stoppedResolve = null;
49
+ }
50
+ this.animation.reset();
51
+ this.state = 'stopped';
52
+ return this;
53
+ }
54
+ pause() {
55
+ this.manager.unregisterAnimation(this.animation);
56
+ this.state = 'paused';
57
+ return this;
58
+ }
59
+ restore() {
60
+ this.stoppedResolve = null;
61
+ this.animation.restore();
62
+ return this;
63
+ }
64
+ waitUntilStopped() {
65
+ this.makeStoppedPromise();
66
+ const promise = this.stoppedPromise;
67
+ assertTruthy(promise);
68
+ return promise;
69
+ }
70
+ makeStoppedPromise() {
71
+ if (this.stoppedResolve === null) {
72
+ this.stoppedPromise = new Promise((resolve) => {
73
+ this.stoppedResolve = resolve;
74
+ });
75
+ }
76
+ }
77
+ finished() {
78
+ assertTruthy(this.stoppedResolve);
79
+ // If the animation is looping, then we need to restart it.
80
+ const { loop, stopMethod } = this.animation.settings;
81
+ if (stopMethod === 'reverse') {
82
+ this.animation.reverse();
83
+ this.start();
84
+ return;
85
+ }
86
+ // resolve promise
87
+ this.stoppedResolve();
88
+ this.stoppedResolve = null;
89
+ if (loop) {
90
+ return;
91
+ }
92
+ // unregister animation
93
+ this.manager.unregisterAnimation(this.animation);
94
+ }
95
+ }
96
+ //# sourceMappingURL=CoreAnimationController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoreAnimationController.js","sourceRoot":"","sources":["../../../../src/core/animations/CoreAnimationController.ts"],"names":[],"mappings":"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"}