@lightningjs/renderer 3.0.0-beta10 → 3.0.0-beta12

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 (355) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +133 -133
  4. package/dist/src/common/CommonTypes.d.ts +2 -2
  5. package/dist/src/core/CoreNode.d.ts +8 -7
  6. package/dist/src/core/CoreNode.js +57 -61
  7. package/dist/src/core/CoreNode.js.map +1 -1
  8. package/dist/src/core/CoreTextNode.d.ts +3 -0
  9. package/dist/src/core/CoreTextNode.js +54 -19
  10. package/dist/src/core/CoreTextNode.js.map +1 -1
  11. package/dist/src/core/Stage.js +4 -4
  12. package/dist/src/core/Stage.js.map +1 -1
  13. package/dist/src/core/lib/textureCompression.js +4 -4
  14. package/dist/src/core/lib/textureCompression.js.map +1 -1
  15. package/dist/src/core/platform.d.ts +10 -0
  16. package/dist/src/core/platform.js +81 -0
  17. package/dist/src/core/platform.js.map +1 -0
  18. package/dist/src/core/renderers/CoreShader.d.ts +9 -0
  19. package/dist/src/core/renderers/CoreShader.js +28 -0
  20. package/dist/src/core/renderers/CoreShader.js.map +1 -0
  21. package/dist/src/core/renderers/CoreShaderNode.js +2 -2
  22. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
  23. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +33 -0
  24. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +250 -0
  25. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -0
  26. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +16 -0
  27. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +124 -0
  28. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -0
  29. package/dist/src/core/renderers/canvas/CanvasRenderer.js +1 -1
  30. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  31. package/dist/src/core/renderers/canvas/CanvasTexture.js +5 -5
  32. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  33. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +13 -0
  34. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +113 -192
  35. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  36. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -2
  37. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -14
  38. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  39. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +10 -0
  40. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +43 -0
  41. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +1 -0
  42. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +12 -0
  43. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +58 -0
  44. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -0
  45. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +9 -0
  46. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +38 -0
  47. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
  48. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +56 -0
  49. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +239 -0
  50. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
  51. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +34 -0
  52. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +114 -0
  53. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
  54. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +133 -0
  55. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +616 -0
  56. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
  57. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +83 -0
  58. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +233 -0
  59. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
  60. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +5 -6
  61. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  62. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +13 -0
  63. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -5
  64. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
  65. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +21 -21
  66. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  67. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +1 -1
  68. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
  69. package/dist/src/core/renderers/webgl/WebGlRenderer.js +12 -11
  70. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  71. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +2 -2
  72. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  73. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +35 -35
  74. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
  75. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +87 -0
  76. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
  77. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
  78. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +119 -0
  79. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
  80. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +29 -0
  81. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +413 -0
  82. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
  83. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +28 -0
  84. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +131 -0
  85. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
  86. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +47 -0
  87. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +160 -0
  88. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
  89. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +31 -0
  90. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +71 -0
  91. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
  92. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +30 -0
  93. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +58 -0
  94. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
  95. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +31 -0
  96. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +71 -0
  97. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
  98. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +31 -0
  99. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +71 -0
  100. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
  101. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +31 -0
  102. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +71 -0
  103. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
  104. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +9 -0
  105. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +136 -0
  106. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
  107. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +36 -0
  108. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +85 -0
  109. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -0
  110. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +45 -0
  111. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +104 -0
  112. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
  113. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +22 -0
  114. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +45 -0
  115. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
  116. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +58 -0
  117. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +80 -0
  118. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -0
  119. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +35 -0
  120. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +129 -0
  121. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
  122. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +39 -0
  123. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +116 -0
  124. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -0
  125. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
  126. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +127 -0
  127. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
  128. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +40 -0
  129. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +71 -0
  130. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
  131. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +115 -0
  132. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
  133. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
  134. package/dist/src/core/shaders/canvas/Border.js +4 -4
  135. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  136. package/dist/src/core/shaders/canvas/HolePunch.js +3 -3
  137. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
  138. package/dist/src/core/shaders/canvas/LinearGradient.js +2 -2
  139. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  140. package/dist/src/core/shaders/canvas/RadialGradient.js +4 -4
  141. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  142. package/dist/src/core/shaders/canvas/Rounded.js +1 -1
  143. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
  144. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +3 -3
  145. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  146. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +3 -3
  147. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  148. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +1 -1
  149. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  150. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +1 -1
  151. package/dist/src/core/shaders/templates/BorderTemplate.js +10 -10
  152. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  153. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
  154. package/dist/src/core/shaders/templates/HolePunchTemplate.js +2 -2
  155. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
  156. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +2 -2
  157. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -2
  158. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
  159. package/dist/src/core/shaders/templates/shaderUtils.d.ts +5 -0
  160. package/dist/src/core/shaders/templates/shaderUtils.js +41 -0
  161. package/dist/src/core/shaders/templates/shaderUtils.js.map +1 -0
  162. package/dist/src/core/shaders/webgl/Border.js +83 -83
  163. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  164. package/dist/src/core/shaders/webgl/Default.js +47 -47
  165. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  166. package/dist/src/core/shaders/webgl/HolePunch.js +34 -34
  167. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  168. package/dist/src/core/shaders/webgl/LinearGradient.js +36 -36
  169. package/dist/src/core/shaders/webgl/RadialGradient.js +35 -35
  170. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  171. package/dist/src/core/shaders/webgl/Rounded.js +72 -72
  172. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
  173. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +113 -113
  174. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  175. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +132 -132
  176. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  177. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +55 -55
  178. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
  179. package/dist/src/core/shaders/webgl/SdfShader.js +62 -62
  180. package/dist/src/core/shaders/webgl/Shadow.js +83 -83
  181. package/dist/src/core/shaders/webgl/Spinner.d.ts +1 -0
  182. package/dist/src/core/shaders/webgl/Spinner.js +2 -0
  183. package/dist/src/core/shaders/webgl/Spinner.js.map +1 -0
  184. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +16 -0
  185. package/dist/src/core/text-rendering/CanvasFontHandler.js +29 -0
  186. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
  187. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +15 -0
  188. package/dist/src/core/text-rendering/SdfFontHandler.js +34 -2
  189. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  190. package/dist/src/core/text-rendering/TextRenderer.d.ts +2 -0
  191. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  192. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  193. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  194. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -5
  195. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  196. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -7
  197. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +2 -50
  198. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  199. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
  200. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +83 -42
  201. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  202. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +1 -1
  203. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +8 -66
  204. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  205. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +4 -14
  206. package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -3
  207. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  208. package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +12 -0
  209. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +61 -0
  210. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +1 -0
  211. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +45 -0
  212. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +69 -0
  213. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +1 -0
  214. package/dist/src/core/textures/ColorTexture.js +1 -1
  215. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  216. package/dist/src/core/textures/ImageTexture.d.ts +2 -2
  217. package/dist/src/core/textures/ImageTexture.js +11 -11
  218. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  219. package/dist/src/core/textures/NoiseTexture.d.ts +2 -2
  220. package/dist/src/core/textures/NoiseTexture.js +6 -6
  221. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  222. package/dist/src/core/textures/RenderTexture.d.ts +6 -6
  223. package/dist/src/core/textures/RenderTexture.js +10 -10
  224. package/dist/src/core/textures/RenderTexture.js.map +1 -1
  225. package/dist/src/core/textures/SubTexture.d.ts +4 -4
  226. package/dist/src/core/textures/SubTexture.js +8 -8
  227. package/dist/src/core/textures/SubTexture.js.map +1 -1
  228. package/dist/src/core/textures/Texture.d.ts +3 -4
  229. package/dist/src/core/textures/Texture.js +4 -4
  230. package/dist/src/core/textures/Texture.js.map +1 -1
  231. package/dist/src/main-api/DynamicShaderController.d.ts +29 -0
  232. package/dist/src/main-api/DynamicShaderController.js +58 -0
  233. package/dist/src/main-api/DynamicShaderController.js.map +1 -0
  234. package/dist/src/main-api/Inspector.js +7 -7
  235. package/dist/src/main-api/Inspector.js.map +1 -1
  236. package/dist/src/main-api/Renderer.js +2 -2
  237. package/dist/src/main-api/Renderer.js.map +1 -1
  238. package/dist/src/main-api/ShaderController.d.ts +31 -0
  239. package/dist/src/main-api/ShaderController.js +37 -0
  240. package/dist/src/main-api/ShaderController.js.map +1 -0
  241. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  242. package/exports/canvas-shaders.ts +28 -28
  243. package/exports/canvas.ts +45 -45
  244. package/exports/index.ts +82 -82
  245. package/exports/inspector.ts +24 -24
  246. package/exports/utils.ts +50 -50
  247. package/exports/webgl-shaders.ts +28 -28
  248. package/exports/webgl.ts +52 -52
  249. package/package.json +2 -1
  250. package/src/common/CommonTypes.ts +146 -146
  251. package/src/common/EventEmitter.ts +77 -77
  252. package/src/common/IAnimationController.ts +92 -92
  253. package/src/common/IEventEmitter.ts +28 -28
  254. package/src/core/CoreNode.test.ts +202 -202
  255. package/src/core/CoreNode.ts +2481 -2491
  256. package/src/core/CoreShaderManager.ts +188 -188
  257. package/src/core/CoreTextNode.ts +483 -443
  258. package/src/core/CoreTextureManager.ts +565 -565
  259. package/src/core/Stage.ts +906 -906
  260. package/src/core/TextureMemoryManager.ts +445 -445
  261. package/src/core/animations/AnimationManager.ts +38 -38
  262. package/src/core/animations/CoreAnimation.ts +291 -291
  263. package/src/core/animations/CoreAnimationController.ts +166 -166
  264. package/src/core/lib/ContextSpy.ts +41 -41
  265. package/src/core/lib/ImageWorker.ts +286 -286
  266. package/src/core/lib/Matrix3d.ts +244 -244
  267. package/src/core/lib/RenderCoords.ts +71 -71
  268. package/src/core/lib/WebGlContextWrapper.ts +1381 -1381
  269. package/src/core/lib/colorCache.ts +20 -20
  270. package/src/core/lib/colorParser.ts +85 -85
  271. package/src/core/lib/textureCompression.ts +152 -152
  272. package/src/core/lib/textureSvg.ts +78 -78
  273. package/src/core/lib/utils.ts +412 -412
  274. package/src/core/lib/validateImageBitmap.ts +87 -87
  275. package/src/core/platforms/Platform.ts +77 -77
  276. package/src/core/platforms/web/WebPlatform.ts +121 -121
  277. package/src/core/renderers/CoreContextTexture.ts +43 -43
  278. package/src/core/renderers/CoreRenderOp.ts +22 -22
  279. package/src/core/renderers/CoreRenderer.ts +110 -110
  280. package/src/core/renderers/CoreShaderNode.ts +175 -175
  281. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  282. package/src/core/renderers/canvas/CanvasRenderer.ts +283 -283
  283. package/src/core/renderers/canvas/CanvasShaderNode.ts +96 -96
  284. package/src/core/renderers/canvas/CanvasTexture.ts +156 -156
  285. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +81 -91
  286. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +95 -50
  287. package/src/core/renderers/webgl/WebGlCtxTexture.ts +301 -310
  288. package/src/core/renderers/webgl/WebGlRenderOp.ts +167 -167
  289. package/src/core/renderers/webgl/WebGlRenderer.ts +746 -747
  290. package/src/core/renderers/webgl/WebGlShaderNode.ts +435 -435
  291. package/src/core/renderers/webgl/WebGlShaderProgram.ts +341 -341
  292. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  293. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  294. package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -281
  295. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  296. package/src/core/shaders/canvas/Border.ts +75 -75
  297. package/src/core/shaders/canvas/HolePunch.ts +55 -62
  298. package/src/core/shaders/canvas/LinearGradient.ts +71 -71
  299. package/src/core/shaders/canvas/RadialGradient.ts +99 -99
  300. package/src/core/shaders/canvas/Rounded.ts +55 -55
  301. package/src/core/shaders/canvas/RoundedWithBorder.ts +72 -74
  302. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -90
  303. package/src/core/shaders/canvas/RoundedWithShadow.ts +70 -70
  304. package/src/core/shaders/canvas/Shadow.ts +52 -52
  305. package/src/core/shaders/canvas/utils/render.ts +151 -151
  306. package/src/core/shaders/templates/BorderTemplate.ts +115 -115
  307. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  308. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  309. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -81
  310. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  311. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  312. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  313. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  314. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  315. package/src/core/shaders/utils.ts +46 -46
  316. package/src/core/shaders/webgl/Border.ts +116 -116
  317. package/src/core/shaders/webgl/Default.ts +89 -89
  318. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  319. package/src/core/shaders/webgl/HolePunch.ts +75 -75
  320. package/src/core/shaders/webgl/LinearGradient.ts +82 -82
  321. package/src/core/shaders/webgl/RadialGradient.ts +85 -85
  322. package/src/core/shaders/webgl/Rounded.ts +113 -117
  323. package/src/core/shaders/webgl/RoundedWithBorder.ts +151 -155
  324. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +175 -175
  325. package/src/core/shaders/webgl/RoundedWithShadow.ts +94 -98
  326. package/src/core/shaders/webgl/SdfShader.ts +134 -134
  327. package/src/core/shaders/webgl/Shadow.ts +115 -115
  328. package/src/core/text-rendering/CanvasFontHandler.ts +210 -176
  329. package/src/core/text-rendering/CanvasTextRenderer.ts +622 -622
  330. package/src/core/text-rendering/SdfFontHandler.ts +554 -517
  331. package/src/core/text-rendering/SdfTextRenderer.ts +466 -466
  332. package/src/core/text-rendering/TextRenderer.ts +406 -404
  333. package/src/core/text-rendering/Utils.ts +257 -257
  334. package/src/core/text-rendering/canvas/Settings.ts +99 -99
  335. package/src/core/text-rendering/canvas/Utils.test.ts +206 -206
  336. package/src/core/text-rendering/canvas/Utils.ts +178 -178
  337. package/src/core/text-rendering/canvas/calculateRenderInfo.ts +299 -299
  338. package/src/core/text-rendering/canvas/draw.ts +165 -165
  339. package/src/core/text-rendering/sdf/Utils.test.ts +402 -402
  340. package/src/core/text-rendering/sdf/Utils.ts +436 -436
  341. package/src/core/text-rendering/sdf/index.ts +20 -20
  342. package/src/core/textures/ColorTexture.ts +102 -102
  343. package/src/core/textures/ImageTexture.ts +418 -418
  344. package/src/core/textures/NoiseTexture.ts +104 -104
  345. package/src/core/textures/RenderTexture.ts +85 -85
  346. package/src/core/textures/SubTexture.ts +205 -205
  347. package/src/core/textures/Texture.ts +381 -381
  348. package/src/core/utils.ts +227 -227
  349. package/src/env.d.ts +7 -7
  350. package/src/main-api/INode.ts +100 -100
  351. package/src/main-api/Inspector.ts +567 -567
  352. package/src/main-api/Renderer.ts +873 -873
  353. package/src/main-api/utils.ts +45 -45
  354. package/src/utils.ts +267 -267
  355. package/COPYING +0 -1
package/README.md CHANGED
@@ -1,133 +1,133 @@
1
- # Lightning 3 Renderer
2
-
3
- A powerful 2D scene renderer designed for rendering highly performant user
4
- interfaces on web browsers running on embedded devices using WebGL.
5
-
6
- The Renderer is part of the [LightningJS](https://lightningjs.io) project. While it is possible to use the renderer directly, it is not recommended. Instead, Lightning 3 works best when combined with [Blits](https://lightningjs.io/v3-docs/blits/getting_started/intro.html).
7
-
8
- ## Setup & Commands
9
-
10
- ```
11
- # Install renderer + example dependencies
12
- pnpm install
13
-
14
- # Build Renderer
15
- pnpm build
16
-
17
- # Build Renderer (watch mode)
18
- pnpm watch
19
-
20
- # Run unit tests
21
- pnpm test
22
-
23
- # Run Visual Regression Tests
24
- pnpm test:visual
25
-
26
- # Build API Documentation (builds into ./typedocs folder)
27
- pnpm typedoc
28
-
29
- # Launch Example Tests in dev mode (includes Build Renderer (watch mode))
30
- pnpm start
31
-
32
- # Launch Example Tests in production mode
33
- # IMPORTANT: To run test examples on embedded devices that use older browser versions
34
- # you MUST run the examples in this mode.
35
- pnpm start:prod
36
- ```
37
-
38
- ## Browser Targets
39
-
40
- The Lightning 3 Renderer's goal is to work with the following browser versions and above:
41
-
42
- - Chrome v38 (Released October 7, 2014)
43
-
44
- Any JavaScript language features or browser APIs that cannot be automatically transpiled or polyfilled by industry standard transpilers (such as Babel) to target these versions must be carefully considered before use.
45
-
46
- For a more detailed and comprehensive list of browsers and their features please see [browsers](./BROWSERS.md).
47
-
48
- ## Example Tests
49
-
50
- The Example Tests sub-project define a set of tests for various Renderer
51
- features. This is NOT an automated test. The command below will launch a
52
- web server which can be accessed by a web browser for manual testing. However,
53
- many of the Example Tests define Snapshots for the Visual Regression Test Runner
54
- (see below).
55
-
56
- The Example Tests can be launched with:
57
-
58
- ```
59
- pnpm start
60
- ```
61
-
62
- A hosted version can be found [here](https://lightning-js.github.io/renderer/).
63
-
64
- This supports modern browsers as well as Chrome 38 and above through a legacy build.
65
-
66
- See [examples/README.md](./examples/README.md) for more info.
67
-
68
- ## Visual Regression Tests
69
-
70
- In order to prevent bugs on existing Renderer features when new features or bug
71
- fixes are added, the Renderer includes a Visual Regression Test Runner along
72
- with a set of certified snapshot files that are checked into the repository.
73
-
74
- These tests can be launched with:
75
-
76
- ```
77
- pnpm test:visual
78
- ```
79
-
80
- The captured Snapshots of these tests are optionally defined in the individual
81
- Example Tests.
82
-
83
- See [visual-regression/README.md](./visual-regression/README.md) for more info.
84
-
85
- ## Manual Regression Tests
86
-
87
- See [docs/ManualRegressionTests.md].
88
-
89
- ## Release Procedure
90
-
91
- See [RELEASE.md](./RELEASE.md)
92
-
93
- ## Installing Fonts
94
-
95
- Fonts can be installed into the Font Manager exposed by the Renderer's Stage.
96
- There are two types of fonts that you can install, Web/Canvas2D fonts (WebTrFontFace)
97
- and SDF fonts (SdfTrFontFace). Install that fonts that your applications needs
98
- at start up so they are ready when your application is rendered.
99
-
100
- ```ts
101
- import { RendererMain } from '@lightningjs/renderer';
102
-
103
- import {
104
- WebGlCoreRenderer,
105
- SdfTextRenderer,
106
- } from '@lightningjs/renderer/webgl';
107
- import { CanvasTextRenderer } from '@lightningjs/renderer/canvas';
108
-
109
- const renderer = new RendererMain(
110
- {
111
- appWidth: 1920,
112
- appHeight: 1080,
113
- renderEngine: WebGlCoreRenderer,
114
- fontEngines: [SdfTextRenderer, CanvasTextRenderer],
115
- // ...Other Renderer Config
116
- },
117
- 'app', // id of div to insert Canvas.
118
- );
119
-
120
- // Load fonts by explicitly specifying the renderer type
121
- await stage.loadFont('canvas', {
122
- fontFamily: 'myWebFont',
123
- fontUrl: '/fonts/my-font.ttf',
124
- });
125
-
126
- await stage.loadFont('sdf', {
127
- fontFamily: 'mySdfFont',
128
- atlasUrl: '/fonts/my-font-atlas.png',
129
- atlasDataUrl: '/fonts/my-font-data.json',
130
- });
131
- ```
132
-
133
- For more information see [Font Loading](./docs/fontLoading.md)
1
+ # Lightning 3 Renderer
2
+
3
+ A powerful 2D scene renderer designed for rendering highly performant user
4
+ interfaces on web browsers running on embedded devices using WebGL.
5
+
6
+ The Renderer is part of the [LightningJS](https://lightningjs.io) project. While it is possible to use the renderer directly, it is not recommended. Instead, Lightning 3 works best when combined with [Blits](https://lightningjs.io/v3-docs/blits/getting_started/intro.html).
7
+
8
+ ## Setup & Commands
9
+
10
+ ```
11
+ # Install renderer + example dependencies
12
+ pnpm install
13
+
14
+ # Build Renderer
15
+ pnpm build
16
+
17
+ # Build Renderer (watch mode)
18
+ pnpm watch
19
+
20
+ # Run unit tests
21
+ pnpm test
22
+
23
+ # Run Visual Regression Tests
24
+ pnpm test:visual
25
+
26
+ # Build API Documentation (builds into ./typedocs folder)
27
+ pnpm typedoc
28
+
29
+ # Launch Example Tests in dev mode (includes Build Renderer (watch mode))
30
+ pnpm start
31
+
32
+ # Launch Example Tests in production mode
33
+ # IMPORTANT: To run test examples on embedded devices that use older browser versions
34
+ # you MUST run the examples in this mode.
35
+ pnpm start:prod
36
+ ```
37
+
38
+ ## Browser Targets
39
+
40
+ The Lightning 3 Renderer's goal is to work with the following browser versions and above:
41
+
42
+ - Chrome v38 (Released October 7, 2014)
43
+
44
+ Any JavaScript language features or browser APIs that cannot be automatically transpiled or polyfilled by industry standard transpilers (such as Babel) to target these versions must be carefully considered before use.
45
+
46
+ For a more detailed and comprehensive list of browsers and their features please see [browsers](./BROWSERS.md).
47
+
48
+ ## Example Tests
49
+
50
+ The Example Tests sub-project define a set of tests for various Renderer
51
+ features. This is NOT an automated test. The command below will launch a
52
+ web server which can be accessed by a web browser for manual testing. However,
53
+ many of the Example Tests define Snapshots for the Visual Regression Test Runner
54
+ (see below).
55
+
56
+ The Example Tests can be launched with:
57
+
58
+ ```
59
+ pnpm start
60
+ ```
61
+
62
+ A hosted version can be found [here](https://lightning-js.github.io/renderer/).
63
+
64
+ This supports modern browsers as well as Chrome 38 and above through a legacy build.
65
+
66
+ See [examples/README.md](./examples/README.md) for more info.
67
+
68
+ ## Visual Regression Tests
69
+
70
+ In order to prevent bugs on existing Renderer features when new features or bug
71
+ fixes are added, the Renderer includes a Visual Regression Test Runner along
72
+ with a set of certified snapshot files that are checked into the repository.
73
+
74
+ These tests can be launched with:
75
+
76
+ ```
77
+ pnpm test:visual
78
+ ```
79
+
80
+ The captured Snapshots of these tests are optionally defined in the individual
81
+ Example Tests.
82
+
83
+ See [visual-regression/README.md](./visual-regression/README.md) for more info.
84
+
85
+ ## Manual Regression Tests
86
+
87
+ See [docs/ManualRegressionTests.md].
88
+
89
+ ## Release Procedure
90
+
91
+ See [RELEASE.md](./RELEASE.md)
92
+
93
+ ## Installing Fonts
94
+
95
+ Fonts can be installed into the Font Manager exposed by the Renderer's Stage.
96
+ There are two types of fonts that you can install, Web/Canvas2D fonts (WebTrFontFace)
97
+ and SDF fonts (SdfTrFontFace). Install that fonts that your applications needs
98
+ at start up so they are ready when your application is rendered.
99
+
100
+ ```ts
101
+ import { RendererMain } from '@lightningjs/renderer';
102
+
103
+ import {
104
+ WebGlCoreRenderer,
105
+ SdfTextRenderer,
106
+ } from '@lightningjs/renderer/webgl';
107
+ import { CanvasTextRenderer } from '@lightningjs/renderer/canvas';
108
+
109
+ const renderer = new RendererMain(
110
+ {
111
+ appWidth: 1920,
112
+ appHeight: 1080,
113
+ renderEngine: WebGlCoreRenderer,
114
+ fontEngines: [SdfTextRenderer, CanvasTextRenderer],
115
+ // ...Other Renderer Config
116
+ },
117
+ 'app', // id of div to insert Canvas.
118
+ );
119
+
120
+ // Load fonts by explicitly specifying the renderer type
121
+ await stage.loadFont('canvas', {
122
+ fontFamily: 'myWebFont',
123
+ fontUrl: '/fonts/my-font.ttf',
124
+ });
125
+
126
+ await stage.loadFont('sdf', {
127
+ fontFamily: 'mySdfFont',
128
+ atlasUrl: '/fonts/my-font-atlas.png',
129
+ atlasDataUrl: '/fonts/my-font-data.json',
130
+ });
131
+ ```
132
+
133
+ For more information see [Font Loading](./docs/fontLoading.md)
@@ -10,8 +10,8 @@ import type { CoreNodeRenderState } from '../core/CoreNode.js';
10
10
  * Represents a width and height.
11
11
  */
12
12
  export interface Dimensions {
13
- width: number;
14
- height: number;
13
+ w: number;
14
+ h: number;
15
15
  }
16
16
  /**
17
17
  * Payload for when text is loaded
@@ -160,16 +160,18 @@ export interface CoreNodeProps {
160
160
  y: number;
161
161
  /**
162
162
  * The width of the Node.
163
+ * @warning This will be deprecated in favor of `w` and `h` properties in the future.
163
164
  *
164
165
  * @default `0`
165
166
  */
166
- width: number;
167
+ w: number;
167
168
  /**
168
169
  * The height of the Node.
170
+ * @warning This will be deprecated in favor of `w` and `h` properties in the future.
169
171
  *
170
172
  * @default `0`
171
173
  */
172
- height: number;
174
+ h: number;
173
175
  /**
174
176
  * The alpha opacity of the Node.
175
177
  *
@@ -671,7 +673,6 @@ export declare class CoreNode extends EventEmitter {
671
673
  constructor(stage: Stage, props: CoreNodeProps);
672
674
  loadTexture(): void;
673
675
  unloadTexture(): void;
674
- autosizeNode(dimensions: Dimensions): void;
675
676
  protected onTextureLoaded: TextureLoadedEventHandler;
676
677
  private onTextureFailed;
677
678
  private onTextureFreed;
@@ -736,10 +737,10 @@ export declare class CoreNode extends EventEmitter {
736
737
  get absY(): number;
737
738
  get y(): number;
738
739
  set y(value: number);
739
- get width(): number;
740
- set width(value: number);
741
- get height(): number;
742
- set height(value: number);
740
+ get w(): number;
741
+ set w(value: number);
742
+ get h(): number;
743
+ set h(value: number);
743
744
  get scale(): number;
744
745
  set scale(value: number);
745
746
  get scaleX(): number;
@@ -201,8 +201,8 @@ export class CoreNode extends EventEmitter {
201
201
  // Fast-path assign only known keys
202
202
  p.x = props.x;
203
203
  p.y = props.y;
204
- p.width = props.width;
205
- p.height = props.height;
204
+ p.w = props.w;
205
+ p.h = props.h;
206
206
  p.alpha = props.alpha;
207
207
  p.autosize = props.autosize;
208
208
  p.clipping = props.clipping;
@@ -305,14 +305,11 @@ export class CoreNode extends EventEmitter {
305
305
  texture.off('freed', this.onTextureFreed);
306
306
  texture.setRenderableOwner(this, false);
307
307
  }
308
- autosizeNode(dimensions) {
309
- if (this.autosize) {
310
- this.width = dimensions.width;
311
- this.height = dimensions.height;
312
- }
313
- }
314
308
  onTextureLoaded = (_, dimensions) => {
315
- this.autosizeNode(dimensions);
309
+ if (this.autosize === true) {
310
+ this.w = dimensions.w;
311
+ this.h = dimensions.h;
312
+ }
316
313
  this.setUpdateType(UpdateType.IsRenderable);
317
314
  // Texture was loaded. In case the RAF loop has already stopped, we request
318
315
  // a render to ensure the texture is rendered.
@@ -322,7 +319,7 @@ export class CoreNode extends EventEmitter {
322
319
  this.notifyParentRTTOfUpdate();
323
320
  }
324
321
  // ignore 1x1 pixel textures
325
- if (dimensions.width > 1 && dimensions.height > 1) {
322
+ if (dimensions.w > 1 && dimensions.h > 1) {
326
323
  this.emit('loaded', {
327
324
  type: 'texture',
328
325
  dimensions,
@@ -381,12 +378,12 @@ export class CoreNode extends EventEmitter {
381
378
  }
382
379
  updateLocalTransform() {
383
380
  const p = this.props;
384
- const { x, y, width, height } = p;
385
- const mountTranslateX = p.mountX * width;
386
- const mountTranslateY = p.mountY * height;
381
+ const { x, y, w, h } = p;
382
+ const mountTranslateX = p.mountX * w;
383
+ const mountTranslateY = p.mountY * h;
387
384
  if (p.rotation !== 0 || p.scaleX !== 1 || p.scaleY !== 1) {
388
- const pivotTranslateX = p.pivotX * width;
389
- const pivotTranslateY = p.pivotY * height;
385
+ const pivotTranslateX = p.pivotX * w;
386
+ const pivotTranslateY = p.pivotY * h;
390
387
  this.localTransform = Matrix3d.translate(x - mountTranslateX + pivotTranslateX, y - mountTranslateY + pivotTranslateY, this.localTransform)
391
388
  .rotate(p.rotation)
392
389
  .scale(p.scaleX, p.scaleY)
@@ -404,26 +401,26 @@ export class CoreNode extends EventEmitter {
404
401
  let resizeModeScaleY = 1;
405
402
  let extraX = 0;
406
403
  let extraY = 0;
407
- const { width: tw, height: th } = texture.dimensions;
404
+ const { w: tw, h: th } = texture.dimensions;
408
405
  const txAspectRatio = tw / th;
409
- const nodeAspectRatio = width / height;
406
+ const nodeAspectRatio = w / h;
410
407
  if (txAspectRatio > nodeAspectRatio) {
411
408
  // Texture is wider than node
412
409
  // Center the node vertically (shift down by extraY)
413
410
  // Scale the node vertically to maintain original aspect ratio
414
- const scaleX = width / tw;
411
+ const scaleX = w / tw;
415
412
  const scaledTxHeight = th * scaleX;
416
- extraY = (height - scaledTxHeight) / 2;
417
- resizeModeScaleY = scaledTxHeight / height;
413
+ extraY = (h - scaledTxHeight) / 2;
414
+ resizeModeScaleY = scaledTxHeight / h;
418
415
  }
419
416
  else {
420
417
  // Texture is taller than node (or equal)
421
418
  // Center the node horizontally (shift right by extraX)
422
419
  // Scale the node horizontally to maintain original aspect ratio
423
- const scaleY = height / th;
420
+ const scaleY = h / th;
424
421
  const scaledTxWidth = tw * scaleY;
425
- extraX = (width - scaledTxWidth) / 2;
426
- resizeModeScaleX = scaledTxWidth / width;
422
+ extraX = (w - scaledTxWidth) / 2;
423
+ resizeModeScaleX = scaledTxWidth / w;
427
424
  }
428
425
  // Apply the extra translation and scale to the local transform
429
426
  this.localTransform
@@ -664,8 +661,7 @@ export class CoreNode extends EventEmitter {
664
661
  return CoreNodeRenderState.InViewport;
665
662
  }
666
663
  // check if we dont have dimensions, take our parent's render state
667
- if (this.parent !== null &&
668
- (this.props.width === 0 || this.props.height === 0)) {
664
+ if (this.parent !== null && (this.props.w === 0 || this.props.h === 0)) {
669
665
  return this.parent.renderState;
670
666
  }
671
667
  return CoreNodeRenderState.OutOfBounds;
@@ -709,13 +705,13 @@ export class CoreNode extends EventEmitter {
709
705
  return;
710
706
  }
711
707
  // clipping is enabled and we are in bounds create our own bounds
712
- const { x, y, width, height } = this.props;
708
+ const { x, y, w, h } = this.props;
713
709
  // Pick the global transform if available, otherwise use the local transform
714
710
  // global transform is only available if the node in an RTT chain
715
711
  const { tx, ty } = this.sceneGlobalTransform || this.globalTransform || {};
716
712
  const _x = tx ?? x;
717
713
  const _y = ty ?? y;
718
- this.strictBound = createBound(_x, _y, _x + width, _y + height, this.strictBound);
714
+ this.strictBound = createBound(_x, _y, _x + w, _y + h, this.strictBound);
719
715
  this.preloadBound = createPreloadBounds(this.strictBound, this.boundsMargin);
720
716
  }
721
717
  updateRenderState(renderState) {
@@ -753,7 +749,7 @@ export class CoreNode extends EventEmitter {
753
749
  // check shader
754
750
  (this.props.shader !== null || this.hasColorProps === true) &&
755
751
  // check dimensions
756
- (this.props.width !== 0 && this.props.height !== 0) === true) {
752
+ (this.props.w !== 0 && this.props.h !== 0) === true) {
757
753
  // This mean we have dimensions and a color set, so we can render a ColorTexture
758
754
  if (this.stage.defaultTexture &&
759
755
  this.stage.defaultTexture.state === 'loaded') {
@@ -782,14 +778,14 @@ export class CoreNode extends EventEmitter {
782
778
  this.texture?.setRenderableOwner(this, isRenderable);
783
779
  }
784
780
  calculateRenderCoords() {
785
- const { width, height } = this;
781
+ const { w, h } = this.props;
786
782
  const g = this.globalTransform;
787
783
  const tx = g.tx, ty = g.ty, ta = g.ta, tb = g.tb, tc = g.tc, td = g.td;
788
784
  if (tb === 0 && tc === 0) {
789
785
  const minX = tx;
790
- const maxX = tx + width * ta;
786
+ const maxX = tx + w * ta;
791
787
  const minY = ty;
792
- const maxY = ty + height * td;
788
+ const maxY = ty + h * td;
793
789
  this.renderCoords = RenderCoords.translate(
794
790
  //top-left
795
791
  minX, minY,
@@ -805,11 +801,11 @@ export class CoreNode extends EventEmitter {
805
801
  //top-left
806
802
  tx, ty,
807
803
  //top-right
808
- tx + width * ta, ty + width * tc,
804
+ tx + w * ta, ty + w * tc,
809
805
  //bottom-right
810
- tx + width * ta + height * tb, ty + width * tc + height * td,
806
+ tx + w * ta + h * tb, ty + w * tc + h * td,
811
807
  //bottom-left
812
- tx + height * tb, ty + height * td, this.renderCoords);
808
+ tx + h * tb, ty + h * td, this.renderCoords);
813
809
  }
814
810
  if (this.sceneGlobalTransform === undefined) {
815
811
  return;
@@ -817,9 +813,9 @@ export class CoreNode extends EventEmitter {
817
813
  const { tx: stx, ty: sty, ta: sta, tb: stb, tc: stc, td: std, } = this.sceneGlobalTransform;
818
814
  if (stb === 0 && stc === 0) {
819
815
  const minX = stx;
820
- const maxX = stx + width * sta;
816
+ const maxX = stx + w * sta;
821
817
  const minY = sty;
822
- const maxY = sty + height * std;
818
+ const maxY = sty + h * std;
823
819
  this.sceneRenderCoords = RenderCoords.translate(
824
820
  //top-left
825
821
  minX, minY,
@@ -835,11 +831,11 @@ export class CoreNode extends EventEmitter {
835
831
  //top-left
836
832
  stx, sty,
837
833
  //top-right
838
- stx + width * sta, sty + width * stc,
834
+ stx + w * sta, sty + w * stc,
839
835
  //bottom-right
840
- stx + width * sta + height * stb, sty + width * stc + height * std,
836
+ stx + w * sta + h * stb, sty + w * stc + h * std,
841
837
  //bottom-left
842
- stx + height * stb, sty + height * std, this.sceneRenderCoords);
838
+ stx + h * stb, sty + h * std, this.sceneRenderCoords);
843
839
  }
844
840
  }
845
841
  /**
@@ -857,8 +853,8 @@ export class CoreNode extends EventEmitter {
857
853
  if (clipping === true && isRotated === false) {
858
854
  clippingRect.x = gt.tx;
859
855
  clippingRect.y = gt.ty;
860
- clippingRect.width = this.width * gt.ta;
861
- clippingRect.height = this.height * gt.td;
856
+ clippingRect.width = this.props.w * gt.ta;
857
+ clippingRect.height = this.props.h * gt.td;
862
858
  clippingRect.valid = true;
863
859
  }
864
860
  else {
@@ -922,8 +918,8 @@ export class CoreNode extends EventEmitter {
922
918
  const coords = this.renderCoords;
923
919
  const texture = p.texture || this.stage.defaultTexture;
924
920
  renderer.addQuad({
925
- width: p.width,
926
- height: p.height,
921
+ width: p.w,
922
+ height: p.h,
927
923
  colorTl: this.premultipliedColorTl,
928
924
  colorTr: this.premultipliedColorTr,
929
925
  colorBl: this.premultipliedColorBl,
@@ -970,12 +966,12 @@ export class CoreNode extends EventEmitter {
970
966
  }
971
967
  get absX() {
972
968
  return (this.props.x +
973
- -this.props.width * this.props.mountX +
969
+ -this.props.w * this.props.mountX +
974
970
  (this.props.parent?.absX || this.props.parent?.globalTransform?.tx || 0));
975
971
  }
976
972
  get absY() {
977
973
  return (this.props.y +
978
- -this.props.height * this.props.mountY +
974
+ -this.props.h * this.props.mountY +
979
975
  (this.props.parent?.absY ?? 0));
980
976
  }
981
977
  get y() {
@@ -987,31 +983,31 @@ export class CoreNode extends EventEmitter {
987
983
  this.setUpdateType(UpdateType.Local);
988
984
  }
989
985
  }
990
- get width() {
991
- return this.props.width;
986
+ get w() {
987
+ return this.props.w;
992
988
  }
993
- set width(value) {
994
- if (this.props.width !== value) {
989
+ set w(value) {
990
+ if (this.props.w !== value) {
995
991
  this.textureCoords = undefined;
996
- this.props.width = value;
992
+ this.props.w = value;
997
993
  this.setUpdateType(UpdateType.Local);
998
994
  if (this.props.rtt === true) {
999
- this.framebufferDimensions.width = value;
995
+ this.framebufferDimensions.w = value;
1000
996
  this.texture = this.stage.txManager.createTexture('RenderTexture', this.framebufferDimensions);
1001
997
  this.setUpdateType(UpdateType.RenderTexture);
1002
998
  }
1003
999
  }
1004
1000
  }
1005
- get height() {
1006
- return this.props.height;
1001
+ get h() {
1002
+ return this.props.h;
1007
1003
  }
1008
- set height(value) {
1009
- if (this.props.height !== value) {
1004
+ set h(value) {
1005
+ if (this.props.h !== value) {
1010
1006
  this.textureCoords = undefined;
1011
- this.props.height = value;
1007
+ this.props.h = value;
1012
1008
  this.setUpdateType(UpdateType.Local);
1013
1009
  if (this.props.rtt === true) {
1014
- this.framebufferDimensions.height = value;
1010
+ this.framebufferDimensions.h = value;
1015
1011
  this.texture = this.stage.txManager.createTexture('RenderTexture', this.framebufferDimensions);
1016
1012
  this.setUpdateType(UpdateType.RenderTexture);
1017
1013
  }
@@ -1339,8 +1335,8 @@ export class CoreNode extends EventEmitter {
1339
1335
  }
1340
1336
  initRenderTexture() {
1341
1337
  this.framebufferDimensions = {
1342
- width: this.width,
1343
- height: this.height,
1338
+ w: this.props.w,
1339
+ h: this.props.h,
1344
1340
  };
1345
1341
  this.texture = this.stage.txManager.createTexture('RenderTexture', this.framebufferDimensions);
1346
1342
  this.stage.renderer.renderToTexture(this);
@@ -1418,8 +1414,8 @@ export class CoreNode extends EventEmitter {
1418
1414
  }
1419
1415
  this.texture = this.stage.txManager.createTexture('ImageTexture', {
1420
1416
  src: imageUrl,
1421
- width: this.props.width,
1422
- height: this.props.height,
1417
+ w: this.props.w,
1418
+ h: this.props.h,
1423
1419
  type: this.props.imageType,
1424
1420
  sx: this.props.srcX,
1425
1421
  sy: this.props.srcY,