@lightningjs/renderer 0.7.5 → 0.7.6

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 (218) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +229 -221
  4. package/dist/src/common/CommonTypes.d.ts +6 -0
  5. package/dist/src/core/CoreNode.d.ts +21 -4
  6. package/dist/src/core/CoreNode.js +145 -34
  7. package/dist/src/core/CoreNode.js.map +1 -1
  8. package/dist/src/core/CoreTextNode.d.ts +1 -1
  9. package/dist/src/core/CoreTextNode.js +18 -10
  10. package/dist/src/core/CoreTextNode.js.map +1 -1
  11. package/dist/src/core/CoreTextureManager.d.ts +3 -1
  12. package/dist/src/core/CoreTextureManager.js +9 -2
  13. package/dist/src/core/CoreTextureManager.js.map +1 -1
  14. package/dist/src/core/Stage.d.ts +2 -0
  15. package/dist/src/core/Stage.js +9 -1
  16. package/dist/src/core/Stage.js.map +1 -1
  17. package/dist/src/core/lib/ImageWorker.d.ts +0 -1
  18. package/dist/src/core/lib/ImageWorker.js +55 -40
  19. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  20. package/dist/src/core/lib/RenderCoords.d.ts +13 -0
  21. package/dist/src/core/lib/RenderCoords.js +63 -0
  22. package/dist/src/core/lib/RenderCoords.js.map +1 -0
  23. package/dist/src/core/lib/WebGlContext.d.ts +414 -0
  24. package/dist/src/core/lib/WebGlContext.js +640 -0
  25. package/dist/src/core/lib/WebGlContext.js.map +1 -0
  26. package/dist/src/core/lib/utils.d.ts +1 -0
  27. package/dist/src/core/lib/utils.js +6 -0
  28. package/dist/src/core/lib/utils.js.map +1 -1
  29. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +4 -1
  30. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  31. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +9 -0
  32. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +14 -0
  33. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  34. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +47 -47
  35. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  36. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  37. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  38. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +49 -49
  39. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  40. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +5 -5
  41. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  42. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  43. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  44. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  45. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  46. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  47. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +31 -31
  48. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +13 -13
  49. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  50. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  51. package/dist/src/core/scene/Scene.d.ts +59 -0
  52. package/dist/src/core/scene/Scene.js +106 -0
  53. package/dist/src/core/scene/Scene.js.map +1 -0
  54. package/dist/src/core/text-rendering/TrFontManager.js +30 -25
  55. package/dist/src/core/text-rendering/TrFontManager.js.map +1 -1
  56. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +8 -2
  57. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  58. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +8 -2
  59. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  60. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +8 -0
  61. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +29 -0
  62. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +1 -0
  63. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +19 -0
  64. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +84 -0
  65. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +1 -0
  66. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +8 -0
  67. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +40 -0
  68. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +1 -0
  69. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +2 -0
  70. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +41 -0
  71. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +1 -0
  72. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +1 -0
  73. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +4 -0
  74. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +1 -0
  75. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +1 -0
  76. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +2 -0
  77. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +1 -0
  78. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
  79. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
  80. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
  81. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +9 -0
  82. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +32 -0
  83. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +1 -0
  84. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +12 -0
  85. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  86. package/dist/src/core/textures/ImageTexture.js +16 -2
  87. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  88. package/dist/src/core/textures/Texture.d.ts +1 -1
  89. package/dist/src/core/textures/Texture.js.map +1 -1
  90. package/dist/src/core/utils.d.ts +1 -1
  91. package/dist/src/main-api/RendererMain.d.ts +6 -0
  92. package/dist/src/main-api/RendererMain.js +1 -0
  93. package/dist/src/main-api/RendererMain.js.map +1 -1
  94. package/dist/src/render-drivers/main/MainCoreDriver.js +1 -0
  95. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  96. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +4 -0
  97. package/dist/src/render-drivers/main/MainOnlyNode.js +22 -0
  98. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -1
  99. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +1 -0
  100. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  101. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +1 -0
  102. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
  103. package/dist/src/render-drivers/threadx/worker/renderer.js +1 -0
  104. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  105. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  106. package/exports/core-api.ts +102 -102
  107. package/exports/main-api.ts +60 -60
  108. package/exports/utils.ts +41 -41
  109. package/package.json +1 -1
  110. package/scripts/please-use-pnpm.js +13 -13
  111. package/src/common/CommonTypes.ts +125 -113
  112. package/src/common/EventEmitter.ts +77 -77
  113. package/src/common/IAnimationController.ts +29 -29
  114. package/src/core/CoreExtension.ts +32 -32
  115. package/src/core/CoreNode.ts +1114 -955
  116. package/src/core/CoreShaderManager.ts +243 -243
  117. package/src/core/CoreTextNode.ts +399 -391
  118. package/src/core/CoreTextureManager.ts +337 -326
  119. package/src/core/Stage.ts +365 -354
  120. package/src/core/animations/AnimationManager.ts +38 -38
  121. package/src/core/animations/CoreAnimation.ts +181 -181
  122. package/src/core/animations/CoreAnimationController.ts +148 -148
  123. package/src/core/lib/ContextSpy.ts +41 -41
  124. package/src/core/lib/ImageWorker.ts +149 -135
  125. package/src/core/lib/Matrix3d.ts +290 -290
  126. package/src/core/lib/RenderCoords.ts +86 -0
  127. package/src/core/lib/WebGlContextWrapper.ts +992 -992
  128. package/src/core/lib/textureCompression.ts +152 -152
  129. package/src/core/lib/utils.ts +250 -241
  130. package/src/core/platform.ts +46 -46
  131. package/src/core/renderers/CoreContextTexture.ts +30 -30
  132. package/src/core/renderers/CoreRenderOp.ts +22 -22
  133. package/src/core/renderers/CoreRenderer.ts +63 -63
  134. package/src/core/renderers/CoreShader.ts +41 -41
  135. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +37 -37
  136. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +233 -230
  137. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +107 -107
  138. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +520 -520
  139. package/src/core/renderers/webgl/WebGlCoreShader.ts +337 -337
  140. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  141. package/src/core/renderers/webgl/internal/RendererUtils.ts +148 -131
  142. package/src/core/renderers/webgl/internal/ShaderUtils.ts +136 -136
  143. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  144. package/src/core/renderers/webgl/shaders/DefaultShader.ts +95 -95
  145. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
  146. package/src/core/renderers/webgl/shaders/DynamicShader.ts +474 -474
  147. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +161 -161
  148. package/src/core/renderers/webgl/shaders/SdfShader.ts +174 -174
  149. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
  150. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +86 -86
  151. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
  152. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
  153. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
  154. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +33 -33
  155. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +135 -135
  156. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +145 -145
  157. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
  158. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +176 -176
  159. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +159 -159
  160. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +186 -186
  161. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +121 -121
  162. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +114 -114
  163. package/src/core/text-rendering/TextTextureRendererUtils.ts +189 -189
  164. package/src/core/text-rendering/TrFontManager.ts +170 -166
  165. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +141 -141
  166. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  167. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  168. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +169 -169
  169. package/src/core/text-rendering/font-face-types/TrFontFace.ts +105 -105
  170. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +77 -77
  171. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +757 -751
  172. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +741 -741
  173. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +784 -778
  174. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  175. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  176. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  177. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  178. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +84 -84
  179. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  180. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  181. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +393 -393
  182. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  183. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +51 -51
  184. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  185. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  186. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  187. package/src/core/text-rendering/renderers/TextRenderer.ts +516 -504
  188. package/src/core/textures/ColorTexture.ts +86 -86
  189. package/src/core/textures/ImageTexture.ts +154 -140
  190. package/src/core/textures/NoiseTexture.ts +96 -96
  191. package/src/core/textures/SubTexture.ts +143 -143
  192. package/src/core/textures/Texture.ts +224 -218
  193. package/src/core/utils.ts +224 -224
  194. package/src/env.d.ts +7 -7
  195. package/src/main-api/ICoreDriver.ts +66 -66
  196. package/src/main-api/INode.ts +499 -499
  197. package/src/main-api/Inspector.ts +439 -439
  198. package/src/main-api/RendererMain.ts +659 -652
  199. package/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.ts +45 -45
  200. package/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.ts +154 -154
  201. package/src/main-api/texture-usage-trackers/TextureUsageTracker.ts +54 -54
  202. package/src/render-drivers/main/MainCoreDriver.ts +149 -148
  203. package/src/render-drivers/main/MainOnlyNode.ts +494 -466
  204. package/src/render-drivers/main/MainOnlyTextNode.ts +261 -261
  205. package/src/render-drivers/threadx/NodeStruct.ts +300 -300
  206. package/src/render-drivers/threadx/SharedNode.ts +97 -97
  207. package/src/render-drivers/threadx/TextNodeStruct.ts +211 -211
  208. package/src/render-drivers/threadx/ThreadXCoreDriver.ts +286 -285
  209. package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +99 -99
  210. package/src/render-drivers/threadx/ThreadXMainNode.ts +192 -192
  211. package/src/render-drivers/threadx/ThreadXMainTextNode.ts +85 -85
  212. package/src/render-drivers/threadx/ThreadXRendererMessage.ts +111 -110
  213. package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +238 -238
  214. package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +149 -149
  215. package/src/render-drivers/threadx/worker/renderer.ts +152 -151
  216. package/src/render-drivers/utils.ts +97 -97
  217. package/src/utils.ts +207 -207
  218. package/COPYING +0 -1
@@ -87,24 +87,24 @@ export class LinearGradientEffect extends ShaderEffect {
87
87
  },
88
88
  };
89
89
  static methods = {
90
- fromLinear: `
91
- vec4 function(vec4 linearRGB) {
92
- vec4 higher = vec4(1.055)*pow(linearRGB, vec4(1.0/2.4)) - vec4(0.055);
93
- vec4 lower = linearRGB * vec4(12.92);
94
- return mix(higher, lower, 1.0);
95
- }
90
+ fromLinear: `
91
+ vec4 function(vec4 linearRGB) {
92
+ vec4 higher = vec4(1.055)*pow(linearRGB, vec4(1.0/2.4)) - vec4(0.055);
93
+ vec4 lower = linearRGB * vec4(12.92);
94
+ return mix(higher, lower, 1.0);
95
+ }
96
96
  `,
97
- toLinear: `
98
- vec4 function(vec4 sRGB) {
99
- vec4 higher = pow((sRGB + vec4(0.055))/vec4(1.055), vec4(2.4));
100
- vec4 lower = sRGB/vec4(12.92);
101
- return mix(higher, lower, 1.0);
102
- }
97
+ toLinear: `
98
+ vec4 function(vec4 sRGB) {
99
+ vec4 higher = pow((sRGB + vec4(0.055))/vec4(1.055), vec4(2.4));
100
+ vec4 lower = sRGB/vec4(12.92);
101
+ return mix(higher, lower, 1.0);
102
+ }
103
103
  `,
104
- calcPoint: `
105
- vec2 function(float d, float angle) {
106
- return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
107
- }
104
+ calcPoint: `
105
+ vec2 function(float d, float angle) {
106
+ return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
107
+ }
108
108
  `,
109
109
  };
110
110
  static ColorLoop = (amount) => {
@@ -116,21 +116,21 @@ export class LinearGradientEffect extends ShaderEffect {
116
116
  };
117
117
  static onColorize = (props) => {
118
118
  const colors = props.colors.length || 1;
119
- return `
120
- float a = angle - (PI / 180.0 * 90.0);
121
- float lineDist = abs(u_dimensions.x * cos(a)) + abs(u_dimensions.y * sin(a));
122
- vec2 f = $calcPoint(lineDist * 0.5, a);
123
- vec2 t = $calcPoint(lineDist * 0.5, a + PI);
124
- vec2 gradVec = t - f;
125
- float dist = dot(v_textureCoordinate.xy * u_dimensions - f, gradVec) / dot(gradVec, gradVec);
126
-
127
- float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
128
- vec4 colorOut = $fromLinear(mix($toLinear(colors[0]), $toLinear(colors[1]), stopCalc));
129
- for(int i = 1; i < ${colors}-1; i++) {
130
- stopCalc = (dist - stops[i]) / (stops[i + 1] - stops[i]);
131
- colorOut = mix(colorOut, colors[i + 1], clamp(stopCalc, 0.0, 1.0));
132
- }
133
- return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
119
+ return `
120
+ float a = angle - (PI / 180.0 * 90.0);
121
+ float lineDist = abs(u_dimensions.x * cos(a)) + abs(u_dimensions.y * sin(a));
122
+ vec2 f = $calcPoint(lineDist * 0.5, a);
123
+ vec2 t = $calcPoint(lineDist * 0.5, a + PI);
124
+ vec2 gradVec = t - f;
125
+ float dist = dot(v_textureCoordinate.xy * u_dimensions - f, gradVec) / dot(gradVec, gradVec);
126
+
127
+ float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
128
+ vec4 colorOut = $fromLinear(mix($toLinear(colors[0]), $toLinear(colors[1]), stopCalc));
129
+ for(int i = 1; i < ${colors}-1; i++) {
130
+ stopCalc = (dist - stops[i]) / (stops[i + 1] - stops[i]);
131
+ colorOut = mix(colorOut, colors[i + 1], clamp(stopCalc, 0.0, 1.0));
132
+ }
133
+ return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
134
134
  `;
135
135
  };
136
136
  }
@@ -97,19 +97,19 @@ export class RadialGradientEffect extends ShaderEffect {
97
97
  };
98
98
  static onColorize = (props) => {
99
99
  const colors = props.colors.length || 1;
100
- return `
101
- vec2 point = v_textureCoordinate.xy * u_dimensions;
102
- vec2 projection = vec2(pivot.x * u_dimensions.x, pivot.y * u_dimensions.y);
103
-
104
- float dist = length((point - projection) / vec2(width, height));
105
-
106
- float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
107
- vec4 colorOut = mix(colors[0], colors[1], stopCalc);
108
- for(int i = 1; i < ${colors}-1; i++) {
109
- stopCalc = (dist - stops[i]) / (stops[i + 1] - stops[i]);
110
- colorOut = mix(colorOut, colors[i + 1], clamp(stopCalc, 0.0, 1.0));
111
- }
112
- return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
100
+ return `
101
+ vec2 point = v_textureCoordinate.xy * u_dimensions;
102
+ vec2 projection = vec2(pivot.x * u_dimensions.x, pivot.y * u_dimensions.y);
103
+
104
+ float dist = length((point - projection) / vec2(width, height));
105
+
106
+ float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
107
+ vec4 colorOut = mix(colors[0], colors[1], stopCalc);
108
+ for(int i = 1; i < ${colors}-1; i++) {
109
+ stopCalc = (dist - stops[i]) / (stops[i + 1] - stops[i]);
110
+ colorOut = mix(colorOut, colors[i + 1], clamp(stopCalc, 0.0, 1.0));
111
+ }
112
+ return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
113
113
  `;
114
114
  };
115
115
  }
@@ -80,47 +80,47 @@ export class RadialProgressEffect extends ShaderEffect {
80
80
  },
81
81
  };
82
82
  static methods = {
83
- rotateUV: `
84
- vec2 function(vec2 uv, float d) {
85
- float s = sin(d);
86
- float c = cos(d);
87
- mat2 rotMatrix = mat2(c, -s, s, c);
88
- return uv * rotMatrix;
89
- }
83
+ rotateUV: `
84
+ vec2 function(vec2 uv, float d) {
85
+ float s = sin(d);
86
+ float c = cos(d);
87
+ mat2 rotMatrix = mat2(c, -s, s, c);
88
+ return uv * rotMatrix;
89
+ }
90
90
  `,
91
- drawDot: `
92
- float function(vec2 uv, vec2 p, float r) {
93
- uv += p;
94
- float circle = length(uv) - r;
95
- return clamp(-circle, 0.0, 1.0);
96
- }
91
+ drawDot: `
92
+ float function(vec2 uv, vec2 p, float r) {
93
+ uv += p;
94
+ float circle = length(uv) - r;
95
+ return clamp(-circle, 0.0, 1.0);
96
+ }
97
97
  `,
98
98
  };
99
- static onEffectMask = `
100
- float outerRadius = radius * u_dimensions.y * 0.5;
101
-
102
- float endAngle = range * progress - 0.0005;
103
-
104
- vec2 uv = v_textureCoordinate.xy * u_dimensions.xy - u_dimensions * 0.5;
105
-
106
- uv = $rotateUV(uv, -(offset));
107
- float linewidth = width * u_pixelRatio;
108
- float circle = length(uv) - (outerRadius - linewidth) ;
109
- circle = abs(circle) - linewidth;
110
- circle = clamp(-circle, 0.0, 1.0);
111
-
112
- float angle = (atan(uv.x, -uv.y) / 3.14159265359 * 0.5);
113
- float p = endAngle / (PI * 2.);
114
-
115
- circle *= step(fract(angle), fract(p));
116
-
117
- circle = rounded < 1. ? circle : max(circle, $drawDot(uv, vec2(0, outerRadius - linewidth), linewidth));
118
- circle = rounded < 1. ? circle : max(circle, $drawDot($rotateUV(uv, -(endAngle)), vec2(0, outerRadius - linewidth), linewidth));
119
-
120
- return mix(shaderColor, maskColor, circle);
99
+ static onEffectMask = `
100
+ float outerRadius = radius * u_dimensions.y * 0.5;
101
+
102
+ float endAngle = range * progress - 0.0005;
103
+
104
+ vec2 uv = v_textureCoordinate.xy * u_dimensions.xy - u_dimensions * 0.5;
105
+
106
+ uv = $rotateUV(uv, -(offset));
107
+ float linewidth = width * u_pixelRatio;
108
+ float circle = length(uv) - (outerRadius - linewidth) ;
109
+ circle = abs(circle) - linewidth;
110
+ circle = clamp(-circle, 0.0, 1.0);
111
+
112
+ float angle = (atan(uv.x, -uv.y) / 3.14159265359 * 0.5);
113
+ float p = endAngle / (PI * 2.);
114
+
115
+ circle *= step(fract(angle), fract(p));
116
+
117
+ circle = rounded < 1. ? circle : max(circle, $drawDot(uv, vec2(0, outerRadius - linewidth), linewidth));
118
+ circle = rounded < 1. ? circle : max(circle, $drawDot($rotateUV(uv, -(endAngle)), vec2(0, outerRadius - linewidth), linewidth));
119
+
120
+ return mix(shaderColor, maskColor, circle);
121
121
  `;
122
- static onColorize = `
123
- return color;
122
+ static onColorize = `
123
+ return color;
124
124
  `;
125
125
  }
126
126
  //# sourceMappingURL=RadialProgressEffect.js.map
@@ -52,17 +52,17 @@ export class RadiusEffect extends ShaderEffect {
52
52
  },
53
53
  };
54
54
  static methods = {
55
- fillMask: `
56
- float function(float dist) {
57
- return clamp(-dist, 0.0, 1.0);
58
- }
55
+ fillMask: `
56
+ float function(float dist) {
57
+ return clamp(-dist, 0.0, 1.0);
58
+ }
59
59
  `,
60
- boxDist: `
61
- float function(vec2 p, vec2 size, float radius) {
62
- size -= vec2(radius);
63
- vec2 d = abs(p) - size;
64
- return min(max(d.x, d.y), 0.0) + length(max(d, 0.0)) - radius;
65
- }
60
+ boxDist: `
61
+ float function(vec2 p, vec2 size, float radius) {
62
+ size -= vec2(radius);
63
+ vec2 d = abs(p) - size;
64
+ return min(max(d.x, d.y), 0.0) + length(max(d, 0.0)) - radius;
65
+ }
66
66
  `,
67
67
  };
68
68
  static resolveDefaults(props) {
@@ -70,16 +70,16 @@ export class RadiusEffect extends ShaderEffect {
70
70
  radius: props.radius ?? 10,
71
71
  };
72
72
  }
73
- static onShaderMask = `
74
- vec2 halfDimensions = u_dimensions * 0.5;
75
- float r = radius[0] * step(v_textureCoordinate.x, 0.5) * step(v_textureCoordinate.y, 0.5);
76
- r = r + radius[1] * step(0.5, v_textureCoordinate.x) * step(v_textureCoordinate.y, 0.5);
77
- r = r + radius[2] * step(0.5, v_textureCoordinate.x) * step(0.5, v_textureCoordinate.y);
78
- r = r + radius[3] * step(v_textureCoordinate.x, 0.5) * step(0.5, v_textureCoordinate.y);
79
- return $boxDist(v_textureCoordinate.xy * u_dimensions - halfDimensions, halfDimensions, r);
73
+ static onShaderMask = `
74
+ vec2 halfDimensions = u_dimensions * 0.5;
75
+ float r = radius[0] * step(v_textureCoordinate.x, 0.5) * step(v_textureCoordinate.y, 0.5);
76
+ r = r + radius[1] * step(0.5, v_textureCoordinate.x) * step(v_textureCoordinate.y, 0.5);
77
+ r = r + radius[2] * step(0.5, v_textureCoordinate.x) * step(0.5, v_textureCoordinate.y);
78
+ r = r + radius[3] * step(v_textureCoordinate.x, 0.5) * step(0.5, v_textureCoordinate.y);
79
+ return $boxDist(v_textureCoordinate.xy * u_dimensions - halfDimensions, halfDimensions, r);
80
80
  `;
81
- static onEffectMask = `
82
- return mix(vec4(0.0), maskColor, $fillMask(shaderMask));
81
+ static onEffectMask = `
82
+ return mix(vec4(0.0), maskColor, $fillMask(shaderMask));
83
83
  `;
84
84
  }
85
85
  //# sourceMappingURL=RadiusEffect.js.map
@@ -0,0 +1,59 @@
1
+ import type { CoreNode } from '../CoreNode.js';
2
+ export type NodeTypes = Node;
3
+ export declare class Scene {
4
+ /**
5
+ * Root node of the scene
6
+ *
7
+ * @type {Node}
8
+ * @memberof Scene
9
+ */
10
+ root: CoreNode;
11
+ constructor(root: CoreNode);
12
+ /**
13
+ * Get all nodes of a specific type
14
+ * @param type
15
+ * @returns
16
+ */
17
+ getNodeByType(type: string): Node[];
18
+ /**
19
+ * Find a node by id
20
+ * @param id
21
+ * @returns
22
+ */
23
+ getNodeById(id: string): Node | null;
24
+ /**
25
+ * Create a new node
26
+ * @param parent
27
+ * @returns
28
+ */
29
+ /**
30
+ * create a new RectangleNode
31
+ * @param w
32
+ * @param h
33
+ * @param parent
34
+ * @returns
35
+ */
36
+ /**
37
+ * Create a new CircleNode
38
+ * @param r
39
+ * @param parent
40
+ * @returns
41
+ */
42
+ /**
43
+ * Create a new TextNode
44
+ * @param text
45
+ * @param parent
46
+ * @returns
47
+ */
48
+ /**
49
+ * Setup and attaching Node
50
+ * @param node
51
+ * @param parent
52
+ * @returns
53
+ */
54
+ /**
55
+ * Update the scene
56
+ * @param delta
57
+ */
58
+ update(delta: number): void;
59
+ }
@@ -0,0 +1,106 @@
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
+ export class Scene {
20
+ /**
21
+ * Root node of the scene
22
+ *
23
+ * @type {Node}
24
+ * @memberof Scene
25
+ */
26
+ root;
27
+ constructor(root) {
28
+ this.root = root;
29
+ }
30
+ /**
31
+ * Get all nodes of a specific type
32
+ * @param type
33
+ * @returns
34
+ */
35
+ getNodeByType(type) {
36
+ return [];
37
+ }
38
+ /**
39
+ * Find a node by id
40
+ * @param id
41
+ * @returns
42
+ */
43
+ getNodeById(id) {
44
+ return null;
45
+ }
46
+ /**
47
+ * Create a new node
48
+ * @param parent
49
+ * @returns
50
+ */
51
+ // public createNode(settings: Partial<INodeWritableProps> = {}): NodeTypes {
52
+ // return createNode(settings);
53
+ // }
54
+ /**
55
+ * create a new RectangleNode
56
+ * @param w
57
+ * @param h
58
+ * @param parent
59
+ * @returns
60
+ */
61
+ // public rectangle(w: number, h: number, parent: NodeTypes | null = null) {
62
+ // // TODO: Fix this
63
+ // // return this.create(new RectangleNode(w, h), parent);
64
+ // }
65
+ /**
66
+ * Create a new CircleNode
67
+ * @param r
68
+ * @param parent
69
+ * @returns
70
+ */
71
+ // public circle(r: number, parent: NodeTypes | null = null) {
72
+ // // TODO: Fix this
73
+ // // return this.create(new CircleNode(r), parent);
74
+ // }
75
+ /**
76
+ * Create a new TextNode
77
+ * @param text
78
+ * @param parent
79
+ * @returns
80
+ */
81
+ // public text(text = '', parent: NodeTypes | null = null) {
82
+ // // TODO: Fix this
83
+ // // return this.create(new TextNode(text), parent);
84
+ // }
85
+ /**
86
+ * Setup and attaching Node
87
+ * @param node
88
+ * @param parent
89
+ * @returns
90
+ */
91
+ // private create(node: NodeTypes, parent: NodeTypes | null = null): NodeTypes {
92
+ // if (!parent) {
93
+ // parent = this.root;
94
+ // }
95
+ // node.parent = parent;
96
+ // return node;
97
+ // }
98
+ /**
99
+ * Update the scene
100
+ * @param delta
101
+ */
102
+ update(delta) {
103
+ this.root.update(delta);
104
+ }
105
+ }
106
+ //# sourceMappingURL=Scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scene.js","sourceRoot":"","sources":["../../../../src/core/scene/Scene.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,MAAM,OAAO,KAAK;IAChB;;;;;OAKG;IACI,IAAI,CAAW;IAEtB,YAAY,IAAc;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,IAAY;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,6EAA6E;IAC7E,iCAAiC;IACjC,IAAI;IAEJ;;;;;;OAMG;IACH,4EAA4E;IAC5E,sBAAsB;IACtB,4DAA4D;IAC5D,IAAI;IAEJ;;;;;OAKG;IACH,8DAA8D;IAC9D,sBAAsB;IACtB,sDAAsD;IACtD,IAAI;IAEJ;;;;;OAKG;IACH,4DAA4D;IAC5D,sBAAsB;IACtB,uDAAuD;IACvD,IAAI;IAEJ;;;;;OAKG;IACH,gFAAgF;IAChF,mBAAmB;IACnB,0BAA0B;IAC1B,MAAM;IAEN,0BAA0B;IAC1B,iBAAiB;IACjB,IAAI;IAEJ;;;OAGG;IACI,MAAM,CAAC,KAAa;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF"}
@@ -30,12 +30,8 @@ const fontWeightToNumber = (weight) => {
30
30
  return weightConversions[weight] || 400;
31
31
  };
32
32
  function rawResolveFontToUse(familyMapsByPriority, family, weightIn, style, stretch) {
33
- const weight = fontWeightToNumber(weightIn);
34
- let result = undefined;
33
+ let weight = fontWeightToNumber(weightIn);
35
34
  for (const fontFamiles of familyMapsByPriority) {
36
- if (result) {
37
- break;
38
- }
39
35
  const fontFaces = fontFamiles[family];
40
36
  if (!fontFaces) {
41
37
  continue;
@@ -43,8 +39,7 @@ function rawResolveFontToUse(familyMapsByPriority, family, weightIn, style, stre
43
39
  if (fontFaces.size === 1) {
44
40
  // No Exact match found, find nearest weight match
45
41
  console.warn(`TrFontManager: Only one font face found for family: '${family}' - will be used for all weights and styles`);
46
- result = fontFaces.values().next().value;
47
- continue;
42
+ return fontFaces.values().next().value;
48
43
  }
49
44
  const weightMap = new Map();
50
45
  for (const fontFace of fontFaces) {
@@ -52,37 +47,47 @@ function rawResolveFontToUse(familyMapsByPriority, family, weightIn, style, stre
52
47
  if (fontFamilyWeight === weight &&
53
48
  fontFace.descriptors.style === style &&
54
49
  fontFace.descriptors.stretch === stretch) {
55
- result = fontFace;
56
- break;
50
+ return fontFace;
57
51
  }
58
52
  weightMap.set(fontFamilyWeight, fontFace);
59
53
  }
60
54
  // No Exact match found, find nearest weight match
61
55
  const msg = `TrFontManager: No exact match: '${family} Weight: ${weight} Style: ${style} Stretch: ${stretch}'`;
62
56
  console.error(msg);
63
- if (!result && weight === 400 && weightMap.has(500)) {
64
- result = weightMap.get(500);
57
+ // Follow the CSS font-weight algorithm to find the nearest weight match
58
+ // https://www.w3.org/TR/2018/REC-css-fonts-3-20180920/#font-matching-algorithm
59
+ if (weight === 400 && weightMap.has(500)) {
60
+ return weightMap.get(500);
65
61
  }
66
- if (!result && weight === 500 && weightMap.has(400)) {
67
- result = weightMap.get(400);
62
+ if (weight === 500 && weightMap.has(400)) {
63
+ return weightMap.get(400);
64
+ }
65
+ if (weight < 400) {
66
+ while (weight > 0) {
67
+ if (weightMap.has(weight)) {
68
+ return weightMap.get(weight);
69
+ }
70
+ weight -= 100;
71
+ }
72
+ // reset back for the next loop
73
+ weight = 600;
68
74
  }
69
- if (!result && weight < 400) {
70
- const lighter = weightMap.get(300) || weightMap.get(200) || weightMap.get(100);
71
- if (lighter) {
72
- result = lighter;
75
+ while (weight < 1000) {
76
+ if (weightMap.has(weight)) {
77
+ return weightMap.get(weight);
73
78
  }
79
+ weight += 100;
74
80
  }
75
- if (!result && weight > 500) {
76
- const bolder = weightMap.get(600) ||
77
- weightMap.get(700) ||
78
- weightMap.get(800) ||
79
- weightMap.get(900);
80
- if (bolder) {
81
- result = bolder;
81
+ // finally check lower again
82
+ weight = 500;
83
+ while (weight > 0) {
84
+ if (weightMap.has(weight)) {
85
+ return weightMap.get(weight);
82
86
  }
87
+ weight -= 100;
83
88
  }
84
89
  }
85
- return result;
90
+ return;
86
91
  }
87
92
  const resolveFontToUse = memize(rawResolveFontToUse);
88
93
  export class TrFontManager {
@@ -1 +1 @@
1
- {"version":3,"file":"TrFontManager.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/TrFontManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrFontManager.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/TrFontManager.ts"],"names":[],"mappings":"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"}
@@ -124,11 +124,17 @@ export class CanvasTextRenderer extends TextRenderer {
124
124
  },
125
125
  width: (state, value) => {
126
126
  state.props.width = value;
127
- this.invalidateLayoutCache(state);
127
+ // Only invalidate layout cache if we're containing in the horizontal direction
128
+ if (state.props.contain !== 'none') {
129
+ this.invalidateLayoutCache(state);
130
+ }
128
131
  },
129
132
  height: (state, value) => {
130
133
  state.props.height = value;
131
- this.invalidateLayoutCache(state);
134
+ // Only invalidate layout cache if we're containing in the vertical direction
135
+ if (state.props.contain === 'both') {
136
+ this.invalidateLayoutCache(state);
137
+ }
132
138
  },
133
139
  offsetY: (state, value) => {
134
140
  state.props.offsetY = value;
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasTextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/CanvasTextRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CanvasTextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/CanvasTextRenderer.ts"],"names":[],"mappings":"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"}