@lightningtv/renderer 2.16.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 (582) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +3 -0
  3. package/README.md +147 -0
  4. package/dist/exports/canvas-shaders.d.ts +10 -0
  5. package/dist/exports/canvas-shaders.js +27 -0
  6. package/dist/exports/canvas-shaders.js.map +1 -0
  7. package/dist/exports/canvas.d.ts +20 -0
  8. package/dist/exports/canvas.js +39 -0
  9. package/dist/exports/canvas.js.map +1 -0
  10. package/dist/exports/index.d.ts +45 -0
  11. package/dist/exports/index.js +58 -0
  12. package/dist/exports/index.js.map +1 -0
  13. package/dist/exports/inspector.d.ts +4 -0
  14. package/dist/exports/inspector.js +23 -0
  15. package/dist/exports/inspector.js.map +1 -0
  16. package/dist/exports/utils.d.ts +26 -0
  17. package/dist/exports/utils.js +45 -0
  18. package/dist/exports/utils.js.map +1 -0
  19. package/dist/exports/webgl-shaders.d.ts +11 -0
  20. package/dist/exports/webgl-shaders.js +28 -0
  21. package/dist/exports/webgl-shaders.js.map +1 -0
  22. package/dist/exports/webgl.d.ts +19 -0
  23. package/dist/exports/webgl.js +38 -0
  24. package/dist/exports/webgl.js.map +1 -0
  25. package/dist/src/common/CommonTypes.d.ts +97 -0
  26. package/dist/src/common/CommonTypes.js +20 -0
  27. package/dist/src/common/CommonTypes.js.map +1 -0
  28. package/dist/src/common/EventEmitter.d.ts +12 -0
  29. package/dist/src/common/EventEmitter.js +66 -0
  30. package/dist/src/common/EventEmitter.js.map +1 -0
  31. package/dist/src/common/IAnimationController.d.ts +66 -0
  32. package/dist/src/common/IAnimationController.js +2 -0
  33. package/dist/src/common/IAnimationController.js.map +1 -0
  34. package/dist/src/common/IEventEmitter.d.ts +8 -0
  35. package/dist/src/common/IEventEmitter.js +18 -0
  36. package/dist/src/common/IEventEmitter.js.map +1 -0
  37. package/dist/src/core/CoreNode.d.ts +865 -0
  38. package/dist/src/core/CoreNode.js +1532 -0
  39. package/dist/src/core/CoreNode.js.map +1 -0
  40. package/dist/src/core/CoreShaderManager.d.ts +82 -0
  41. package/dist/src/core/CoreShaderManager.js +128 -0
  42. package/dist/src/core/CoreShaderManager.js.map +1 -0
  43. package/dist/src/core/CoreTextNode.d.ts +103 -0
  44. package/dist/src/core/CoreTextNode.js +331 -0
  45. package/dist/src/core/CoreTextNode.js.map +1 -0
  46. package/dist/src/core/CoreTextureManager.d.ts +249 -0
  47. package/dist/src/core/CoreTextureManager.js +362 -0
  48. package/dist/src/core/CoreTextureManager.js.map +1 -0
  49. package/dist/src/core/Stage.d.ts +210 -0
  50. package/dist/src/core/Stage.js +636 -0
  51. package/dist/src/core/Stage.js.map +1 -0
  52. package/dist/src/core/TextureMemoryManager.d.ts +149 -0
  53. package/dist/src/core/TextureMemoryManager.js +271 -0
  54. package/dist/src/core/TextureMemoryManager.js.map +1 -0
  55. package/dist/src/core/animations/AnimationManager.d.ts +7 -0
  56. package/dist/src/core/animations/AnimationManager.js +34 -0
  57. package/dist/src/core/animations/AnimationManager.js.map +1 -0
  58. package/dist/src/core/animations/CoreAnimation.d.ts +38 -0
  59. package/dist/src/core/animations/CoreAnimation.js +261 -0
  60. package/dist/src/core/animations/CoreAnimation.js.map +1 -0
  61. package/dist/src/core/animations/CoreAnimationController.d.ts +27 -0
  62. package/dist/src/core/animations/CoreAnimationController.js +133 -0
  63. package/dist/src/core/animations/CoreAnimationController.js.map +1 -0
  64. package/dist/src/core/animations/SimpleAnimation.d.ts +28 -0
  65. package/dist/src/core/animations/SimpleAnimation.js +96 -0
  66. package/dist/src/core/animations/SimpleAnimation.js.map +1 -0
  67. package/dist/src/core/lib/ContextSpy.d.ts +12 -0
  68. package/dist/src/core/lib/ContextSpy.js +38 -0
  69. package/dist/src/core/lib/ContextSpy.js.map +1 -0
  70. package/dist/src/core/lib/ImageWorker.d.ts +16 -0
  71. package/dist/src/core/lib/ImageWorker.js +201 -0
  72. package/dist/src/core/lib/ImageWorker.js.map +1 -0
  73. package/dist/src/core/lib/Matrix3d.d.ts +73 -0
  74. package/dist/src/core/lib/Matrix3d.js +230 -0
  75. package/dist/src/core/lib/Matrix3d.js.map +1 -0
  76. package/dist/src/core/lib/RenderCoords.d.ts +13 -0
  77. package/dist/src/core/lib/RenderCoords.js +63 -0
  78. package/dist/src/core/lib/RenderCoords.js.map +1 -0
  79. package/dist/src/core/lib/WebGlContextWrapper.d.ts +694 -0
  80. package/dist/src/core/lib/WebGlContextWrapper.js +1049 -0
  81. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -0
  82. package/dist/src/core/lib/textureCompression.d.ts +16 -0
  83. package/dist/src/core/lib/textureCompression.js +129 -0
  84. package/dist/src/core/lib/textureCompression.js.map +1 -0
  85. package/dist/src/core/lib/textureSvg.d.ts +16 -0
  86. package/dist/src/core/lib/textureSvg.js +63 -0
  87. package/dist/src/core/lib/textureSvg.js.map +1 -0
  88. package/dist/src/core/lib/utils.d.ts +60 -0
  89. package/dist/src/core/lib/utils.js +267 -0
  90. package/dist/src/core/lib/utils.js.map +1 -0
  91. package/dist/src/core/lib/validateImageBitmap.d.ts +6 -0
  92. package/dist/src/core/lib/validateImageBitmap.js +68 -0
  93. package/dist/src/core/lib/validateImageBitmap.js.map +1 -0
  94. package/dist/src/core/platform.d.ts +10 -0
  95. package/dist/src/core/platform.js +81 -0
  96. package/dist/src/core/platform.js.map +1 -0
  97. package/dist/src/core/platforms/Platform.d.ts +37 -0
  98. package/dist/src/core/platforms/Platform.js +22 -0
  99. package/dist/src/core/platforms/Platform.js.map +1 -0
  100. package/dist/src/core/platforms/web/WebPlatform.d.ts +9 -0
  101. package/dist/src/core/platforms/web/WebPlatform.js +58 -0
  102. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
  103. package/dist/src/core/renderers/CoreContextTexture.d.ts +12 -0
  104. package/dist/src/core/renderers/CoreContextTexture.js +34 -0
  105. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -0
  106. package/dist/src/core/renderers/CoreRenderOp.d.ts +3 -0
  107. package/dist/src/core/renderers/CoreRenderOp.js +21 -0
  108. package/dist/src/core/renderers/CoreRenderOp.js.map +1 -0
  109. package/dist/src/core/renderers/CoreRenderer.d.ts +78 -0
  110. package/dist/src/core/renderers/CoreRenderer.js +37 -0
  111. package/dist/src/core/renderers/CoreRenderer.js.map +1 -0
  112. package/dist/src/core/renderers/CoreShader.d.ts +9 -0
  113. package/dist/src/core/renderers/CoreShader.js +28 -0
  114. package/dist/src/core/renderers/CoreShader.js.map +1 -0
  115. package/dist/src/core/renderers/CoreShaderNode.d.ts +59 -0
  116. package/dist/src/core/renderers/CoreShaderNode.js +113 -0
  117. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
  118. package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
  119. package/dist/src/core/renderers/CoreShaderProgram.js +20 -0
  120. package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
  121. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +33 -0
  122. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +250 -0
  123. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -0
  124. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +16 -0
  125. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +124 -0
  126. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -0
  127. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +37 -0
  128. package/dist/src/core/renderers/canvas/CanvasRenderer.js +215 -0
  129. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
  130. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
  131. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +57 -0
  132. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
  133. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +16 -0
  134. package/dist/src/core/renderers/canvas/CanvasTexture.js +124 -0
  135. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
  136. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +14 -0
  137. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +138 -0
  138. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -0
  139. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +19 -0
  140. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +58 -0
  141. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -0
  142. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +10 -0
  143. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +43 -0
  144. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +1 -0
  145. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +12 -0
  146. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +58 -0
  147. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -0
  148. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +9 -0
  149. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +38 -0
  150. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
  151. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +56 -0
  152. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +239 -0
  153. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
  154. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +34 -0
  155. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +114 -0
  156. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
  157. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +133 -0
  158. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +616 -0
  159. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
  160. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +83 -0
  161. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +233 -0
  162. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
  163. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +12 -0
  164. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +55 -0
  165. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
  166. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +9 -0
  167. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +38 -0
  168. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
  169. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +57 -0
  170. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +224 -0
  171. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
  172. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +44 -0
  173. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +118 -0
  174. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
  175. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +136 -0
  176. package/dist/src/core/renderers/webgl/WebGlRenderer.js +573 -0
  177. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
  178. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +222 -0
  179. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +331 -0
  180. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
  181. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +37 -0
  182. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +219 -0
  183. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
  184. package/dist/src/core/renderers/webgl/internal/BufferCollection.d.ts +27 -0
  185. package/dist/src/core/renderers/webgl/internal/BufferCollection.js +48 -0
  186. package/dist/src/core/renderers/webgl/internal/BufferCollection.js.map +1 -0
  187. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +55 -0
  188. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +106 -0
  189. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -0
  190. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +47 -0
  191. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +51 -0
  192. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -0
  193. package/dist/src/core/renderers/webgl/internal/WebGlUtils.d.ts +10 -0
  194. package/dist/src/core/renderers/webgl/internal/WebGlUtils.js +31 -0
  195. package/dist/src/core/renderers/webgl/internal/WebGlUtils.js.map +1 -0
  196. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
  197. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +87 -0
  198. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
  199. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
  200. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +119 -0
  201. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
  202. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +29 -0
  203. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +413 -0
  204. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
  205. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +28 -0
  206. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +131 -0
  207. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
  208. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +47 -0
  209. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +160 -0
  210. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
  211. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +31 -0
  212. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +71 -0
  213. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
  214. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +30 -0
  215. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +58 -0
  216. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
  217. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +31 -0
  218. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +71 -0
  219. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
  220. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +31 -0
  221. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +71 -0
  222. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
  223. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +31 -0
  224. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +71 -0
  225. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
  226. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +9 -0
  227. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +136 -0
  228. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
  229. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +36 -0
  230. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +85 -0
  231. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -0
  232. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +45 -0
  233. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +104 -0
  234. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
  235. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +22 -0
  236. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +45 -0
  237. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
  238. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +58 -0
  239. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +80 -0
  240. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -0
  241. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +35 -0
  242. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +129 -0
  243. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
  244. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +39 -0
  245. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +116 -0
  246. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -0
  247. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
  248. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +127 -0
  249. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
  250. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +40 -0
  251. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +71 -0
  252. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
  253. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +115 -0
  254. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
  255. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
  256. package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
  257. package/dist/src/core/shaders/canvas/Border.js +57 -0
  258. package/dist/src/core/shaders/canvas/Border.js.map +1 -0
  259. package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
  260. package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
  261. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
  262. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
  263. package/dist/src/core/shaders/canvas/LinearGradient.js +48 -0
  264. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
  265. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
  266. package/dist/src/core/shaders/canvas/RadialGradient.js +70 -0
  267. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
  268. package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
  269. package/dist/src/core/shaders/canvas/Rounded.js +33 -0
  270. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
  271. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
  272. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +43 -0
  273. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
  274. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
  275. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +41 -0
  276. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
  277. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
  278. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +40 -0
  279. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
  280. package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
  281. package/dist/src/core/shaders/canvas/Shadow.js +31 -0
  282. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
  283. package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
  284. package/dist/src/core/shaders/canvas/utils/render.js +84 -0
  285. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
  286. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +38 -0
  287. package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
  288. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
  289. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
  290. package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
  291. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
  292. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
  293. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
  294. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
  295. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +31 -0
  296. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
  297. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
  298. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
  299. package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
  300. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
  301. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
  302. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
  303. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
  304. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +9 -0
  305. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
  306. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
  307. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
  308. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
  309. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
  310. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
  311. package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
  312. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
  313. package/dist/src/core/shaders/templates/shaderUtils.d.ts +5 -0
  314. package/dist/src/core/shaders/templates/shaderUtils.js +41 -0
  315. package/dist/src/core/shaders/templates/shaderUtils.js.map +1 -0
  316. package/dist/src/core/shaders/utils.d.ts +5 -0
  317. package/dist/src/core/shaders/utils.js +41 -0
  318. package/dist/src/core/shaders/utils.js.map +1 -0
  319. package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
  320. package/dist/src/core/shaders/webgl/Border.js +110 -0
  321. package/dist/src/core/shaders/webgl/Border.js.map +1 -0
  322. package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
  323. package/dist/src/core/shaders/webgl/Default.js +86 -0
  324. package/dist/src/core/shaders/webgl/Default.js.map +1 -0
  325. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
  326. package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
  327. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
  328. package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
  329. package/dist/src/core/shaders/webgl/HolePunch.js +65 -0
  330. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
  331. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
  332. package/dist/src/core/shaders/webgl/LinearGradient.js +76 -0
  333. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
  334. package/dist/src/core/shaders/webgl/Magnifier.d.ts +46 -0
  335. package/dist/src/core/shaders/webgl/Magnifier.js +107 -0
  336. package/dist/src/core/shaders/webgl/Magnifier.js.map +1 -0
  337. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
  338. package/dist/src/core/shaders/webgl/RadialGradient.js +74 -0
  339. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
  340. package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
  341. package/dist/src/core/shaders/webgl/Rounded.js +86 -0
  342. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
  343. package/dist/src/core/shaders/webgl/RoundedWithBorder copy.d.ts +3 -0
  344. package/dist/src/core/shaders/webgl/RoundedWithBorder copy.js +218 -0
  345. package/dist/src/core/shaders/webgl/RoundedWithBorder copy.js.map +1 -0
  346. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
  347. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +140 -0
  348. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
  349. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
  350. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +162 -0
  351. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
  352. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
  353. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +84 -0
  354. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
  355. package/dist/src/core/shaders/webgl/SdfShader.d.ts +32 -0
  356. package/dist/src/core/shaders/webgl/SdfShader.js +116 -0
  357. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
  358. package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
  359. package/dist/src/core/shaders/webgl/Shadow.js +110 -0
  360. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
  361. package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +12 -0
  362. package/dist/src/core/text-rendering/TextRenderingUtils.js +14 -0
  363. package/dist/src/core/text-rendering/TextRenderingUtils.js.map +1 -0
  364. package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +72 -0
  365. package/dist/src/core/text-rendering/TextTextureRendererUtils.js +217 -0
  366. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -0
  367. package/dist/src/core/text-rendering/TrFontManager.d.ts +26 -0
  368. package/dist/src/core/text-rendering/TrFontManager.js +131 -0
  369. package/dist/src/core/text-rendering/TrFontManager.js.map +1 -0
  370. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +39 -0
  371. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +125 -0
  372. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -0
  373. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +103 -0
  374. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js +21 -0
  375. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +1 -0
  376. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +62 -0
  377. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +88 -0
  378. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -0
  379. package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +118 -0
  380. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +63 -0
  381. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -0
  382. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +14 -0
  383. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +66 -0
  384. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -0
  385. package/dist/src/core/text-rendering/font-face-types/utils.d.ts +1 -0
  386. package/dist/src/core/text-rendering/font-face-types/utils.js +38 -0
  387. package/dist/src/core/text-rendering/font-face-types/utils.js.map +1 -0
  388. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +59 -0
  389. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +397 -0
  390. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -0
  391. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +120 -0
  392. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +551 -0
  393. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -0
  394. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +92 -0
  395. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +607 -0
  396. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -0
  397. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +12 -0
  398. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +61 -0
  399. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +1 -0
  400. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +33 -0
  401. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +52 -0
  402. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +1 -0
  403. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +13 -0
  404. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +32 -0
  405. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +1 -0
  406. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +23 -0
  407. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +84 -0
  408. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -0
  409. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +4 -0
  410. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +34 -0
  411. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +1 -0
  412. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +20 -0
  413. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +308 -0
  414. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -0
  415. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +10 -0
  416. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +40 -0
  417. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +1 -0
  418. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +26 -0
  419. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +70 -0
  420. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -0
  421. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +16 -0
  422. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +39 -0
  423. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +1 -0
  424. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +373 -0
  425. package/dist/src/core/text-rendering/renderers/TextRenderer.js +178 -0
  426. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -0
  427. package/dist/src/core/textures/ColorTexture.d.ts +36 -0
  428. package/dist/src/core/textures/ColorTexture.js +76 -0
  429. package/dist/src/core/textures/ColorTexture.js.map +1 -0
  430. package/dist/src/core/textures/ImageTexture.d.ts +124 -0
  431. package/dist/src/core/textures/ImageTexture.js +240 -0
  432. package/dist/src/core/textures/ImageTexture.js.map +1 -0
  433. package/dist/src/core/textures/NoiseTexture.d.ts +43 -0
  434. package/dist/src/core/textures/NoiseTexture.js +68 -0
  435. package/dist/src/core/textures/NoiseTexture.js.map +1 -0
  436. package/dist/src/core/textures/RenderTexture.d.ts +29 -0
  437. package/dist/src/core/textures/RenderTexture.js +54 -0
  438. package/dist/src/core/textures/RenderTexture.js.map +1 -0
  439. package/dist/src/core/textures/SubTexture.d.ts +63 -0
  440. package/dist/src/core/textures/SubTexture.js +135 -0
  441. package/dist/src/core/textures/SubTexture.js.map +1 -0
  442. package/dist/src/core/textures/Texture.d.ts +211 -0
  443. package/dist/src/core/textures/Texture.js +232 -0
  444. package/dist/src/core/textures/Texture.js.map +1 -0
  445. package/dist/src/core/utils.d.ts +22 -0
  446. package/dist/src/core/utils.js +173 -0
  447. package/dist/src/core/utils.js.map +1 -0
  448. package/dist/src/main-api/DynamicShaderController.d.ts +29 -0
  449. package/dist/src/main-api/DynamicShaderController.js +58 -0
  450. package/dist/src/main-api/DynamicShaderController.js.map +1 -0
  451. package/dist/src/main-api/INode.d.ts +63 -0
  452. package/dist/src/main-api/INode.js +2 -0
  453. package/dist/src/main-api/INode.js.map +1 -0
  454. package/dist/src/main-api/Inspector.d.ts +21 -0
  455. package/dist/src/main-api/Inspector.js +376 -0
  456. package/dist/src/main-api/Inspector.js.map +1 -0
  457. package/dist/src/main-api/Renderer.d.ts +543 -0
  458. package/dist/src/main-api/Renderer.js +431 -0
  459. package/dist/src/main-api/Renderer.js.map +1 -0
  460. package/dist/src/main-api/ShaderController.d.ts +31 -0
  461. package/dist/src/main-api/ShaderController.js +37 -0
  462. package/dist/src/main-api/ShaderController.js.map +1 -0
  463. package/dist/src/main-api/utils.d.ts +2 -0
  464. package/dist/src/main-api/utils.js +34 -0
  465. package/dist/src/main-api/utils.js.map +1 -0
  466. package/dist/src/utils.d.ts +104 -0
  467. package/dist/src/utils.js +211 -0
  468. package/dist/src/utils.js.map +1 -0
  469. package/dist/tsconfig.dist.tsbuildinfo +1 -0
  470. package/dist/tsconfig.tsbuildinfo +1 -0
  471. package/exports/canvas.ts +39 -0
  472. package/exports/index.ts +89 -0
  473. package/exports/inspector.ts +24 -0
  474. package/exports/utils.ts +44 -0
  475. package/exports/webgl.ts +38 -0
  476. package/package.json +91 -0
  477. package/scripts/please-use-pnpm.js +13 -0
  478. package/src/common/CommonTypes.ts +146 -0
  479. package/src/common/EventEmitter.ts +77 -0
  480. package/src/common/IAnimationController.ts +92 -0
  481. package/src/common/IEventEmitter.ts +28 -0
  482. package/src/core/CoreNode.test.ts +202 -0
  483. package/src/core/CoreNode.ts +2487 -0
  484. package/src/core/CoreShaderManager.ts +292 -0
  485. package/src/core/CoreTextNode.ts +455 -0
  486. package/src/core/CoreTextureManager.ts +561 -0
  487. package/src/core/Stage.ts +826 -0
  488. package/src/core/TextureMemoryManager.ts +414 -0
  489. package/src/core/animations/AnimationManager.ts +38 -0
  490. package/src/core/animations/CoreAnimation.ts +347 -0
  491. package/src/core/animations/CoreAnimationController.ts +166 -0
  492. package/src/core/lib/ContextSpy.ts +41 -0
  493. package/src/core/lib/ImageWorker.ts +280 -0
  494. package/src/core/lib/Matrix3d.ts +244 -0
  495. package/src/core/lib/RenderCoords.ts +86 -0
  496. package/src/core/lib/WebGlContextWrapper.ts +1332 -0
  497. package/src/core/lib/textureCompression.ts +152 -0
  498. package/src/core/lib/textureSvg.ts +78 -0
  499. package/src/core/lib/utils.ts +388 -0
  500. package/src/core/lib/validateImageBitmap.ts +76 -0
  501. package/src/core/platform.ts +100 -0
  502. package/src/core/renderers/CoreContextTexture.ts +43 -0
  503. package/src/core/renderers/CoreRenderOp.ts +22 -0
  504. package/src/core/renderers/CoreRenderer.ts +115 -0
  505. package/src/core/renderers/CoreShader.ts +41 -0
  506. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +375 -0
  507. package/src/core/renderers/canvas/CanvasCoreTexture.ts +153 -0
  508. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +231 -0
  509. package/src/core/renderers/canvas/internal/ColorUtils.ts +69 -0
  510. package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +48 -0
  511. package/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts +91 -0
  512. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +50 -0
  513. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +313 -0
  514. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +125 -0
  515. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +821 -0
  516. package/src/core/renderers/webgl/WebGlCoreShader.ts +365 -0
  517. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -0
  518. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -0
  519. package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -0
  520. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -0
  521. package/src/core/renderers/webgl/shaders/DefaultShader.ts +93 -0
  522. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -0
  523. package/src/core/renderers/webgl/shaders/DynamicShader.ts +580 -0
  524. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +167 -0
  525. package/src/core/renderers/webgl/shaders/SdfShader.ts +204 -0
  526. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -0
  527. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +87 -0
  528. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -0
  529. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -0
  530. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -0
  531. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +159 -0
  532. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +127 -0
  533. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +148 -0
  534. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -0
  535. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +157 -0
  536. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +171 -0
  537. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +168 -0
  538. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +187 -0
  539. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +110 -0
  540. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +196 -0
  541. package/src/core/text-rendering/TextRenderingUtils.ts +36 -0
  542. package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -0
  543. package/src/core/text-rendering/TrFontManager.ts +183 -0
  544. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -0
  545. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -0
  546. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -0
  547. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -0
  548. package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -0
  549. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -0
  550. package/src/core/text-rendering/font-face-types/utils.ts +39 -0
  551. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +509 -0
  552. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +808 -0
  553. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +853 -0
  554. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -0
  555. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -0
  556. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -0
  557. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -0
  558. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -0
  559. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -0
  560. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -0
  561. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +408 -0
  562. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -0
  563. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -0
  564. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -0
  565. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -0
  566. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -0
  567. package/src/core/text-rendering/renderers/TextRenderer.ts +557 -0
  568. package/src/core/textures/ColorTexture.ts +102 -0
  569. package/src/core/textures/ImageTexture.ts +400 -0
  570. package/src/core/textures/NoiseTexture.ts +104 -0
  571. package/src/core/textures/RenderTexture.ts +85 -0
  572. package/src/core/textures/SubTexture.ts +205 -0
  573. package/src/core/textures/Texture.ts +376 -0
  574. package/src/core/utils.ts +227 -0
  575. package/src/env.d.ts +7 -0
  576. package/src/main-api/DynamicShaderController.ts +104 -0
  577. package/src/main-api/INode.ts +101 -0
  578. package/src/main-api/Inspector.ts +522 -0
  579. package/src/main-api/Renderer.ts +807 -0
  580. package/src/main-api/ShaderController.ts +80 -0
  581. package/src/main-api/utils.ts +45 -0
  582. package/src/utils.ts +248 -0
@@ -0,0 +1,636 @@
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 Cable Communications Management, LLC.
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 { startLoop, getTimeStamp } from './platform.js';
20
+ import { assertTruthy, setPremultiplyMode } from '../utils.js';
21
+ import { AnimationManager } from './animations/AnimationManager.js';
22
+ import { UpdateType, CoreNode, CoreNodeRenderState, } from './CoreNode.js';
23
+ import { CoreTextureManager } from './CoreTextureManager.js';
24
+ import { TrFontManager } from './text-rendering/TrFontManager.js';
25
+ import { CoreShaderManager } from './CoreShaderManager.js';
26
+ import { TextRenderer, } from './text-rendering/renderers/TextRenderer.js';
27
+ import { EventEmitter } from '../common/EventEmitter.js';
28
+ import { ContextSpy } from './lib/ContextSpy.js';
29
+ import { TextureMemoryManager, } from './TextureMemoryManager.js';
30
+ import { CoreRenderer } from './renderers/CoreRenderer.js';
31
+ import { CoreTextNode } from './CoreTextNode.js';
32
+ import { santizeCustomDataMap } from '../main-api/utils.js';
33
+ import { createBound, createPreloadBounds, pointInBound, } from './lib/utils.js';
34
+ import { ColorTexture } from './textures/ColorTexture.js';
35
+ const bufferMemory = 2e6;
36
+ const autoStart = true;
37
+ export class Stage {
38
+ options;
39
+ /// Module Instances
40
+ animationManager;
41
+ txManager;
42
+ txMemManager;
43
+ fontManager;
44
+ textRenderers;
45
+ shManager;
46
+ renderer;
47
+ root;
48
+ interactiveNodes = new Set();
49
+ boundsMargin;
50
+ defShaderCtr;
51
+ strictBound;
52
+ preloadBound;
53
+ strictBounds;
54
+ defaultTexture = null;
55
+ /**
56
+ * Target frame time in milliseconds (calculated from targetFPS)
57
+ *
58
+ * @remarks
59
+ * This is pre-calculated to avoid recalculating on every frame.
60
+ * - 0 means no throttling (use display refresh rate)
61
+ * - >0 means throttle to this frame time (1000 / targetFPS)
62
+ */
63
+ targetFrameTime = 0;
64
+ /**
65
+ * Renderer Event Bus for the Stage to emit events onto
66
+ *
67
+ * @remarks
68
+ * In reality this is just the RendererMain instance, which is an EventEmitter.
69
+ * this allows us to directly emit events from the Stage to RendererMain
70
+ * without having to set up forwarding handlers.
71
+ */
72
+ eventBus;
73
+ /// State
74
+ deltaTime = 0;
75
+ lastFrameTime = 0;
76
+ currentFrameTime = 0;
77
+ fpsNumFrames = 0;
78
+ fpsElapsedTime = 0;
79
+ numQuadsRendered = 0;
80
+ renderRequested = false;
81
+ frameEventQueue = [];
82
+ fontResolveMap = {};
83
+ /// Debug data
84
+ contextSpy = null;
85
+ /**
86
+ * Stage constructor
87
+ */
88
+ constructor(options) {
89
+ this.options = options;
90
+ const { canvas, clearColor, appWidth, appHeight, boundsMargin, enableContextSpy, forceWebGL2, numImageWorkers, textureMemory, renderEngine, fontEngines, createImageBitmapSupport, } = options;
91
+ this.eventBus = options.eventBus;
92
+ // Calculate target frame time from targetFPS option
93
+ this.targetFrameTime = options.targetFPS > 0 ? 1000 / options.targetFPS : 0;
94
+ this.txManager = new CoreTextureManager(this, {
95
+ numImageWorkers,
96
+ createImageBitmapSupport,
97
+ });
98
+ // Wait for the Texture Manager to initialize
99
+ // once it does, request a render
100
+ this.txManager.on('initialized', () => {
101
+ this.requestRender();
102
+ });
103
+ this.txMemManager = new TextureMemoryManager(this, textureMemory);
104
+ this.shManager = new CoreShaderManager();
105
+ this.animationManager = new AnimationManager();
106
+ this.contextSpy = enableContextSpy ? new ContextSpy() : null;
107
+ this.strictBounds = options.strictBounds;
108
+ let bm = [0, 0, 0, 0];
109
+ if (boundsMargin) {
110
+ bm = Array.isArray(boundsMargin)
111
+ ? boundsMargin
112
+ : [boundsMargin, boundsMargin, boundsMargin, boundsMargin];
113
+ }
114
+ this.boundsMargin = bm;
115
+ // precalculate our viewport bounds
116
+ this.strictBound = createBound(0, 0, appWidth, appHeight);
117
+ this.preloadBound = createPreloadBounds(this.strictBound, bm);
118
+ const rendererOptions = {
119
+ stage: this,
120
+ canvas,
121
+ pixelRatio: options.devicePhysicalPixelRatio * options.deviceLogicalPixelRatio,
122
+ clearColor: clearColor ?? 0xff000000,
123
+ bufferMemory,
124
+ txManager: this.txManager,
125
+ txMemManager: this.txMemManager,
126
+ shManager: this.shManager,
127
+ contextSpy: this.contextSpy,
128
+ forceWebGL2,
129
+ };
130
+ this.renderer = new renderEngine(rendererOptions);
131
+ const renderMode = this.renderer.mode || 'webgl';
132
+ this.createDefaultTexture();
133
+ this.defShaderCtr = this.renderer.getDefShaderCtr();
134
+ setPremultiplyMode(renderMode);
135
+ // Must do this after renderer is created
136
+ this.txManager.renderer = this.renderer;
137
+ // Create text renderers
138
+ this.textRenderers = {};
139
+ fontEngines.forEach((fontEngineConstructor) => {
140
+ const fontEngineInstance = new fontEngineConstructor(this);
141
+ const className = fontEngineInstance.type;
142
+ if (className === 'sdf' && renderMode === 'canvas') {
143
+ console.warn('SdfTextRenderer is not compatible with Canvas renderer. Skipping...');
144
+ return;
145
+ }
146
+ if (fontEngineInstance instanceof TextRenderer) {
147
+ if (className === 'canvas') {
148
+ this.textRenderers['canvas'] =
149
+ fontEngineInstance;
150
+ }
151
+ else if (className === 'sdf') {
152
+ this.textRenderers['sdf'] = fontEngineInstance;
153
+ }
154
+ }
155
+ });
156
+ if (Object.keys(this.textRenderers).length === 0) {
157
+ console.warn('No text renderers available. Your text will not render.');
158
+ }
159
+ this.fontManager = new TrFontManager(this.textRenderers);
160
+ // create root node
161
+ const rootNode = new CoreNode(this, {
162
+ x: 0,
163
+ y: 0,
164
+ width: appWidth,
165
+ height: appHeight,
166
+ alpha: 1,
167
+ autosize: false,
168
+ boundsMargin: null,
169
+ clipping: false,
170
+ color: 0x00000000,
171
+ colorTop: 0x00000000,
172
+ colorBottom: 0x00000000,
173
+ colorLeft: 0x00000000,
174
+ colorRight: 0x00000000,
175
+ colorTl: 0x00000000,
176
+ colorTr: 0x00000000,
177
+ colorBl: 0x00000000,
178
+ colorBr: 0x00000000,
179
+ zIndex: 0,
180
+ zIndexLocked: 0,
181
+ scaleX: 1,
182
+ scaleY: 1,
183
+ mountX: 0,
184
+ mountY: 0,
185
+ mount: 0,
186
+ pivot: 0.5,
187
+ pivotX: 0.5,
188
+ pivotY: 0.5,
189
+ rotation: 0,
190
+ parent: null,
191
+ texture: null,
192
+ textureOptions: {},
193
+ shader: this.defShaderCtr,
194
+ rtt: false,
195
+ src: null,
196
+ scale: 1,
197
+ preventCleanup: false,
198
+ strictBounds: this.strictBounds,
199
+ });
200
+ this.root = rootNode;
201
+ // execute platform start loop
202
+ if (autoStart) {
203
+ startLoop(this);
204
+ }
205
+ }
206
+ setClearColor(color) {
207
+ this.renderer.updateClearColor(color);
208
+ this.renderRequested = true;
209
+ }
210
+ /**
211
+ * Update the target frame time based on the current targetFPS setting
212
+ *
213
+ * @remarks
214
+ * This should be called whenever the targetFPS option is changed
215
+ * to ensure targetFrameTime stays in sync.
216
+ * targetFPS of 0 means no throttling (targetFrameTime = 0)
217
+ * targetFPS > 0 means throttle to 1000/targetFPS milliseconds
218
+ */
219
+ updateTargetFrameTime() {
220
+ this.targetFrameTime =
221
+ this.options.targetFPS > 0 ? 1000 / this.options.targetFPS : 0;
222
+ }
223
+ updateFrameTime() {
224
+ const newFrameTime = getTimeStamp();
225
+ this.lastFrameTime = this.currentFrameTime;
226
+ this.currentFrameTime = newFrameTime;
227
+ this.deltaTime = !this.lastFrameTime
228
+ ? 100 / 6
229
+ : newFrameTime - this.lastFrameTime;
230
+ this.txManager.frameTime = newFrameTime;
231
+ this.txMemManager.frameTime = newFrameTime;
232
+ // This event is emitted at the beginning of the frame (before any updates
233
+ // or rendering), so no need to to use `stage.queueFrameEvent` here.
234
+ this.eventBus.emit('frameTick', {
235
+ time: this.currentFrameTime,
236
+ delta: this.deltaTime,
237
+ });
238
+ }
239
+ /**
240
+ * Create default PixelTexture
241
+ */
242
+ createDefaultTexture() {
243
+ console.log('Creating default texture');
244
+ this.defaultTexture = this.txManager.createTexture('ColorTexture', {
245
+ color: 0xffffffff,
246
+ });
247
+ assertTruthy(this.defaultTexture instanceof ColorTexture);
248
+ this.txManager.loadTexture(this.defaultTexture, true);
249
+ // Mark the default texture as ALWAYS renderable
250
+ // This prevents it from ever being cleaned up.
251
+ // Fixes https://github.com/lightning-js/renderer/issues/262
252
+ this.defaultTexture.setRenderableOwner(this, true);
253
+ // When the default texture is loaded, request a render in case the
254
+ // RAF is paused. Fixes: https://github.com/lightning-js/renderer/issues/123
255
+ this.defaultTexture.once('loaded', () => {
256
+ this.requestRender();
257
+ });
258
+ }
259
+ /**
260
+ * Update animations
261
+ */
262
+ updateAnimations() {
263
+ const { animationManager } = this;
264
+ if (!this.root) {
265
+ return;
266
+ }
267
+ // step animation
268
+ animationManager.update(this.deltaTime);
269
+ }
270
+ /**
271
+ * Check if the scene has updates
272
+ */
273
+ hasSceneUpdates() {
274
+ return (!!this.root.updateType ||
275
+ this.renderRequested ||
276
+ this.txManager.hasUpdates());
277
+ }
278
+ /**
279
+ * Start a new frame draw
280
+ */
281
+ drawFrame() {
282
+ const { renderer, renderRequested } = this;
283
+ assertTruthy(renderer);
284
+ // Update tree if needed
285
+ if (this.root.updateType !== 0) {
286
+ this.root.update(this.deltaTime, this.root.clippingRect);
287
+ }
288
+ // Process some textures asynchronously but don't block the frame
289
+ // Use a background task to prevent frame drops
290
+ this.txManager
291
+ .processSome(this.options.textureProcessingTimeLimit)
292
+ .catch((err) => {
293
+ console.error('Error processing textures:', err);
294
+ });
295
+ // Reset render operations and clear the canvas
296
+ renderer.reset();
297
+ // Check if we need to cleanup textures
298
+ if (this.txMemManager.criticalCleanupRequested === true) {
299
+ this.txMemManager.cleanup(false);
300
+ if (this.txMemManager.criticalCleanupRequested === true) {
301
+ // If we still need to cleanup, request another but aggressive cleanup
302
+ this.txMemManager.cleanup(true);
303
+ }
304
+ }
305
+ // If we have RTT nodes draw them first
306
+ // So we can use them as textures in the main scene
307
+ if (renderer.rttNodes.length > 0) {
308
+ renderer.renderRTTNodes();
309
+ }
310
+ // Fill quads buffer
311
+ this.addQuads(this.root);
312
+ // Perform render pass
313
+ renderer?.render();
314
+ this.calculateFps();
315
+ this.calculateQuads();
316
+ // Reset renderRequested flag if it was set
317
+ if (renderRequested) {
318
+ this.renderRequested = false;
319
+ }
320
+ }
321
+ /**
322
+ * Queue an event to be emitted after the current/next frame is rendered
323
+ *
324
+ * @remarks
325
+ * When we are operating in the context of the render loop, we may want to
326
+ * emit events that are related to the current frame. However, we generally do
327
+ * NOT want to emit events directly in the middle of the render loop, since
328
+ * this could enable event handlers to modify the scene graph and cause
329
+ * unexpected behavior. Instead, we queue up events to be emitted and then
330
+ * flush the queue after the frame has been rendered.
331
+ *
332
+ * @param name
333
+ * @param data
334
+ */
335
+ queueFrameEvent(name, data) {
336
+ this.frameEventQueue.push([name, data]);
337
+ }
338
+ /**
339
+ * Emit all queued frame events
340
+ *
341
+ * @remarks
342
+ * This method should be called after the frame has been rendered to emit
343
+ * all events that were queued during the frame.
344
+ *
345
+ * See {@link queueFrameEvent} for more information.
346
+ */
347
+ flushFrameEvents() {
348
+ for (const [name, data] of this.frameEventQueue) {
349
+ this.eventBus.emit(name, data);
350
+ }
351
+ this.frameEventQueue = [];
352
+ }
353
+ calculateFps() {
354
+ // If there's an FPS update interval, emit the FPS update event
355
+ // when the specified interval has elapsed.
356
+ const { fpsUpdateInterval } = this.options;
357
+ if (fpsUpdateInterval) {
358
+ this.fpsNumFrames++;
359
+ this.fpsElapsedTime += this.deltaTime;
360
+ if (this.fpsElapsedTime >= fpsUpdateInterval) {
361
+ const fps = Math.round((this.fpsNumFrames * 1000) / this.fpsElapsedTime);
362
+ this.fpsNumFrames = 0;
363
+ this.fpsElapsedTime = 0;
364
+ this.queueFrameEvent('fpsUpdate', {
365
+ fps,
366
+ contextSpyData: this.contextSpy?.getData() ?? null,
367
+ });
368
+ this.contextSpy?.reset();
369
+ }
370
+ }
371
+ }
372
+ calculateQuads() {
373
+ const quads = this.renderer.getQuadCount();
374
+ if (quads && quads !== this.numQuadsRendered) {
375
+ this.numQuadsRendered = quads;
376
+ this.queueFrameEvent('quadsUpdate', {
377
+ quads,
378
+ });
379
+ }
380
+ }
381
+ addQuads(node) {
382
+ assertTruthy(this.renderer);
383
+ // If the node is renderable and has a loaded texture, render it
384
+ if (node.isRenderable === true) {
385
+ node.renderQuads(this.renderer);
386
+ }
387
+ for (let i = 0; i < node.children.length; i++) {
388
+ const child = node.children[i];
389
+ if (child === undefined) {
390
+ continue;
391
+ }
392
+ if (child.worldAlpha === 0 ||
393
+ (child.strictBounds === true &&
394
+ child.renderState === CoreNodeRenderState.OutOfBounds)) {
395
+ continue;
396
+ }
397
+ this.addQuads(child);
398
+ }
399
+ }
400
+ /**
401
+ * Request a render pass without forcing an update
402
+ */
403
+ requestRender() {
404
+ this.renderRequested = true;
405
+ }
406
+ /**
407
+ * Find all nodes at a given point
408
+ * @param data
409
+ */
410
+ findNodesAtPoint(data) {
411
+ const x = data.x / this.options.deviceLogicalPixelRatio;
412
+ const y = data.y / this.options.deviceLogicalPixelRatio;
413
+ const nodes = [];
414
+ for (const node of this.interactiveNodes) {
415
+ if (node.isRenderable === false) {
416
+ continue;
417
+ }
418
+ if (pointInBound(x, y, node.renderBound) === true) {
419
+ nodes.push(node);
420
+ }
421
+ }
422
+ return nodes;
423
+ }
424
+ /**
425
+ * Find the top node at a given point
426
+ * @param data
427
+ * @returns
428
+ */
429
+ getNodeFromPosition(data) {
430
+ const nodes = this.findNodesAtPoint(data);
431
+ if (nodes.length === 0) {
432
+ return null;
433
+ }
434
+ let topNode = nodes[0];
435
+ for (let i = 0; i < nodes.length; i++) {
436
+ if (nodes[i].zIndex > topNode.zIndex) {
437
+ topNode = nodes[i];
438
+ }
439
+ }
440
+ return topNode || null;
441
+ }
442
+ /**
443
+ * Given a font name, and possible renderer override, return the best compatible text renderer.
444
+ *
445
+ * @remarks
446
+ * Will try to return a canvas renderer if no other suitable renderer can be resolved.
447
+ *
448
+ * @param fontFamily
449
+ * @param textRendererOverride
450
+ * @returns
451
+ */
452
+ resolveTextRenderer(trProps, textRendererOverride = null) {
453
+ const fontCacheString = `${trProps.fontFamily}${trProps.fontStyle}${trProps.fontWeight}${trProps.fontStretch}${textRendererOverride ? textRendererOverride : ''}`;
454
+ // check our resolve cache first
455
+ if (this.fontResolveMap[fontCacheString] !== undefined) {
456
+ return this.fontResolveMap[fontCacheString];
457
+ }
458
+ // Resolve the text renderer
459
+ let rendererId = textRendererOverride;
460
+ let overrideFallback = false;
461
+ // Check if the override is valid (if one is provided)
462
+ if (rendererId) {
463
+ const possibleRenderer = this.textRenderers[rendererId];
464
+ if (!possibleRenderer) {
465
+ console.warn(`Text renderer override '${rendererId}' not found.`);
466
+ rendererId = null;
467
+ overrideFallback = true;
468
+ }
469
+ else if (!possibleRenderer.canRenderFont(trProps)) {
470
+ console.warn(`Cannot use override text renderer '${rendererId}' for font`, trProps);
471
+ rendererId = null;
472
+ overrideFallback = true;
473
+ }
474
+ }
475
+ if (!rendererId) {
476
+ // Iterate through the text renderers and find the first one that can render the font
477
+ for (const [trId, tr] of Object.entries(this.textRenderers)) {
478
+ if (tr.canRenderFont(trProps)) {
479
+ rendererId = trId;
480
+ break;
481
+ }
482
+ }
483
+ if (!rendererId && this.textRenderers.canvas !== undefined) {
484
+ // If no renderer can be found, use the canvas renderer
485
+ rendererId = 'canvas';
486
+ }
487
+ }
488
+ if (overrideFallback) {
489
+ console.warn(`Falling back to text renderer ${String(rendererId)}`);
490
+ }
491
+ if (!rendererId) {
492
+ // silently fail if no renderer can be found, the error is already created
493
+ // at the constructor level
494
+ return null;
495
+ }
496
+ // By now we are guaranteed to have a valid rendererId (at least Canvas);
497
+ const resolvedTextRenderer = this.textRenderers[rendererId];
498
+ assertTruthy(resolvedTextRenderer, 'resolvedTextRenderer undefined');
499
+ // cache the resolved renderer for future use with these trProps
500
+ this.fontResolveMap[fontCacheString] = resolvedTextRenderer;
501
+ // Need to explicitly cast to TextRenderer because TS doesn't like
502
+ // the covariant state argument in the setter method map
503
+ return resolvedTextRenderer;
504
+ }
505
+ /**
506
+ * Create a shader controller instance
507
+ *
508
+ * @param type
509
+ * @param props
510
+ * @returns
511
+ */
512
+ createShaderCtr(type, props) {
513
+ return this.shManager.loadShader(type, props);
514
+ }
515
+ createNode(props) {
516
+ const resolvedProps = this.resolveNodeDefaults(props);
517
+ return new CoreNode(this, resolvedProps);
518
+ }
519
+ createTextNode(props) {
520
+ const fontSize = props.fontSize ?? 16;
521
+ const resolvedProps = {
522
+ ...this.resolveNodeDefaults(props),
523
+ text: props.text ?? '',
524
+ textRendererOverride: props.textRendererOverride ?? null,
525
+ fontSize,
526
+ fontFamily: props.fontFamily ?? 'sans-serif',
527
+ fontStyle: props.fontStyle ?? 'normal',
528
+ fontWeight: props.fontWeight ?? 'normal',
529
+ fontStretch: props.fontStretch ?? 'normal',
530
+ textAlign: props.textAlign ?? 'left',
531
+ contain: props.contain ?? 'none',
532
+ scrollable: props.scrollable ?? false,
533
+ scrollY: props.scrollY ?? 0,
534
+ offsetY: props.offsetY ?? 0,
535
+ letterSpacing: props.letterSpacing ?? 0,
536
+ lineHeight: props.lineHeight, // `undefined` is a valid value
537
+ maxLines: props.maxLines ?? 0,
538
+ textBaseline: props.textBaseline ?? 'alphabetic',
539
+ verticalAlign: props.verticalAlign ?? 'middle',
540
+ overflowSuffix: props.overflowSuffix ?? '...',
541
+ debug: props.debug ?? {},
542
+ shaderProps: null,
543
+ };
544
+ const resolvedTextRenderer = this.resolveTextRenderer(resolvedProps, props.textRendererOverride);
545
+ if (!resolvedTextRenderer) {
546
+ throw new Error(`No compatible text renderer found for ${resolvedProps.fontFamily}`);
547
+ }
548
+ return new CoreTextNode(this, resolvedProps, resolvedTextRenderer);
549
+ }
550
+ setBoundsMargin(value) {
551
+ this.boundsMargin = Array.isArray(value)
552
+ ? value
553
+ : [value, value, value, value];
554
+ this.root.setUpdateType(UpdateType.RenderBounds);
555
+ }
556
+ /**
557
+ * Resolves the default property values for a Node
558
+ *
559
+ * @remarks
560
+ * This method is used internally by the RendererMain to resolve the default
561
+ * property values for a Node. It is exposed publicly so that it can be used
562
+ * by Core Driver implementations.
563
+ *
564
+ * @param props
565
+ * @returns
566
+ */
567
+ resolveNodeDefaults(props) {
568
+ const color = props.color ?? 0xffffffff;
569
+ const colorTl = props.colorTl ?? props.colorTop ?? props.colorLeft ?? color;
570
+ const colorTr = props.colorTr ?? props.colorTop ?? props.colorRight ?? color;
571
+ const colorBl = props.colorBl ?? props.colorBottom ?? props.colorLeft ?? color;
572
+ const colorBr = props.colorBr ?? props.colorBottom ?? props.colorRight ?? color;
573
+ let data = {};
574
+ if (this.options.inspector === true) {
575
+ data = santizeCustomDataMap(props.data ?? {});
576
+ }
577
+ return {
578
+ x: props.x ?? 0,
579
+ y: props.y ?? 0,
580
+ width: props.width ?? 0,
581
+ height: props.height ?? 0,
582
+ alpha: props.alpha ?? 1,
583
+ autosize: props.autosize ?? false,
584
+ boundsMargin: props.boundsMargin ?? null,
585
+ clipping: props.clipping ?? false,
586
+ color,
587
+ colorTop: props.colorTop ?? color,
588
+ colorBottom: props.colorBottom ?? color,
589
+ colorLeft: props.colorLeft ?? color,
590
+ colorRight: props.colorRight ?? color,
591
+ colorBl,
592
+ colorBr,
593
+ colorTl,
594
+ colorTr,
595
+ zIndex: props.zIndex ?? 0,
596
+ zIndexLocked: props.zIndexLocked ?? 0,
597
+ parent: props.parent ?? null,
598
+ texture: props.texture ?? null,
599
+ textureOptions: props.textureOptions ?? {},
600
+ shader: props.shader ?? this.defShaderCtr,
601
+ // Since setting the `src` will trigger a texture load, we need to set it after
602
+ // we set the texture. Otherwise, problems happen.
603
+ src: props.src ?? null,
604
+ srcHeight: props.srcHeight,
605
+ srcWidth: props.srcWidth,
606
+ srcX: props.srcX,
607
+ srcY: props.srcY,
608
+ scale: props.scale ?? null,
609
+ scaleX: props.scaleX ?? props.scale ?? 1,
610
+ scaleY: props.scaleY ?? props.scale ?? 1,
611
+ mount: props.mount ?? 0,
612
+ mountX: props.mountX ?? props.mount ?? 0,
613
+ mountY: props.mountY ?? props.mount ?? 0,
614
+ pivot: props.pivot ?? 0.5,
615
+ pivotX: props.pivotX ?? props.pivot ?? 0.5,
616
+ pivotY: props.pivotY ?? props.pivot ?? 0.5,
617
+ rotation: props.rotation ?? 0,
618
+ rtt: props.rtt ?? false,
619
+ data: data,
620
+ preventCleanup: props.preventCleanup ?? false,
621
+ imageType: props.imageType,
622
+ interactive: props.interactive ?? false,
623
+ strictBounds: props.strictBounds ?? this.strictBounds,
624
+ };
625
+ }
626
+ /**
627
+ * Cleanup Orphaned Textures
628
+ *
629
+ * @remarks
630
+ * This method is used to cleanup orphaned textures that are no longer in use.
631
+ */
632
+ cleanup(aggressive) {
633
+ this.txMemManager.cleanup(aggressive);
634
+ }
635
+ }
636
+ //# 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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"}