@lightningjs/renderer 2.14.2 → 2.14.4

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 (310) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +147 -147
  4. package/dist/src/core/CoreTextNode.js +2 -2
  5. package/dist/src/core/CoreTextNode.js.map +1 -1
  6. package/dist/src/core/CoreTextureManager.d.ts +4 -3
  7. package/dist/src/core/CoreTextureManager.js +33 -23
  8. package/dist/src/core/CoreTextureManager.js.map +1 -1
  9. package/dist/src/core/Stage.js +7 -2
  10. package/dist/src/core/Stage.js.map +1 -1
  11. package/dist/src/core/TextureMemoryManager.d.ts +1 -1
  12. package/dist/src/core/TextureMemoryManager.js +25 -2
  13. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  14. package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -1
  15. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +1 -1
  16. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +7 -6
  17. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
  18. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +3 -0
  19. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
  20. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +5 -6
  21. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +30 -18
  22. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  23. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js +2 -0
  24. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js.map +1 -0
  25. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +45 -45
  26. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  27. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  28. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  29. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
  30. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  31. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
  32. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  33. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  34. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  35. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  36. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  37. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  38. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
  39. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
  40. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
  41. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  42. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  43. package/dist/src/core/textures/ImageTexture.d.ts +1 -1
  44. package/dist/src/core/textures/ImageTexture.js +1 -1
  45. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  46. package/dist/src/core/textures/Texture.d.ts +4 -0
  47. package/dist/src/core/textures/Texture.js +9 -3
  48. package/dist/src/core/textures/Texture.js.map +1 -1
  49. package/dist/src/main-api/Renderer.js +1 -1
  50. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  51. package/exports/canvas.ts +39 -39
  52. package/exports/index.ts +89 -89
  53. package/exports/inspector.ts +24 -24
  54. package/exports/utils.ts +44 -44
  55. package/exports/webgl.ts +38 -38
  56. package/package.json +1 -1
  57. package/scripts/please-use-pnpm.js +13 -13
  58. package/src/common/CommonTypes.ts +146 -146
  59. package/src/common/EventEmitter.ts +77 -77
  60. package/src/common/IAnimationController.ts +92 -92
  61. package/src/common/IEventEmitter.ts +28 -28
  62. package/src/core/CoreNode.test.ts +202 -202
  63. package/src/core/CoreNode.ts +2468 -2468
  64. package/src/core/CoreShaderManager.ts +292 -292
  65. package/src/core/CoreTextNode.ts +455 -455
  66. package/src/core/CoreTextureManager.ts +561 -558
  67. package/src/core/Stage.ts +748 -743
  68. package/src/core/TextureMemoryManager.ts +431 -404
  69. package/src/core/animations/AnimationManager.ts +38 -38
  70. package/src/core/animations/CoreAnimation.ts +347 -347
  71. package/src/core/animations/CoreAnimationController.ts +166 -166
  72. package/src/core/lib/ContextSpy.ts +41 -41
  73. package/src/core/lib/ImageWorker.ts +280 -280
  74. package/src/core/lib/Matrix3d.ts +244 -244
  75. package/src/core/lib/RenderCoords.ts +86 -86
  76. package/src/core/lib/WebGlContextWrapper.ts +1332 -1332
  77. package/src/core/lib/textureCompression.ts +152 -152
  78. package/src/core/lib/textureSvg.ts +78 -78
  79. package/src/core/lib/utils.ts +384 -384
  80. package/src/core/lib/validateImageBitmap.ts +76 -76
  81. package/src/core/platform.ts +63 -63
  82. package/src/core/renderers/CoreContextTexture.ts +43 -43
  83. package/src/core/renderers/CoreRenderOp.ts +22 -22
  84. package/src/core/renderers/CoreRenderer.ts +115 -115
  85. package/src/core/renderers/CoreShader.ts +41 -41
  86. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +375 -375
  87. package/src/core/renderers/canvas/CanvasCoreTexture.ts +153 -153
  88. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +231 -231
  89. package/src/core/renderers/canvas/internal/ColorUtils.ts +69 -69
  90. package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +48 -48
  91. package/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts +91 -86
  92. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +50 -50
  93. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +313 -301
  94. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +125 -125
  95. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +821 -821
  96. package/src/core/renderers/webgl/WebGlCoreShader.ts +365 -365
  97. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  98. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  99. package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -143
  100. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  101. package/src/core/renderers/webgl/shaders/DefaultShader.ts +93 -93
  102. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
  103. package/src/core/renderers/webgl/shaders/DynamicShader.ts +580 -580
  104. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +167 -167
  105. package/src/core/renderers/webgl/shaders/SdfShader.ts +204 -204
  106. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
  107. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +87 -87
  108. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
  109. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
  110. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
  111. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +159 -159
  112. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +127 -127
  113. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +148 -148
  114. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
  115. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +157 -157
  116. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +171 -171
  117. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +168 -168
  118. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +187 -187
  119. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +110 -110
  120. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +196 -196
  121. package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
  122. package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
  123. package/src/core/text-rendering/TrFontManager.ts +183 -183
  124. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
  125. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  126. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  127. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
  128. package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
  129. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
  130. package/src/core/text-rendering/font-face-types/utils.ts +39 -39
  131. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +509 -509
  132. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +808 -808
  133. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +853 -853
  134. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  135. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  136. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  137. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  138. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
  139. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  140. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  141. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +408 -408
  142. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  143. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
  144. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  145. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  146. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  147. package/src/core/text-rendering/renderers/TextRenderer.ts +557 -557
  148. package/src/core/textures/ColorTexture.ts +102 -102
  149. package/src/core/textures/ImageTexture.ts +400 -399
  150. package/src/core/textures/NoiseTexture.ts +104 -104
  151. package/src/core/textures/RenderTexture.ts +85 -85
  152. package/src/core/textures/SubTexture.ts +205 -205
  153. package/src/core/textures/Texture.ts +376 -367
  154. package/src/core/utils.ts +227 -227
  155. package/src/env.d.ts +7 -7
  156. package/src/main-api/DynamicShaderController.ts +104 -104
  157. package/src/main-api/INode.ts +101 -101
  158. package/src/main-api/Inspector.ts +522 -522
  159. package/src/main-api/Renderer.ts +751 -751
  160. package/src/main-api/ShaderController.ts +80 -80
  161. package/src/main-api/utils.ts +45 -45
  162. package/src/utils.ts +248 -248
  163. package/COPYING +0 -1
  164. package/dist/exports/canvas-shaders.d.ts +0 -10
  165. package/dist/exports/canvas-shaders.js +0 -27
  166. package/dist/exports/canvas-shaders.js.map +0 -1
  167. package/dist/exports/webgl-shaders.d.ts +0 -11
  168. package/dist/exports/webgl-shaders.js +0 -28
  169. package/dist/exports/webgl-shaders.js.map +0 -1
  170. package/dist/src/core/platforms/Platform.d.ts +0 -37
  171. package/dist/src/core/platforms/Platform.js +0 -22
  172. package/dist/src/core/platforms/Platform.js.map +0 -1
  173. package/dist/src/core/platforms/web/WebPlatform.d.ts +0 -9
  174. package/dist/src/core/platforms/web/WebPlatform.js +0 -58
  175. package/dist/src/core/platforms/web/WebPlatform.js.map +0 -1
  176. package/dist/src/core/renderers/CoreShaderNode.d.ts +0 -58
  177. package/dist/src/core/renderers/CoreShaderNode.js +0 -104
  178. package/dist/src/core/renderers/CoreShaderNode.js.map +0 -1
  179. package/dist/src/core/renderers/CoreShaderProgram.d.ts +0 -4
  180. package/dist/src/core/renderers/CoreShaderProgram.js +0 -20
  181. package/dist/src/core/renderers/CoreShaderProgram.js.map +0 -1
  182. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +0 -36
  183. package/dist/src/core/renderers/canvas/CanvasRenderer.js +0 -212
  184. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +0 -1
  185. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +0 -21
  186. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +0 -60
  187. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +0 -1
  188. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +0 -16
  189. package/dist/src/core/renderers/canvas/CanvasTexture.js +0 -124
  190. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +0 -1
  191. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +0 -12
  192. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +0 -55
  193. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +0 -1
  194. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +0 -9
  195. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +0 -38
  196. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +0 -1
  197. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +0 -57
  198. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +0 -227
  199. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +0 -1
  200. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
  201. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -118
  202. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
  203. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +0 -135
  204. package/dist/src/core/renderers/webgl/WebGlRenderer.js +0 -571
  205. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +0 -1
  206. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +0 -222
  207. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +0 -334
  208. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +0 -1
  209. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +0 -35
  210. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +0 -201
  211. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +0 -1
  212. package/dist/src/core/shaders/canvas/Border.d.ts +0 -9
  213. package/dist/src/core/shaders/canvas/Border.js +0 -57
  214. package/dist/src/core/shaders/canvas/Border.js.map +0 -1
  215. package/dist/src/core/shaders/canvas/HolePunch.d.ts +0 -7
  216. package/dist/src/core/shaders/canvas/HolePunch.js +0 -38
  217. package/dist/src/core/shaders/canvas/HolePunch.js.map +0 -1
  218. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +0 -10
  219. package/dist/src/core/shaders/canvas/LinearGradient.js +0 -46
  220. package/dist/src/core/shaders/canvas/LinearGradient.js.map +0 -1
  221. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +0 -11
  222. package/dist/src/core/shaders/canvas/RadialGradient.js +0 -68
  223. package/dist/src/core/shaders/canvas/RadialGradient.js.map +0 -1
  224. package/dist/src/core/shaders/canvas/Rounded.d.ts +0 -7
  225. package/dist/src/core/shaders/canvas/Rounded.js +0 -33
  226. package/dist/src/core/shaders/canvas/Rounded.js.map +0 -1
  227. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +0 -7
  228. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +0 -41
  229. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +0 -1
  230. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +0 -8
  231. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +0 -39
  232. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +0 -1
  233. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +0 -7
  234. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +0 -38
  235. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +0 -1
  236. package/dist/src/core/shaders/canvas/Shadow.d.ts +0 -8
  237. package/dist/src/core/shaders/canvas/Shadow.js +0 -31
  238. package/dist/src/core/shaders/canvas/Shadow.js.map +0 -1
  239. package/dist/src/core/shaders/canvas/utils/render.d.ts +0 -5
  240. package/dist/src/core/shaders/canvas/utils/render.js +0 -84
  241. package/dist/src/core/shaders/canvas/utils/render.js.map +0 -1
  242. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +0 -37
  243. package/dist/src/core/shaders/templates/BorderTemplate.js +0 -73
  244. package/dist/src/core/shaders/templates/BorderTemplate.js.map +0 -1
  245. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +0 -46
  246. package/dist/src/core/shaders/templates/HolePunchTemplate.js +0 -35
  247. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +0 -1
  248. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +0 -23
  249. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +0 -47
  250. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +0 -1
  251. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +0 -31
  252. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +0 -49
  253. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +0 -1
  254. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +0 -29
  255. package/dist/src/core/shaders/templates/RoundedTemplate.js +0 -67
  256. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +0 -1
  257. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +0 -7
  258. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +0 -24
  259. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +0 -1
  260. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +0 -6
  261. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +0 -23
  262. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +0 -1
  263. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +0 -6
  264. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -23
  265. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +0 -1
  266. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +0 -34
  267. package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -66
  268. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +0 -1
  269. package/dist/src/core/shaders/templates/shaderUtils.d.ts +0 -5
  270. package/dist/src/core/shaders/templates/shaderUtils.js +0 -41
  271. package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
  272. package/dist/src/core/shaders/webgl/Border.d.ts +0 -3
  273. package/dist/src/core/shaders/webgl/Border.js +0 -110
  274. package/dist/src/core/shaders/webgl/Border.js.map +0 -1
  275. package/dist/src/core/shaders/webgl/Default.d.ts +0 -2
  276. package/dist/src/core/shaders/webgl/Default.js +0 -86
  277. package/dist/src/core/shaders/webgl/Default.js.map +0 -1
  278. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +0 -2
  279. package/dist/src/core/shaders/webgl/DefaultBatched.js +0 -104
  280. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +0 -1
  281. package/dist/src/core/shaders/webgl/HolePunch.d.ts +0 -3
  282. package/dist/src/core/shaders/webgl/HolePunch.js +0 -64
  283. package/dist/src/core/shaders/webgl/HolePunch.js.map +0 -1
  284. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +0 -3
  285. package/dist/src/core/shaders/webgl/LinearGradient.js +0 -75
  286. package/dist/src/core/shaders/webgl/LinearGradient.js.map +0 -1
  287. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +0 -3
  288. package/dist/src/core/shaders/webgl/RadialGradient.js +0 -73
  289. package/dist/src/core/shaders/webgl/RadialGradient.js.map +0 -1
  290. package/dist/src/core/shaders/webgl/Rounded.d.ts +0 -7
  291. package/dist/src/core/shaders/webgl/Rounded.js +0 -86
  292. package/dist/src/core/shaders/webgl/Rounded.js.map +0 -1
  293. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +0 -3
  294. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +0 -129
  295. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +0 -1
  296. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +0 -3
  297. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +0 -149
  298. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +0 -1
  299. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +0 -3
  300. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +0 -84
  301. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +0 -1
  302. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -32
  303. package/dist/src/core/shaders/webgl/SdfShader.js +0 -116
  304. package/dist/src/core/shaders/webgl/SdfShader.js.map +0 -1
  305. package/dist/src/core/shaders/webgl/Shadow.d.ts +0 -3
  306. package/dist/src/core/shaders/webgl/Shadow.js +0 -110
  307. package/dist/src/core/shaders/webgl/Shadow.js.map +0 -1
  308. package/dist/src/core/temp.js +0 -77
  309. package/dist/src/core/temp.js.map +0 -1
  310. /package/dist/src/core/{temp.d.ts → renderers/webgl/WebGlCoreShader.destroy.d.ts} +0 -0
@@ -1,231 +1,231 @@
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
-
20
- import type { QuadOptions } from '../../CoreRenderer.js';
21
- import type { BorderEffectProps } from '../../webgl/shaders/effects/BorderEffect.js';
22
- import type { RadiusEffectProps } from '../../webgl/shaders/effects/RadiusEffect.js';
23
- import type { EffectDescUnion } from '../../webgl/shaders/effects/ShaderEffect.js';
24
- import {
25
- ROUNDED_RECTANGLE_SHADER_TYPE,
26
- UnsupportedShader,
27
- } from '../shaders/UnsupportedShader.js';
28
- import { formatRgba, parseColorRgba } from './ColorUtils.js';
29
-
30
- type Direction = 'Top' | 'Right' | 'Bottom' | 'Left';
31
-
32
- /**
33
- * Extract `RoundedRectangle` shader radius to apply as a clipping
34
- */
35
- export function getRadius(quad: QuadOptions): RadiusEffectProps['radius'] {
36
- if (quad.shader instanceof UnsupportedShader) {
37
- const shType = quad.shader.shType;
38
- if (shType === ROUNDED_RECTANGLE_SHADER_TYPE) {
39
- return (quad.shaderProps?.radius as number) ?? 0;
40
- } else if (shType === 'DynamicShader') {
41
- const effects = quad.shaderProps?.effects as
42
- | EffectDescUnion[]
43
- | undefined;
44
-
45
- if (effects) {
46
- const effect = effects.find((effect: EffectDescUnion) => {
47
- return effect.type === 'radius' && effect?.props?.radius;
48
- });
49
-
50
- return (effect && effect.type === 'radius' && effect.props.radius) || 0;
51
- }
52
- }
53
- }
54
- return 0;
55
- }
56
-
57
- /**
58
- * Extract `RoundedRectangle` shader radius to apply as a clipping */
59
- export function getBorder(
60
- quad: QuadOptions,
61
- direction: '' | Direction = '',
62
- ): BorderEffectProps | undefined {
63
- if (quad.shader instanceof UnsupportedShader) {
64
- const shType = quad.shader.shType;
65
- if (shType === 'DynamicShader') {
66
- const effects = quad.shaderProps?.effects as
67
- | EffectDescUnion[]
68
- | undefined;
69
-
70
- if (effects && effects.length) {
71
- const effect = effects.find((effect: EffectDescUnion) => {
72
- return (
73
- effect.type === `border${direction}` &&
74
- effect.props &&
75
- effect.props.width
76
- );
77
- });
78
-
79
- return effect && effect.props;
80
- }
81
- }
82
- }
83
-
84
- return undefined;
85
- }
86
-
87
- export function roundRect(
88
- this: CanvasRenderingContext2D | Path2D,
89
- x: number,
90
- y: number,
91
- width: number,
92
- height: number,
93
- radius: number | DOMPointInit | (number | DOMPointInit)[],
94
- ) {
95
- const context = Object.getPrototypeOf(this) as Path2D;
96
- if (!context.roundRect) {
97
- const fixOverlappingCorners = (radii: {
98
- topLeft: number;
99
- topRight: number;
100
- bottomRight: number;
101
- bottomLeft: number;
102
- }) => {
103
- const maxRadius = Math.min(width / 2, height / 2);
104
- const totalHorizontal =
105
- radii.topLeft + radii.topRight + radii.bottomRight + radii.bottomLeft;
106
-
107
- if (totalHorizontal > width || totalHorizontal > height) {
108
- const scale =
109
- maxRadius /
110
- Math.max(
111
- radii.topLeft,
112
- radii.topRight,
113
- radii.bottomRight,
114
- radii.bottomLeft,
115
- );
116
- radii.topLeft *= scale;
117
- radii.topRight *= scale;
118
- radii.bottomRight *= scale;
119
- radii.bottomLeft *= scale;
120
- }
121
- };
122
- const radii =
123
- typeof radius === 'number'
124
- ? {
125
- topLeft: radius,
126
- topRight: radius,
127
- bottomRight: radius,
128
- bottomLeft: radius,
129
- }
130
- : { topLeft: 0, topRight: 0, bottomRight: 0, bottomLeft: 0, ...radius };
131
-
132
- fixOverlappingCorners(radii);
133
-
134
- this.moveTo(x + radii.topLeft, y);
135
- this.lineTo(x + width - radii.topRight, y);
136
- this.ellipse(
137
- x + width - radii.topRight,
138
- y + radii.topRight,
139
- radii.topRight,
140
- radii.topRight,
141
- 0,
142
- 1.5 * Math.PI,
143
- 2 * Math.PI,
144
- );
145
- this.lineTo(x + width, y + height - radii.bottomRight);
146
- this.ellipse(
147
- x + width - radii.bottomRight,
148
- y + height - radii.bottomRight,
149
- radii.bottomRight,
150
- radii.bottomRight,
151
- 0,
152
- 0,
153
- 0.5 * Math.PI,
154
- );
155
- this.lineTo(x + radii.bottomLeft, y + height);
156
- this.ellipse(
157
- x + radii.bottomLeft,
158
- y + height - radii.bottomLeft,
159
- radii.bottomLeft,
160
- radii.bottomLeft,
161
- 0,
162
- 0.5 * Math.PI,
163
- Math.PI,
164
- );
165
- this.lineTo(x, y + radii.topLeft);
166
- this.ellipse(
167
- x + radii.topLeft,
168
- y + radii.topLeft,
169
- radii.topLeft,
170
- radii.topLeft,
171
- 0,
172
- Math.PI,
173
- 1.5 * Math.PI,
174
- );
175
- } else {
176
- this.roundRect(x, y, width, height, radius);
177
- }
178
- }
179
-
180
- export function strokeLine(
181
- ctx: CanvasRenderingContext2D,
182
- x: number,
183
- y: number,
184
- width: number,
185
- height: number,
186
- lineWidth = 0,
187
- color: number | undefined,
188
- direction: Direction,
189
- ) {
190
- if (!lineWidth) {
191
- return;
192
- }
193
-
194
- let sx,
195
- sy = 0;
196
- let ex,
197
- ey = 0;
198
-
199
- switch (direction) {
200
- case 'Top':
201
- sx = x;
202
- sy = y;
203
- ex = width + x;
204
- ey = y;
205
- break;
206
- case 'Right':
207
- sx = x + width;
208
- sy = y;
209
- ex = x + width;
210
- ey = y + height;
211
- break;
212
- case 'Bottom':
213
- sx = x;
214
- sy = y + height;
215
- ex = x + width;
216
- ey = y + height;
217
- break;
218
- case 'Left':
219
- sx = x;
220
- sy = y;
221
- ex = x;
222
- ey = y + height;
223
- break;
224
- }
225
- ctx.beginPath();
226
- ctx.lineWidth = lineWidth;
227
- ctx.strokeStyle = formatRgba(parseColorRgba(color ?? 0));
228
- ctx.moveTo(sx, sy);
229
- ctx.lineTo(ex, ey);
230
- ctx.stroke();
231
- }
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
+
20
+ import type { QuadOptions } from '../../CoreRenderer.js';
21
+ import type { BorderEffectProps } from '../../webgl/shaders/effects/BorderEffect.js';
22
+ import type { RadiusEffectProps } from '../../webgl/shaders/effects/RadiusEffect.js';
23
+ import type { EffectDescUnion } from '../../webgl/shaders/effects/ShaderEffect.js';
24
+ import {
25
+ ROUNDED_RECTANGLE_SHADER_TYPE,
26
+ UnsupportedShader,
27
+ } from '../shaders/UnsupportedShader.js';
28
+ import { formatRgba, parseColorRgba } from './ColorUtils.js';
29
+
30
+ type Direction = 'Top' | 'Right' | 'Bottom' | 'Left';
31
+
32
+ /**
33
+ * Extract `RoundedRectangle` shader radius to apply as a clipping
34
+ */
35
+ export function getRadius(quad: QuadOptions): RadiusEffectProps['radius'] {
36
+ if (quad.shader instanceof UnsupportedShader) {
37
+ const shType = quad.shader.shType;
38
+ if (shType === ROUNDED_RECTANGLE_SHADER_TYPE) {
39
+ return (quad.shaderProps?.radius as number) ?? 0;
40
+ } else if (shType === 'DynamicShader') {
41
+ const effects = quad.shaderProps?.effects as
42
+ | EffectDescUnion[]
43
+ | undefined;
44
+
45
+ if (effects) {
46
+ const effect = effects.find((effect: EffectDescUnion) => {
47
+ return effect.type === 'radius' && effect?.props?.radius;
48
+ });
49
+
50
+ return (effect && effect.type === 'radius' && effect.props.radius) || 0;
51
+ }
52
+ }
53
+ }
54
+ return 0;
55
+ }
56
+
57
+ /**
58
+ * Extract `RoundedRectangle` shader radius to apply as a clipping */
59
+ export function getBorder(
60
+ quad: QuadOptions,
61
+ direction: '' | Direction = '',
62
+ ): BorderEffectProps | undefined {
63
+ if (quad.shader instanceof UnsupportedShader) {
64
+ const shType = quad.shader.shType;
65
+ if (shType === 'DynamicShader') {
66
+ const effects = quad.shaderProps?.effects as
67
+ | EffectDescUnion[]
68
+ | undefined;
69
+
70
+ if (effects && effects.length) {
71
+ const effect = effects.find((effect: EffectDescUnion) => {
72
+ return (
73
+ effect.type === `border${direction}` &&
74
+ effect.props &&
75
+ effect.props.width
76
+ );
77
+ });
78
+
79
+ return effect && effect.props;
80
+ }
81
+ }
82
+ }
83
+
84
+ return undefined;
85
+ }
86
+
87
+ export function roundRect(
88
+ this: CanvasRenderingContext2D | Path2D,
89
+ x: number,
90
+ y: number,
91
+ width: number,
92
+ height: number,
93
+ radius: number | DOMPointInit | (number | DOMPointInit)[],
94
+ ) {
95
+ const context = Object.getPrototypeOf(this) as Path2D;
96
+ if (!context.roundRect) {
97
+ const fixOverlappingCorners = (radii: {
98
+ topLeft: number;
99
+ topRight: number;
100
+ bottomRight: number;
101
+ bottomLeft: number;
102
+ }) => {
103
+ const maxRadius = Math.min(width / 2, height / 2);
104
+ const totalHorizontal =
105
+ radii.topLeft + radii.topRight + radii.bottomRight + radii.bottomLeft;
106
+
107
+ if (totalHorizontal > width || totalHorizontal > height) {
108
+ const scale =
109
+ maxRadius /
110
+ Math.max(
111
+ radii.topLeft,
112
+ radii.topRight,
113
+ radii.bottomRight,
114
+ radii.bottomLeft,
115
+ );
116
+ radii.topLeft *= scale;
117
+ radii.topRight *= scale;
118
+ radii.bottomRight *= scale;
119
+ radii.bottomLeft *= scale;
120
+ }
121
+ };
122
+ const radii =
123
+ typeof radius === 'number'
124
+ ? {
125
+ topLeft: radius,
126
+ topRight: radius,
127
+ bottomRight: radius,
128
+ bottomLeft: radius,
129
+ }
130
+ : { topLeft: 0, topRight: 0, bottomRight: 0, bottomLeft: 0, ...radius };
131
+
132
+ fixOverlappingCorners(radii);
133
+
134
+ this.moveTo(x + radii.topLeft, y);
135
+ this.lineTo(x + width - radii.topRight, y);
136
+ this.ellipse(
137
+ x + width - radii.topRight,
138
+ y + radii.topRight,
139
+ radii.topRight,
140
+ radii.topRight,
141
+ 0,
142
+ 1.5 * Math.PI,
143
+ 2 * Math.PI,
144
+ );
145
+ this.lineTo(x + width, y + height - radii.bottomRight);
146
+ this.ellipse(
147
+ x + width - radii.bottomRight,
148
+ y + height - radii.bottomRight,
149
+ radii.bottomRight,
150
+ radii.bottomRight,
151
+ 0,
152
+ 0,
153
+ 0.5 * Math.PI,
154
+ );
155
+ this.lineTo(x + radii.bottomLeft, y + height);
156
+ this.ellipse(
157
+ x + radii.bottomLeft,
158
+ y + height - radii.bottomLeft,
159
+ radii.bottomLeft,
160
+ radii.bottomLeft,
161
+ 0,
162
+ 0.5 * Math.PI,
163
+ Math.PI,
164
+ );
165
+ this.lineTo(x, y + radii.topLeft);
166
+ this.ellipse(
167
+ x + radii.topLeft,
168
+ y + radii.topLeft,
169
+ radii.topLeft,
170
+ radii.topLeft,
171
+ 0,
172
+ Math.PI,
173
+ 1.5 * Math.PI,
174
+ );
175
+ } else {
176
+ this.roundRect(x, y, width, height, radius);
177
+ }
178
+ }
179
+
180
+ export function strokeLine(
181
+ ctx: CanvasRenderingContext2D,
182
+ x: number,
183
+ y: number,
184
+ width: number,
185
+ height: number,
186
+ lineWidth = 0,
187
+ color: number | undefined,
188
+ direction: Direction,
189
+ ) {
190
+ if (!lineWidth) {
191
+ return;
192
+ }
193
+
194
+ let sx,
195
+ sy = 0;
196
+ let ex,
197
+ ey = 0;
198
+
199
+ switch (direction) {
200
+ case 'Top':
201
+ sx = x;
202
+ sy = y;
203
+ ex = width + x;
204
+ ey = y;
205
+ break;
206
+ case 'Right':
207
+ sx = x + width;
208
+ sy = y;
209
+ ex = x + width;
210
+ ey = y + height;
211
+ break;
212
+ case 'Bottom':
213
+ sx = x;
214
+ sy = y + height;
215
+ ex = x + width;
216
+ ey = y + height;
217
+ break;
218
+ case 'Left':
219
+ sx = x;
220
+ sy = y;
221
+ ex = x;
222
+ ey = y + height;
223
+ break;
224
+ }
225
+ ctx.beginPath();
226
+ ctx.lineWidth = lineWidth;
227
+ ctx.strokeStyle = formatRgba(parseColorRgba(color ?? 0));
228
+ ctx.moveTo(sx, sy);
229
+ ctx.lineTo(ex, ey);
230
+ ctx.stroke();
231
+ }
@@ -1,69 +1,69 @@
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
-
20
- export interface IParsedColor {
21
- isWhite: boolean;
22
- a: number;
23
- r: number;
24
- g: number;
25
- b: number;
26
- }
27
-
28
- const WHITE: IParsedColor = {
29
- isWhite: true,
30
- a: 1,
31
- r: 0xff,
32
- g: 0xff,
33
- b: 0xff,
34
- };
35
-
36
- /**
37
- * Extract color components
38
- */
39
- export function parseColor(abgr: number): IParsedColor {
40
- if (abgr === 0xffffffff) {
41
- return WHITE;
42
- }
43
- const a = ((abgr >>> 24) & 0xff) / 255;
44
- const b = (abgr >>> 16) & 0xff & 0xff;
45
- const g = (abgr >>> 8) & 0xff & 0xff;
46
- const r = abgr & 0xff & 0xff;
47
- return { isWhite: false, a, r, g, b };
48
- }
49
-
50
- /**
51
- * Extract color components
52
- */
53
- export function parseColorRgba(rgba: number): IParsedColor {
54
- if (rgba === 0xffffffff) {
55
- return WHITE;
56
- }
57
- const r = (rgba >>> 24) & 0xff;
58
- const g = (rgba >>> 16) & 0xff & 0xff;
59
- const b = (rgba >>> 8) & 0xff & 0xff;
60
- const a = (rgba & 0xff & 0xff) / 255;
61
- return { isWhite: false, r, g, b, a };
62
- }
63
-
64
- /**
65
- * Format a parsed color into a rgba CSS color
66
- */
67
- export function formatRgba({ a, r, g, b }: IParsedColor): string {
68
- return `rgba(${r},${g},${b},${a})`;
69
- }
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
+
20
+ export interface IParsedColor {
21
+ isWhite: boolean;
22
+ a: number;
23
+ r: number;
24
+ g: number;
25
+ b: number;
26
+ }
27
+
28
+ const WHITE: IParsedColor = {
29
+ isWhite: true,
30
+ a: 1,
31
+ r: 0xff,
32
+ g: 0xff,
33
+ b: 0xff,
34
+ };
35
+
36
+ /**
37
+ * Extract color components
38
+ */
39
+ export function parseColor(abgr: number): IParsedColor {
40
+ if (abgr === 0xffffffff) {
41
+ return WHITE;
42
+ }
43
+ const a = ((abgr >>> 24) & 0xff) / 255;
44
+ const b = (abgr >>> 16) & 0xff & 0xff;
45
+ const g = (abgr >>> 8) & 0xff & 0xff;
46
+ const r = abgr & 0xff & 0xff;
47
+ return { isWhite: false, a, r, g, b };
48
+ }
49
+
50
+ /**
51
+ * Extract color components
52
+ */
53
+ export function parseColorRgba(rgba: number): IParsedColor {
54
+ if (rgba === 0xffffffff) {
55
+ return WHITE;
56
+ }
57
+ const r = (rgba >>> 24) & 0xff;
58
+ const g = (rgba >>> 16) & 0xff & 0xff;
59
+ const b = (rgba >>> 8) & 0xff & 0xff;
60
+ const a = (rgba & 0xff & 0xff) / 255;
61
+ return { isWhite: false, r, g, b, a };
62
+ }
63
+
64
+ /**
65
+ * Format a parsed color into a rgba CSS color
66
+ */
67
+ export function formatRgba({ a, r, g, b }: IParsedColor): string {
68
+ return `rgba(${r},${g},${b},${a})`;
69
+ }