@lightningjs/renderer 3.0.4 → 3.0.5

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 (206) hide show
  1. package/dist/src/common/EventEmitter.d.ts +7 -4
  2. package/dist/src/common/EventEmitter.js +1 -1
  3. package/dist/src/common/EventEmitter.js.map +1 -1
  4. package/dist/src/core/AutosizeManager.d.ts +29 -0
  5. package/dist/src/core/AutosizeManager.js +169 -0
  6. package/dist/src/core/AutosizeManager.js.map +1 -0
  7. package/dist/src/core/CoreTextNodeCanvas.d.ts +215 -0
  8. package/dist/src/core/CoreTextNodeCanvas.js +236 -0
  9. package/dist/src/core/CoreTextNodeCanvas.js.map +1 -0
  10. package/dist/src/core/Stage.js +10 -0
  11. package/dist/src/core/Stage.js.map +1 -1
  12. package/dist/src/core/TextureMemoryManager.js +4 -3
  13. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  14. package/dist/src/core/animations/Animation.d.ts +21 -0
  15. package/dist/src/core/animations/Animation.js +194 -0
  16. package/dist/src/core/animations/Animation.js.map +1 -0
  17. package/dist/src/core/animations/AnimationManager.d.ts +1 -1
  18. package/dist/src/core/animations/AnimationManager.js +5 -5
  19. package/dist/src/core/animations/AnimationManager.js.map +1 -1
  20. package/dist/src/core/animations/CoreAnimation.d.ts +11 -2
  21. package/dist/src/core/animations/CoreAnimation.js +44 -38
  22. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  23. package/dist/src/core/animations/CoreAnimationController.d.ts +6 -0
  24. package/dist/src/core/animations/CoreAnimationController.js +16 -3
  25. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  26. package/dist/src/core/animations/Playback.d.ts +64 -0
  27. package/dist/src/core/animations/Playback.js +169 -0
  28. package/dist/src/core/animations/Playback.js.map +1 -0
  29. package/dist/src/core/animations/Ticker.d.ts +71 -0
  30. package/dist/src/core/animations/Ticker.js +89 -0
  31. package/dist/src/core/animations/Ticker.js.map +1 -0
  32. package/dist/src/core/animations/Transition.d.ts +38 -0
  33. package/dist/src/core/animations/Transition.js +35 -0
  34. package/dist/src/core/animations/Transition.js.map +1 -0
  35. package/dist/src/core/animations/TransitionsController.d.ts +10 -0
  36. package/dist/src/core/animations/TransitionsController.js +39 -0
  37. package/dist/src/core/animations/TransitionsController.js.map +1 -0
  38. package/dist/src/core/animations/utils.d.ts +2 -0
  39. package/dist/src/core/animations/utils.js +136 -0
  40. package/dist/src/core/animations/utils.js.map +1 -0
  41. package/dist/src/core/lib/ImageWorker.d.ts +2 -2
  42. package/dist/src/core/lib/ImageWorker.js +11 -30
  43. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  44. package/dist/src/core/lib/WebGlContextWrapper.d.ts +5 -16
  45. package/dist/src/core/lib/WebGlContextWrapper.js +1 -35
  46. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  47. package/dist/src/core/lib/textureCompression.d.ts +2 -14
  48. package/dist/src/core/lib/textureCompression.js +67 -320
  49. package/dist/src/core/lib/textureCompression.js.map +1 -1
  50. package/dist/src/core/platform.js +9 -38
  51. package/dist/src/core/platform.js.map +1 -1
  52. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -1
  53. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +3 -11
  54. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -1
  55. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +1 -2
  56. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +11 -16
  57. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
  58. package/dist/src/core/renderers/canvas/CanvasRenderer.js +14 -1
  59. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  60. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +1 -1
  61. package/dist/src/core/renderers/canvas/CanvasTexture.js +16 -6
  62. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  63. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -13
  64. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +192 -113
  65. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  66. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +2 -0
  67. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +14 -0
  68. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  69. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +1 -2
  70. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +5 -12
  71. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
  72. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +6 -18
  73. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +60 -102
  74. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  75. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +1 -1
  76. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +1 -3
  77. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +31 -74
  78. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  79. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +7 -2
  80. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +50 -21
  81. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  82. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +2 -3
  83. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +1 -3
  84. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
  85. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +1 -0
  86. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +23 -0
  87. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  88. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +2 -2
  89. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  90. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +1 -0
  91. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  92. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +6 -3
  93. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
  94. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +11 -0
  95. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  96. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +10 -5
  97. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  98. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +10 -5
  99. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
  100. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +12 -0
  101. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  102. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +1 -1
  103. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +1 -1
  104. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +1 -1
  105. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +1 -1
  106. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +2 -2
  107. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +5 -5
  108. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +1 -1
  109. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +1 -0
  110. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +30 -14
  111. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  112. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -1
  113. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +3 -13
  114. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  115. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +1 -1
  116. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
  117. package/dist/src/core/shaders/webgl/SdfShadowShader.d.ts +9 -0
  118. package/dist/src/core/shaders/webgl/SdfShadowShader.js +100 -0
  119. package/dist/src/core/shaders/webgl/SdfShadowShader.js.map +1 -0
  120. package/dist/src/core/text-rendering/CanvasFont.d.ts +1 -1
  121. package/dist/src/core/text-rendering/CanvasFont.js +7 -16
  122. package/dist/src/core/text-rendering/CanvasFont.js.map +1 -1
  123. package/dist/src/core/text-rendering/CoreFont.d.ts +1 -1
  124. package/dist/src/core/text-rendering/CoreFont.js +1 -1
  125. package/dist/src/core/text-rendering/CoreFont.js.map +1 -1
  126. package/dist/src/core/text-rendering/FontManager.js +2 -1
  127. package/dist/src/core/text-rendering/FontManager.js.map +1 -1
  128. package/dist/src/core/text-rendering/canvas/Settings.d.ts +64 -0
  129. package/dist/src/core/text-rendering/canvas/Settings.js +20 -0
  130. package/dist/src/core/text-rendering/canvas/Settings.js.map +1 -0
  131. package/dist/src/core/text-rendering/canvas/Utils.d.ts +20 -0
  132. package/dist/src/core/text-rendering/canvas/Utils.js +144 -0
  133. package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -0
  134. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +60 -0
  135. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +183 -0
  136. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -0
  137. package/dist/src/core/text-rendering/canvas/draw.d.ts +5 -0
  138. package/dist/src/core/text-rendering/canvas/draw.js +132 -0
  139. package/dist/src/core/text-rendering/canvas/draw.js.map +1 -0
  140. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  141. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  142. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -4
  143. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +46 -98
  144. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  145. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +1 -1
  146. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +2 -2
  147. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +66 -8
  148. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  149. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +1 -1
  150. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +1 -1
  151. package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.d.ts +26 -0
  152. package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.js +158 -0
  153. package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.js.map +1 -0
  154. package/dist/src/core/text-rendering/renderers/canvas/internal/draw.d.ts +5 -0
  155. package/dist/src/core/text-rendering/renderers/canvas/internal/draw.js +127 -0
  156. package/dist/src/core/text-rendering/renderers/canvas/internal/draw.js.map +1 -0
  157. package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.d.ts +2 -0
  158. package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.js +50 -0
  159. package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.js.map +1 -0
  160. package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.d.ts +33 -0
  161. package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.js +192 -0
  162. package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.js.map +1 -0
  163. package/dist/src/core/text-rendering/renderers/canvas/internal/types.d.ts +66 -0
  164. package/dist/src/core/text-rendering/renderers/canvas/internal/types.js +2 -0
  165. package/dist/src/core/text-rendering/renderers/canvas/internal/types.js.map +1 -0
  166. package/dist/src/core/text-rendering/renderers/canvas/internal/utils.d.ts +91 -0
  167. package/dist/src/core/text-rendering/renderers/canvas/internal/utils.js +282 -0
  168. package/dist/src/core/text-rendering/renderers/canvas/internal/utils.js.map +1 -0
  169. package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +12 -0
  170. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +61 -0
  171. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +1 -0
  172. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +45 -0
  173. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +69 -0
  174. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +1 -0
  175. package/dist/src/core/text-rendering/sdf/Utils.d.ts +26 -0
  176. package/dist/src/core/text-rendering/sdf/Utils.js +301 -0
  177. package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -0
  178. package/dist/src/core/text-rendering/sdf/index.d.ts +1 -0
  179. package/dist/src/core/text-rendering/sdf/index.js +20 -0
  180. package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
  181. package/dist/src/core/textures/ImageTexture.js +11 -0
  182. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  183. package/dist/src/core/textures/Texture.js +5 -0
  184. package/dist/src/core/textures/Texture.js.map +1 -1
  185. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  186. package/dist/tsconfig.tsbuildinfo +1 -0
  187. package/package.json +1 -1
  188. package/src/common/EventEmitter.ts +6 -8
  189. package/src/core/Stage.ts +11 -0
  190. package/src/core/TextureMemoryManager.ts +4 -3
  191. package/src/core/animations/AnimationManager.ts +5 -5
  192. package/src/core/animations/CoreAnimation.ts +61 -45
  193. package/src/core/animations/CoreAnimationController.ts +16 -7
  194. package/src/core/renderers/canvas/CanvasRenderer.ts +19 -1
  195. package/src/core/renderers/canvas/CanvasTexture.ts +23 -8
  196. package/src/core/renderers/webgl/WebGlShaderNode.ts +24 -0
  197. package/src/core/renderers/webgl/WebGlShaderProgram.ts +3 -3
  198. package/src/core/renderers/webgl/internal/ShaderUtils.ts +1 -0
  199. package/src/core/textures/ImageTexture.ts +18 -0
  200. package/src/core/textures/Texture.ts +6 -0
  201. package/dist/src/core/lib/fps.d.ts +0 -15
  202. package/dist/src/core/lib/fps.js +0 -62
  203. package/dist/src/core/lib/fps.js.map +0 -1
  204. package/dist/src/core/text-rendering/TextGenerator.d.ts +0 -10
  205. package/dist/src/core/text-rendering/TextGenerator.js +0 -36
  206. package/dist/src/core/text-rendering/TextGenerator.js.map +0 -1
@@ -1,12 +1,15 @@
1
1
  import type { IEventEmitter } from './IEventEmitter.js';
2
+ export type EventListener = (target: any, data: any) => void;
2
3
  /**
3
4
  * EventEmitter base class
4
5
  */
5
6
  export declare class EventEmitter implements IEventEmitter {
6
- private eventListeners;
7
- on(event: string, listener: (target: any, data: any) => void): void;
8
- off(event: string, listener?: (target: any, data: any) => void): void;
9
- once(event: string, listener: (target: any, data: any) => void): void;
7
+ protected eventListeners: {
8
+ [eventName: string]: EventListener[];
9
+ };
10
+ on(event: string, listener: EventListener): void;
11
+ off(event: string, listener?: EventListener): void;
12
+ once(event: string, listener: EventListener): void;
10
13
  emit(event: string, data?: any): void;
11
14
  removeAllListeners(): void;
12
15
  }
@@ -55,7 +55,7 @@ export class EventEmitter {
55
55
  if (!listeners) {
56
56
  return;
57
57
  }
58
- [...listeners].forEach((listener) => {
58
+ listeners.forEach((listener) => {
59
59
  listener(this, data);
60
60
  });
61
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../../src/common/EventEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,cAAc,GAAiC,EAAE,CAAC;IAE1D,EAAE,CAAC,KAAa,EAAE,QAA0C;QAC1D,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,EAAE,CAAC;QACjB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAA2C;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,QAA0C;QAC5D,MAAM,YAAY,GAAG,CAAC,MAAW,EAAE,IAAS,EAAE,EAAE;YAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC9B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,IAAU;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../../src/common/EventEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH;;GAEG;AACH,MAAM,OAAO,YAAY;IACb,cAAc,GAA6C,EAAE,CAAC;IAExE,EAAE,CAAC,KAAa,EAAE,QAAuB;QACvC,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,EAAE,CAAC;QACjB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAAwB;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,QAAuB;QACzC,MAAM,YAAY,GAAG,CAAC,MAAW,EAAE,IAAS,EAAE,EAAE;YAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC9B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,IAAU;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ import type { CoreNode } from './CoreNode.js';
2
+ /**
3
+ * Result of autosize calculation containing the new dimensions
4
+ */
5
+ interface AutosizeResult {
6
+ width: number;
7
+ height: number;
8
+ hasChanged: boolean;
9
+ }
10
+ /**
11
+ * Creates an autosize manager for efficient child bounds calculation
12
+ *
13
+ * @remarks
14
+ * This function creates a closure-based manager that tracks child transform
15
+ * changes and calculates parent dimensions based on children's bounding boxes.
16
+ * It's optimized for performance with minimal allocations and fast lookups.
17
+ *
18
+ * @param parentNode - The autosize parent node
19
+ * @returns Object with autosize management methods
20
+ */
21
+ export declare function createAutosizeManager(parentNode: CoreNode): {
22
+ addOrUpdateChild: (child: CoreNode) => void;
23
+ removeChild: (child: CoreNode) => void;
24
+ calculateAutosize: () => AutosizeResult;
25
+ deactivate: () => void;
26
+ readonly active: boolean;
27
+ readonly childCount: number;
28
+ };
29
+ export {};
@@ -0,0 +1,169 @@
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 { Matrix3d } from './lib/Matrix3d.js';
20
+ /**
21
+ * Creates an autosize manager for efficient child bounds calculation
22
+ *
23
+ * @remarks
24
+ * This function creates a closure-based manager that tracks child transform
25
+ * changes and calculates parent dimensions based on children's bounding boxes.
26
+ * It's optimized for performance with minimal allocations and fast lookups.
27
+ *
28
+ * @param parentNode - The autosize parent node
29
+ * @returns Object with autosize management methods
30
+ */
31
+ export function createAutosizeManager(parentNode) {
32
+ const childDataMap = new Map();
33
+ let isActive = true;
34
+ let lastWidth = 0;
35
+ let lastHeight = 0;
36
+ let lastHasChanged = false;
37
+ const corners = [
38
+ { x: 0, y: 0 },
39
+ { x: 0, y: 0 },
40
+ { x: 0, y: 0 },
41
+ { x: 0, y: 0 },
42
+ ];
43
+ /**
44
+ * Add or update a child node in the autosize calculation chain
45
+ * @param child - Child node to add or update
46
+ */
47
+ const addOrUpdateChild = (child) => {
48
+ if (isActive === false)
49
+ return;
50
+ if (child === parentNode)
51
+ return; // Avoid circular references
52
+ const currentTransform = child.localTransform || Matrix3d.identity();
53
+ const existingData = childDataMap.get(child);
54
+ if (existingData !== undefined) {
55
+ // Update existing child
56
+ Matrix3d.copy(currentTransform, existingData.localTransform);
57
+ existingData.width = child.w;
58
+ existingData.height = child.h;
59
+ existingData.hasChanged = true;
60
+ }
61
+ else {
62
+ // Add new child
63
+ childDataMap.set(child, {
64
+ localTransform: Matrix3d.copy(currentTransform),
65
+ hasChanged: true,
66
+ width: child.w,
67
+ height: child.h,
68
+ });
69
+ }
70
+ // Mark parent for recalculation
71
+ parentNode.autosizeNeedsUpdate = true;
72
+ };
73
+ /**
74
+ * Remove a child node from the autosize calculation chain
75
+ * @param child - Child node to remove
76
+ */
77
+ const removeChild = (child) => {
78
+ if (childDataMap.delete(child) === true) {
79
+ parentNode.autosizeNeedsUpdate = true;
80
+ }
81
+ };
82
+ /**
83
+ * Calculate the autosize dimensions based on all child bounds
84
+ * @returns Autosize calculation result
85
+ */
86
+ const calculateAutosize = () => {
87
+ if (isActive === false || childDataMap.size === 0) {
88
+ return { width: 0, height: 0, hasChanged: false };
89
+ }
90
+ let hasAnyChildChanged = false;
91
+ for (const childData of childDataMap.values()) {
92
+ if (childData.hasChanged) {
93
+ hasAnyChildChanged = true;
94
+ break;
95
+ }
96
+ }
97
+ if (hasAnyChildChanged === false) {
98
+ return {
99
+ width: lastWidth,
100
+ height: lastHeight,
101
+ hasChanged: lastHasChanged,
102
+ };
103
+ }
104
+ let minX = Infinity;
105
+ let minY = Infinity;
106
+ let maxX = -Infinity;
107
+ let maxY = -Infinity;
108
+ for (const [child, childData] of childDataMap) {
109
+ if (!child.isRenderable)
110
+ continue;
111
+ const transform = child.localTransform || Matrix3d.identity();
112
+ const width = childData.width;
113
+ const height = childData.height;
114
+ corners[0].x = 0;
115
+ corners[0].y = 0;
116
+ corners[1].x = width;
117
+ corners[1].y = 0;
118
+ corners[2].x = width;
119
+ corners[2].y = height;
120
+ corners[3].x = 0;
121
+ corners[3].y = height;
122
+ for (let i = 0; i < 4; i++) {
123
+ const corner = corners[i];
124
+ const localX = transform.ta * corner.x + transform.tb * corner.y + transform.tx;
125
+ const localY = transform.tc * corner.x + transform.td * corner.y + transform.ty;
126
+ if (localX < minX)
127
+ minX = localX;
128
+ if (localY < minY)
129
+ minY = localY;
130
+ if (localX > maxX)
131
+ maxX = localX;
132
+ if (localY > maxY)
133
+ maxY = localY;
134
+ }
135
+ childData.hasChanged = false;
136
+ }
137
+ const newWidth = maxX > minX ? maxX - minX : 0;
138
+ const newHeight = maxY > minY ? maxY - minY : 0;
139
+ const dimensionsChanged = lastWidth !== newWidth || lastHeight !== newHeight;
140
+ lastWidth = newWidth;
141
+ lastHeight = newHeight;
142
+ lastHasChanged = dimensionsChanged;
143
+ return {
144
+ width: newWidth,
145
+ height: newHeight,
146
+ hasChanged: dimensionsChanged,
147
+ };
148
+ };
149
+ /**
150
+ * Deactivate this autosize manager and clean up resources
151
+ */
152
+ const deactivate = () => {
153
+ isActive = false;
154
+ childDataMap.clear();
155
+ };
156
+ return {
157
+ addOrUpdateChild,
158
+ removeChild,
159
+ calculateAutosize,
160
+ deactivate,
161
+ get active() {
162
+ return isActive;
163
+ },
164
+ get childCount() {
165
+ return childDataMap.size;
166
+ },
167
+ };
168
+ }
169
+ //# sourceMappingURL=AutosizeManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutosizeManager.js","sourceRoot":"","sources":["../../../src/core/AutosizeManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,215 @@
1
+ import type { TextRenderer, TrFontProps } from './text-rendering/renderers/TextRenderer.js';
2
+ import { CoreNode, type CoreNodeProps } from './CoreNode.js';
3
+ import type { Stage } from './Stage.js';
4
+ import type { RectWithValid } from './lib/utils.js';
5
+ import type { TextBaseline, TextVerticalAlign } from './text-rendering/renderers/canvas/LightningTextTextureRenderer.js';
6
+ export declare enum CanvasTextUpdateType {
7
+ None = 0,
8
+ Text = 1,
9
+ Font = 2,
10
+ All = 4
11
+ }
12
+ export interface CoreTextNodeProps extends CoreNodeProps, TrFontProps {
13
+ /**
14
+ * Text to display
15
+ *
16
+ * @default ''
17
+ */
18
+ text: string;
19
+ /**
20
+ * Text alignment
21
+ *
22
+ * @remarks
23
+ * Alignment of the text relative to it's contained bounds. For best results,
24
+ * use {@link contain} mode `'width'` or `'both'` and a set an explicit
25
+ * {@link width} for the text to be aligned within.
26
+ *
27
+ * @default 'left'
28
+ */
29
+ textAlign: 'left' | 'center' | 'right';
30
+ /**
31
+ * Color of text
32
+ *
33
+ * @remarks
34
+ * The color value is a number in the format 0xRRGGBBAA, where RR is the red
35
+ * component, GG is the green component, BB is the blue component, and AA is
36
+ * the alpha component.
37
+ *
38
+ * @default 0xffffffff (opaque white)
39
+ */
40
+ color: number;
41
+ /**
42
+ * Contain mode for text
43
+ *
44
+ * @remarks
45
+ * The contain mode determines how the text is contained within the bounds
46
+ * of the Text Node. The default value is `'none'`, which means that the
47
+ * Text Renderer will not constrain the text in any way. `'width'` mode will
48
+ * constrain the text to the set width wrapping lines as necessary, and
49
+ * `'both'` mode will constrain the text to both the set width and height
50
+ * wrapping lines and truncating text as necessary.
51
+ *
52
+ * ## Text Auto-size Behavior
53
+ * Depending on the set contain mode, after the text 'loaded' event is emitted,
54
+ * the text node may have either its {@link width} and {@link height} updated
55
+ * to match the rendered size of the text.
56
+ *
57
+ * When contain mode is 'none', both the {@link width} and {@link height}
58
+ * properties are updated.
59
+ *
60
+ * When contain mode is 'width', only the {@link height} property is updated.
61
+ *
62
+ * When contain mode is 'both', neither property is updated.
63
+ *
64
+ * @default 'none'
65
+ */
66
+ contain: 'none' | 'width' | 'both';
67
+ /**
68
+ * Letter spacing for text (in pixels)
69
+ *
70
+ * @remarks
71
+ * This property sets additional (or reduced, if value is negative) spacing
72
+ * between characters in the text.
73
+ *
74
+ * @default 0
75
+ */
76
+ letterSpacing: number;
77
+ /**
78
+ * Line height for text (in pixels)
79
+ *
80
+ * @remarks
81
+ * This property sets the height of each line. If set to `undefined`, the
82
+ * line height will be calculated based on the font and font size to be the
83
+ * minimal height required to completely contain a line of text.
84
+ *
85
+ * See: https://github.com/lightning-js/renderer/issues/170
86
+ *
87
+ * @default `undefined`
88
+ */
89
+ lineHeight: number | undefined;
90
+ /**
91
+ * Max lines for text
92
+ *
93
+ * @remarks
94
+ * This property sets max number of lines of a text paragraph.
95
+ * Not yet implemented in the SDF renderer.
96
+ *
97
+ * @default 0
98
+ */
99
+ maxLines: number;
100
+ /**
101
+ * Baseline for text
102
+ *
103
+ * @remarks
104
+ * This property sets the text baseline used when drawing text.
105
+ * Not yet implemented in the SDF renderer.
106
+ *
107
+ * @default alphabetic
108
+ */
109
+ textBaseline: TextBaseline;
110
+ /**
111
+ * Vertical Align for text when lineHeight > fontSize
112
+ *
113
+ * @remarks
114
+ * This property sets the vertical align of the text.
115
+ * Not yet implemented in the SDF renderer.
116
+ *
117
+ * @default middle
118
+ */
119
+ verticalAlign: TextVerticalAlign;
120
+ /**
121
+ * Overflow Suffix for text
122
+ *
123
+ * @remarks
124
+ * The suffix to be added when text is cropped due to overflow.
125
+ * Not yet implemented in the SDF renderer.
126
+ *
127
+ * @default "..."
128
+ */
129
+ overflowSuffix: string;
130
+ /**
131
+ * Font Style String
132
+ *
133
+ * @remarks
134
+ * This property sets the font style string used when drawing text.
135
+ *
136
+ * @default "normal normal normal"
137
+ */
138
+ fontStyleString?: string;
139
+ /**
140
+ * Word wrap
141
+ *
142
+ * @remarks
143
+ * This property sets the word wrap mode for the text.
144
+ *
145
+ * @default true
146
+ */
147
+ wordWrap: boolean;
148
+ /**
149
+ * Debug mode for text
150
+ *
151
+ * @remarks
152
+ * This property sets the debug mode for the text.
153
+ * Not yet implemented in the SDF renderer.
154
+ *
155
+ * @default false
156
+ */
157
+ debug?: boolean;
158
+ }
159
+ /**
160
+ * An CoreNode in the Renderer scene graph that renders text using Canvas 2D.
161
+ *
162
+ * @remarks
163
+ * A Text Node is the second graphical building block of the Renderer scene
164
+ * graph. It renders text using a specific text renderer that is automatically
165
+ * chosen based on the font requested and what type of fonts are installed
166
+ * into an app.
167
+ *
168
+ * The text renderer can be overridden by setting the `textRendererOverride`
169
+ *
170
+ * The `texture` and `shader` properties are managed by loaded text renderer and
171
+ * should not be set directly.
172
+ *
173
+ * For non-text rendering, see {@link CoreNode}.
174
+ */
175
+ export declare class CoreTextCanvasNode extends CoreNode {
176
+ private textUpdateType;
177
+ private textProps;
178
+ private textRenderer;
179
+ private fontLoaded;
180
+ constructor(stage: Stage, props: CoreTextNodeProps, textRenderer: TextRenderer);
181
+ setTextUpdateType(updateType: CanvasTextUpdateType): void;
182
+ update(delta: number, parentClippingRect: RectWithValid): void;
183
+ updateText(): void;
184
+ updateFont(): Promise<void>;
185
+ get text(): string;
186
+ set text(value: string);
187
+ get fontSize(): CoreTextNodeProps['fontSize'];
188
+ set fontSize(value: CoreTextNodeProps['fontSize']);
189
+ get fontFamily(): CoreTextNodeProps['fontFamily'];
190
+ set fontFamily(value: CoreTextNodeProps['fontFamily']);
191
+ get fontStretch(): CoreTextNodeProps['fontStretch'];
192
+ set fontStretch(value: CoreTextNodeProps['fontStretch']);
193
+ get fontStyle(): CoreTextNodeProps['fontStyle'];
194
+ set fontStyle(value: CoreTextNodeProps['fontStyle']);
195
+ get fontWeight(): CoreTextNodeProps['fontWeight'];
196
+ set fontWeight(value: CoreTextNodeProps['fontWeight']);
197
+ get textAlign(): CoreTextNodeProps['textAlign'];
198
+ set textAlign(value: CoreTextNodeProps['textAlign']);
199
+ get contain(): CoreTextNodeProps['contain'];
200
+ set contain(value: CoreTextNodeProps['contain']);
201
+ get letterSpacing(): CoreTextNodeProps['letterSpacing'];
202
+ set letterSpacing(value: CoreTextNodeProps['letterSpacing']);
203
+ get lineHeight(): CoreTextNodeProps['lineHeight'];
204
+ set lineHeight(value: CoreTextNodeProps['lineHeight']);
205
+ get maxLines(): CoreTextNodeProps['maxLines'];
206
+ set maxLines(value: CoreTextNodeProps['maxLines']);
207
+ get textBaseline(): CoreTextNodeProps['textBaseline'];
208
+ set textBaseline(value: CoreTextNodeProps['textBaseline']);
209
+ get verticalAlign(): CoreTextNodeProps['verticalAlign'];
210
+ set verticalAlign(value: CoreTextNodeProps['verticalAlign']);
211
+ get overflowSuffix(): CoreTextNodeProps['overflowSuffix'];
212
+ set overflowSuffix(value: CoreTextNodeProps['overflowSuffix']);
213
+ get debug(): CoreTextNodeProps['debug'];
214
+ set debug(value: CoreTextNodeProps['debug']);
215
+ }