@lightningjs/renderer 2.13.1 → 2.13.3

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 (353) hide show
  1. package/COPYING +1 -0
  2. package/LICENSE +202 -202
  3. package/NOTICE +3 -3
  4. package/README.md +147 -147
  5. package/dist/exports/canvas-shaders.d.ts +10 -0
  6. package/dist/exports/canvas-shaders.js +27 -0
  7. package/dist/exports/canvas-shaders.js.map +1 -0
  8. package/dist/exports/webgl-shaders.d.ts +11 -0
  9. package/dist/exports/webgl-shaders.js +28 -0
  10. package/dist/exports/webgl-shaders.js.map +1 -0
  11. package/dist/src/core/CoreTextureManager.js +6 -0
  12. package/dist/src/core/CoreTextureManager.js.map +1 -1
  13. package/dist/src/core/platforms/Platform.d.ts +37 -0
  14. package/dist/src/{main-api/texture-usage-trackers/TextureUsageTracker.js → core/platforms/Platform.js} +3 -9
  15. package/dist/src/core/platforms/Platform.js.map +1 -0
  16. package/dist/src/core/platforms/web/WebPlatform.d.ts +9 -0
  17. package/dist/src/core/platforms/web/WebPlatform.js +58 -0
  18. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
  19. package/dist/src/core/renderers/CoreShaderNode.d.ts +58 -0
  20. package/dist/src/core/renderers/CoreShaderNode.js +104 -0
  21. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
  22. package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
  23. package/dist/src/{main-api/ICoreDriver.js → core/renderers/CoreShaderProgram.js} +1 -1
  24. package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
  25. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +36 -0
  26. package/dist/src/core/renderers/canvas/CanvasRenderer.js +212 -0
  27. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
  28. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
  29. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +60 -0
  30. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
  31. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +16 -0
  32. package/dist/src/core/renderers/canvas/CanvasTexture.js +124 -0
  33. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
  34. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +12 -0
  35. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +55 -0
  36. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
  37. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +9 -0
  38. package/dist/src/core/{CoreExtension.js → renderers/webgl/WebGlCtxSubTexture.js} +19 -10
  39. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
  40. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +57 -0
  41. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +227 -0
  42. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
  43. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +44 -0
  44. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +118 -0
  45. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
  46. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +135 -0
  47. package/dist/src/core/renderers/webgl/WebGlRenderer.js +571 -0
  48. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
  49. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +222 -0
  50. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +334 -0
  51. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
  52. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +35 -0
  53. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +201 -0
  54. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
  55. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +45 -45
  56. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  57. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  58. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  59. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
  60. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  61. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
  62. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  63. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  64. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  65. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  66. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  67. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  68. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
  69. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
  70. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
  71. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  72. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  73. package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
  74. package/dist/src/core/shaders/canvas/Border.js +57 -0
  75. package/dist/src/core/shaders/canvas/Border.js.map +1 -0
  76. package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
  77. package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
  78. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
  79. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
  80. package/dist/src/core/shaders/canvas/LinearGradient.js +46 -0
  81. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
  82. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
  83. package/dist/src/core/shaders/canvas/RadialGradient.js +68 -0
  84. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
  85. package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
  86. package/dist/src/core/shaders/canvas/Rounded.js +33 -0
  87. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
  88. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
  89. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +41 -0
  90. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
  91. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
  92. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +39 -0
  93. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
  94. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
  95. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +38 -0
  96. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
  97. package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
  98. package/dist/src/core/shaders/canvas/Shadow.js +31 -0
  99. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
  100. package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
  101. package/dist/src/core/shaders/canvas/utils/render.js +84 -0
  102. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
  103. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +37 -0
  104. package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
  105. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
  106. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
  107. package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
  108. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
  109. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
  110. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
  111. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
  112. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +31 -0
  113. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
  114. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
  115. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
  116. package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
  117. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
  118. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
  119. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
  120. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
  121. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +6 -0
  122. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
  123. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
  124. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
  125. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
  126. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
  127. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
  128. package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
  129. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
  130. package/dist/src/core/shaders/templates/shaderUtils.d.ts +5 -0
  131. package/dist/src/core/shaders/templates/shaderUtils.js +41 -0
  132. package/dist/src/core/shaders/templates/shaderUtils.js.map +1 -0
  133. package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
  134. package/dist/src/core/shaders/webgl/Border.js +110 -0
  135. package/dist/src/core/shaders/webgl/Border.js.map +1 -0
  136. package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
  137. package/dist/src/core/shaders/webgl/Default.js +86 -0
  138. package/dist/src/core/shaders/webgl/Default.js.map +1 -0
  139. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
  140. package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
  141. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
  142. package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
  143. package/dist/src/core/shaders/webgl/HolePunch.js +64 -0
  144. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
  145. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
  146. package/dist/src/core/shaders/webgl/LinearGradient.js +75 -0
  147. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
  148. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
  149. package/dist/src/core/shaders/webgl/RadialGradient.js +73 -0
  150. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
  151. package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
  152. package/dist/src/core/shaders/webgl/Rounded.js +86 -0
  153. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
  154. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
  155. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +129 -0
  156. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
  157. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
  158. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +149 -0
  159. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
  160. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
  161. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +84 -0
  162. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
  163. package/dist/src/core/shaders/webgl/SdfShader.d.ts +32 -0
  164. package/dist/src/core/shaders/webgl/SdfShader.js +116 -0
  165. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
  166. package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
  167. package/dist/src/core/shaders/webgl/Shadow.js +110 -0
  168. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
  169. package/dist/src/core/temp.js +77 -0
  170. package/dist/src/core/temp.js.map +1 -0
  171. package/dist/src/core/textures/Texture.d.ts +4 -2
  172. package/dist/src/core/textures/Texture.js +18 -6
  173. package/dist/src/core/textures/Texture.js.map +1 -1
  174. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  175. package/exports/canvas.ts +39 -39
  176. package/exports/index.ts +89 -89
  177. package/exports/inspector.ts +24 -24
  178. package/exports/utils.ts +44 -44
  179. package/exports/webgl.ts +38 -38
  180. package/package.json +1 -2
  181. package/scripts/please-use-pnpm.js +13 -13
  182. package/src/common/CommonTypes.ts +146 -146
  183. package/src/common/EventEmitter.ts +77 -77
  184. package/src/common/IAnimationController.ts +92 -92
  185. package/src/common/IEventEmitter.ts +28 -28
  186. package/src/core/CoreNode.test.ts +202 -202
  187. package/src/core/CoreNode.ts +2455 -2455
  188. package/src/core/CoreShaderManager.ts +292 -292
  189. package/src/core/CoreTextNode.ts +455 -455
  190. package/src/core/CoreTextureManager.ts +604 -597
  191. package/src/core/Stage.ts +743 -743
  192. package/src/core/TextureMemoryManager.ts +395 -395
  193. package/src/core/animations/AnimationManager.ts +38 -38
  194. package/src/core/animations/CoreAnimation.ts +340 -340
  195. package/src/core/animations/CoreAnimationController.ts +157 -157
  196. package/src/core/lib/ContextSpy.ts +41 -41
  197. package/src/core/lib/ImageWorker.ts +280 -280
  198. package/src/core/lib/Matrix3d.ts +244 -244
  199. package/src/core/lib/RenderCoords.ts +86 -86
  200. package/src/core/lib/WebGlContextWrapper.ts +1332 -1332
  201. package/src/core/lib/textureCompression.ts +152 -152
  202. package/src/core/lib/textureSvg.ts +78 -78
  203. package/src/core/lib/utils.ts +384 -384
  204. package/src/core/lib/validateImageBitmap.ts +76 -76
  205. package/src/core/platform.ts +63 -63
  206. package/src/core/renderers/CoreContextTexture.ts +43 -43
  207. package/src/core/renderers/CoreRenderOp.ts +22 -22
  208. package/src/core/renderers/CoreRenderer.ts +115 -115
  209. package/src/core/renderers/CoreShader.ts +41 -41
  210. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +375 -375
  211. package/src/core/renderers/canvas/CanvasCoreTexture.ts +153 -153
  212. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +231 -231
  213. package/src/core/renderers/canvas/internal/ColorUtils.ts +69 -69
  214. package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +48 -48
  215. package/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts +86 -86
  216. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +50 -50
  217. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +301 -301
  218. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +125 -125
  219. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +815 -815
  220. package/src/core/renderers/webgl/WebGlCoreShader.ts +362 -362
  221. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  222. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  223. package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -143
  224. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  225. package/src/core/renderers/webgl/shaders/DefaultShader.ts +93 -93
  226. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
  227. package/src/core/renderers/webgl/shaders/DynamicShader.ts +580 -580
  228. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +167 -167
  229. package/src/core/renderers/webgl/shaders/SdfShader.ts +204 -204
  230. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
  231. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +87 -87
  232. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
  233. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
  234. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
  235. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +159 -159
  236. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +127 -127
  237. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +148 -148
  238. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
  239. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +157 -157
  240. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +171 -171
  241. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +168 -168
  242. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +187 -187
  243. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +110 -110
  244. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +196 -196
  245. package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
  246. package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
  247. package/src/core/text-rendering/TrFontManager.ts +183 -183
  248. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
  249. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  250. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  251. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
  252. package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
  253. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
  254. package/src/core/text-rendering/font-face-types/utils.ts +39 -39
  255. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +509 -509
  256. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +808 -808
  257. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +853 -853
  258. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  259. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  260. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  261. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  262. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
  263. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  264. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  265. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +408 -408
  266. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  267. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
  268. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  269. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  270. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  271. package/src/core/text-rendering/renderers/TextRenderer.ts +557 -557
  272. package/src/core/textures/ColorTexture.ts +102 -102
  273. package/src/core/textures/ImageTexture.ts +399 -399
  274. package/src/core/textures/NoiseTexture.ts +104 -104
  275. package/src/core/textures/RenderTexture.ts +85 -85
  276. package/src/core/textures/SubTexture.ts +205 -205
  277. package/src/core/textures/Texture.ts +353 -337
  278. package/src/core/utils.ts +227 -227
  279. package/src/env.d.ts +7 -7
  280. package/src/main-api/DynamicShaderController.ts +104 -104
  281. package/src/main-api/INode.ts +101 -101
  282. package/src/main-api/Inspector.ts +522 -522
  283. package/src/main-api/Renderer.ts +751 -751
  284. package/src/main-api/ShaderController.ts +80 -80
  285. package/src/main-api/utils.ts +45 -45
  286. package/src/utils.ts +248 -248
  287. package/dist/exports/core-api.d.ts +0 -74
  288. package/dist/exports/core-api.js +0 -96
  289. package/dist/exports/core-api.js.map +0 -1
  290. package/dist/exports/main-api.d.ts +0 -30
  291. package/dist/exports/main-api.js +0 -45
  292. package/dist/exports/main-api.js.map +0 -1
  293. package/dist/src/core/CoreExtension.d.ts +0 -12
  294. package/dist/src/core/CoreExtension.js.map +0 -1
  295. package/dist/src/main-api/ICoreDriver.d.ts +0 -24
  296. package/dist/src/main-api/ICoreDriver.js.map +0 -1
  297. package/dist/src/main-api/RendererMain.d.ts +0 -378
  298. package/dist/src/main-api/RendererMain.js +0 -367
  299. package/dist/src/main-api/RendererMain.js.map +0 -1
  300. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
  301. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
  302. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
  303. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
  304. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
  305. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
  306. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
  307. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
  308. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -21
  309. package/dist/src/render-drivers/main/MainCoreDriver.js +0 -115
  310. package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
  311. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -101
  312. package/dist/src/render-drivers/main/MainOnlyNode.js +0 -425
  313. package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
  314. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
  315. package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -204
  316. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
  317. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -93
  318. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -290
  319. package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
  320. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -40
  321. package/dist/src/render-drivers/threadx/SharedNode.js +0 -61
  322. package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
  323. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
  324. package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -203
  325. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
  326. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -25
  327. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -232
  328. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
  329. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -24
  330. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -113
  331. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
  332. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -46
  333. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -160
  334. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
  335. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
  336. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
  337. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
  338. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
  339. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
  340. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
  341. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
  342. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -184
  343. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
  344. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
  345. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -109
  346. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
  347. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -147
  348. package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
  349. package/dist/src/render-drivers/utils.d.ts +0 -12
  350. package/dist/src/render-drivers/utils.js +0 -74
  351. package/dist/src/render-drivers/utils.js.map +0 -1
  352. package/dist/tsconfig.tsbuildinfo +0 -1
  353. /package/dist/src/{render-drivers/threadx/worker/renderer.d.ts → core/temp.d.ts} +0 -0
@@ -49,32 +49,32 @@ export class HolePunchEffect extends ShaderEffect {
49
49
  };
50
50
  }
51
51
  static methods = {
52
- fillMask: `
53
- float function(float dist) {
54
- return clamp(-dist, 0.0, 1.0);
55
- }
52
+ fillMask: `
53
+ float function(float dist) {
54
+ return clamp(-dist, 0.0, 1.0);
55
+ }
56
56
  `,
57
- boxDist: `
58
- float function(vec2 p, vec2 size, float radius) {
59
- size -= vec2(radius);
60
- vec2 d = abs(p) - size;
61
- return min(max(d.x, d.y), 0.0) + length(max(d, 0.0)) - radius;
62
- }
57
+ boxDist: `
58
+ float function(vec2 p, vec2 size, float radius) {
59
+ size -= vec2(radius);
60
+ vec2 d = abs(p) - size;
61
+ return min(max(d.x, d.y), 0.0) + length(max(d, 0.0)) - radius;
62
+ }
63
63
  `,
64
64
  };
65
- static onShaderMask = `
66
- vec2 halfDimensions = u_dimensions * 0.5;
67
- vec2 size = vec2(width, height) * 0.5;
68
- vec2 basePos = v_textureCoordinate.xy * u_dimensions.xy - vec2(x, y);
69
- vec2 pos = basePos - size;
70
- float r = radius[0] * step(pos.x, 0.5) * step(pos.y, 0.5);
71
- r = r + radius[1] * step(0.5, pos.x) * step(pos.y, 0.5);
72
- r = r + radius[2] * step(0.5, pos.x) * step(0.5, pos.y);
73
- r = r + radius[3] * step(pos.x, 0.5) * step(0.5, pos.y);
74
- return $boxDist(pos, size, r);
65
+ static onShaderMask = `
66
+ vec2 halfDimensions = u_dimensions * 0.5;
67
+ vec2 size = vec2(width, height) * 0.5;
68
+ vec2 basePos = v_textureCoordinate.xy * u_dimensions.xy - vec2(x, y);
69
+ vec2 pos = basePos - size;
70
+ float r = radius[0] * step(pos.x, 0.5) * step(pos.y, 0.5);
71
+ r = r + radius[1] * step(0.5, pos.x) * step(pos.y, 0.5);
72
+ r = r + radius[2] * step(0.5, pos.x) * step(0.5, pos.y);
73
+ r = r + radius[3] * step(pos.x, 0.5) * step(0.5, pos.y);
74
+ return $boxDist(pos, size, r);
75
75
  `;
76
- static onEffectMask = `
77
- return mix(maskColor, vec4(0.0), $fillMask(shaderMask));
76
+ static onEffectMask = `
77
+ return mix(maskColor, vec4(0.0), $fillMask(shaderMask));
78
78
  `;
79
79
  }
80
80
  //# sourceMappingURL=HolePunchEffect.js.map
@@ -82,24 +82,24 @@ export class LinearGradientEffect extends ShaderEffect {
82
82
  },
83
83
  };
84
84
  static methods = {
85
- fromLinear: `
86
- vec4 function(vec4 linearRGB) {
87
- vec4 higher = vec4(1.055)*pow(linearRGB, vec4(1.0/2.4)) - vec4(0.055);
88
- vec4 lower = linearRGB * vec4(12.92);
89
- return mix(higher, lower, 1.0);
90
- }
85
+ fromLinear: `
86
+ vec4 function(vec4 linearRGB) {
87
+ vec4 higher = vec4(1.055)*pow(linearRGB, vec4(1.0/2.4)) - vec4(0.055);
88
+ vec4 lower = linearRGB * vec4(12.92);
89
+ return mix(higher, lower, 1.0);
90
+ }
91
91
  `,
92
- toLinear: `
93
- vec4 function(vec4 sRGB) {
94
- vec4 higher = pow((sRGB + vec4(0.055))/vec4(1.055), vec4(2.4));
95
- vec4 lower = sRGB/vec4(12.92);
96
- return mix(higher, lower, 1.0);
97
- }
92
+ toLinear: `
93
+ vec4 function(vec4 sRGB) {
94
+ vec4 higher = pow((sRGB + vec4(0.055))/vec4(1.055), vec4(2.4));
95
+ vec4 lower = sRGB/vec4(12.92);
96
+ return mix(higher, lower, 1.0);
97
+ }
98
98
  `,
99
- calcPoint: `
100
- vec2 function(float d, float angle) {
101
- return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
102
- }
99
+ calcPoint: `
100
+ vec2 function(float d, float angle) {
101
+ return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
102
+ }
103
103
  `,
104
104
  };
105
105
  static ColorLoop = (amount) => {
@@ -111,18 +111,18 @@ export class LinearGradientEffect extends ShaderEffect {
111
111
  };
112
112
  static onColorize = (props) => {
113
113
  const colors = props.colors.length || 1;
114
- return `
115
- float a = angle - (PI / 180.0 * 90.0);
116
- float lineDist = abs(u_dimensions.x * cos(a)) + abs(u_dimensions.y * sin(a));
117
- vec2 f = $calcPoint(lineDist * 0.5, a);
118
- vec2 t = $calcPoint(lineDist * 0.5, a + PI);
119
- vec2 gradVec = t - f;
120
- float dist = dot(v_textureCoordinate.xy * u_dimensions - f, gradVec) / dot(gradVec, gradVec);
121
-
122
- float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
123
- vec4 colorOut = $fromLinear(mix($toLinear(colors[0]), $toLinear(colors[1]), stopCalc));
124
- ${this.ColorLoop(colors)}
125
- return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
114
+ return `
115
+ float a = angle - (PI / 180.0 * 90.0);
116
+ float lineDist = abs(u_dimensions.x * cos(a)) + abs(u_dimensions.y * sin(a));
117
+ vec2 f = $calcPoint(lineDist * 0.5, a);
118
+ vec2 t = $calcPoint(lineDist * 0.5, a + PI);
119
+ vec2 gradVec = t - f;
120
+ float dist = dot(v_textureCoordinate.xy * u_dimensions - f, gradVec) / dot(gradVec, gradVec);
121
+
122
+ float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
123
+ vec4 colorOut = $fromLinear(mix($toLinear(colors[0]), $toLinear(colors[1]), stopCalc));
124
+ ${this.ColorLoop(colors)}
125
+ return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
126
126
  `;
127
127
  };
128
128
  }
@@ -100,16 +100,16 @@ export class RadialGradientEffect extends ShaderEffect {
100
100
  };
101
101
  static onColorize = (props) => {
102
102
  const colors = props.colors.length || 1;
103
- return `
104
- vec2 point = v_textureCoordinate.xy * u_dimensions;
105
- vec2 projection = vec2(pivot.x * u_dimensions.x, pivot.y * u_dimensions.y);
106
-
107
- float dist = length((point - projection) / vec2(width, height));
108
-
109
- float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
110
- vec4 colorOut = mix(colors[0], colors[1], stopCalc);
111
- ${this.ColorLoop(colors)}
112
- return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
103
+ return `
104
+ vec2 point = v_textureCoordinate.xy * u_dimensions;
105
+ vec2 projection = vec2(pivot.x * u_dimensions.x, pivot.y * u_dimensions.y);
106
+
107
+ float dist = length((point - projection) / vec2(width, height));
108
+
109
+ float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
110
+ vec4 colorOut = mix(colors[0], colors[1], stopCalc);
111
+ ${this.ColorLoop(colors)}
112
+ return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
113
113
  `;
114
114
  };
115
115
  }
@@ -81,47 +81,47 @@ export class RadialProgressEffect extends ShaderEffect {
81
81
  },
82
82
  };
83
83
  static methods = {
84
- rotateUV: `
85
- vec2 function(vec2 uv, float d) {
86
- float s = sin(d);
87
- float c = cos(d);
88
- mat2 rotMatrix = mat2(c, -s, s, c);
89
- return uv * rotMatrix;
90
- }
84
+ rotateUV: `
85
+ vec2 function(vec2 uv, float d) {
86
+ float s = sin(d);
87
+ float c = cos(d);
88
+ mat2 rotMatrix = mat2(c, -s, s, c);
89
+ return uv * rotMatrix;
90
+ }
91
91
  `,
92
- drawDot: `
93
- float function(vec2 uv, vec2 p, float r) {
94
- uv += p;
95
- float circle = length(uv) - r;
96
- return clamp(-circle, 0.0, 1.0);
97
- }
92
+ drawDot: `
93
+ float function(vec2 uv, vec2 p, float r) {
94
+ uv += p;
95
+ float circle = length(uv) - r;
96
+ return clamp(-circle, 0.0, 1.0);
97
+ }
98
98
  `,
99
99
  };
100
- static onEffectMask = `
101
- float outerRadius = radius * u_dimensions.y * 0.5;
102
-
103
- float endAngle = range * progress - 0.0005;
104
-
105
- vec2 uv = v_textureCoordinate.xy * u_dimensions.xy - u_dimensions * 0.5;
106
-
107
- uv = $rotateUV(uv, -(offset));
108
- float linewidth = width * u_pixelRatio;
109
- float circle = length(uv) - (outerRadius - linewidth) ;
110
- circle = abs(circle) - linewidth;
111
- circle = clamp(-circle, 0.0, 1.0);
112
-
113
- float angle = (atan(uv.x, -uv.y) / 3.14159265359 * 0.5);
114
- float p = endAngle / (PI * 2.);
115
-
116
- circle *= step(fract(angle), fract(p));
117
-
118
- circle = rounded < 1. ? circle : max(circle, $drawDot(uv, vec2(0, outerRadius - linewidth), linewidth));
119
- circle = rounded < 1. ? circle : max(circle, $drawDot($rotateUV(uv, -(endAngle)), vec2(0, outerRadius - linewidth), linewidth));
120
-
121
- return mix(shaderColor, maskColor, circle);
100
+ static onEffectMask = `
101
+ float outerRadius = radius * u_dimensions.y * 0.5;
102
+
103
+ float endAngle = range * progress - 0.0005;
104
+
105
+ vec2 uv = v_textureCoordinate.xy * u_dimensions.xy - u_dimensions * 0.5;
106
+
107
+ uv = $rotateUV(uv, -(offset));
108
+ float linewidth = width * u_pixelRatio;
109
+ float circle = length(uv) - (outerRadius - linewidth) ;
110
+ circle = abs(circle) - linewidth;
111
+ circle = clamp(-circle, 0.0, 1.0);
112
+
113
+ float angle = (atan(uv.x, -uv.y) / 3.14159265359 * 0.5);
114
+ float p = endAngle / (PI * 2.);
115
+
116
+ circle *= step(fract(angle), fract(p));
117
+
118
+ circle = rounded < 1. ? circle : max(circle, $drawDot(uv, vec2(0, outerRadius - linewidth), linewidth));
119
+ circle = rounded < 1. ? circle : max(circle, $drawDot($rotateUV(uv, -(endAngle)), vec2(0, outerRadius - linewidth), linewidth));
120
+
121
+ return mix(shaderColor, maskColor, circle);
122
122
  `;
123
- static onColorize = `
124
- return color;
123
+ static onColorize = `
124
+ return color;
125
125
  `;
126
126
  }
127
127
  //# sourceMappingURL=RadialProgressEffect.js.map
@@ -38,17 +38,17 @@ export class RadiusEffect extends ShaderEffect {
38
38
  },
39
39
  };
40
40
  static methods = {
41
- fillMask: `
42
- float function(float dist) {
43
- return clamp(-dist, 0.0, 1.0);
44
- }
41
+ fillMask: `
42
+ float function(float dist) {
43
+ return clamp(-dist, 0.0, 1.0);
44
+ }
45
45
  `,
46
- boxDist: `
47
- float function(vec2 p, vec2 size, float radius) {
48
- size -= vec2(radius);
49
- vec2 d = abs(p) - size;
50
- return min(max(d.x, d.y), 0.0) + length(max(d, 0.0)) - radius;
51
- }
46
+ boxDist: `
47
+ float function(vec2 p, vec2 size, float radius) {
48
+ size -= vec2(radius);
49
+ vec2 d = abs(p) - size;
50
+ return min(max(d.x, d.y), 0.0) + length(max(d, 0.0)) - radius;
51
+ }
52
52
  `,
53
53
  };
54
54
  static resolveDefaults(props) {
@@ -56,16 +56,16 @@ export class RadiusEffect extends ShaderEffect {
56
56
  radius: props.radius ?? 10,
57
57
  };
58
58
  }
59
- static onShaderMask = `
60
- vec2 halfDimensions = u_dimensions * 0.5;
61
- float r = radius[0] * step(v_textureCoordinate.x, 0.5) * step(v_textureCoordinate.y, 0.5);
62
- r = r + radius[1] * step(0.5, v_textureCoordinate.x) * step(v_textureCoordinate.y, 0.5);
63
- r = r + radius[2] * step(0.5, v_textureCoordinate.x) * step(0.5, v_textureCoordinate.y);
64
- r = r + radius[3] * step(v_textureCoordinate.x, 0.5) * step(0.5, v_textureCoordinate.y);
65
- return $boxDist(v_textureCoordinate.xy * u_dimensions - halfDimensions, halfDimensions, r);
59
+ static onShaderMask = `
60
+ vec2 halfDimensions = u_dimensions * 0.5;
61
+ float r = radius[0] * step(v_textureCoordinate.x, 0.5) * step(v_textureCoordinate.y, 0.5);
62
+ r = r + radius[1] * step(0.5, v_textureCoordinate.x) * step(v_textureCoordinate.y, 0.5);
63
+ r = r + radius[2] * step(0.5, v_textureCoordinate.x) * step(0.5, v_textureCoordinate.y);
64
+ r = r + radius[3] * step(v_textureCoordinate.x, 0.5) * step(0.5, v_textureCoordinate.y);
65
+ return $boxDist(v_textureCoordinate.xy * u_dimensions - halfDimensions, halfDimensions, r);
66
66
  `;
67
- static onEffectMask = `
68
- return mix(vec4(0.0), maskColor, $fillMask(shaderMask));
67
+ static onEffectMask = `
68
+ return mix(vec4(0.0), maskColor, $fillMask(shaderMask));
69
69
  `;
70
70
  }
71
71
  //# sourceMappingURL=RadiusEffect.js.map
@@ -0,0 +1,9 @@
1
+ import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
+ import type { Vec4 } from '../../renderers/webgl/internal/ShaderUtils.js';
3
+ import { type BorderProps } from '../templates/BorderTemplate.js';
4
+ export interface ComputedBorderValues {
5
+ borderColor: string;
6
+ borderAsym: boolean;
7
+ borderRadius: Vec4;
8
+ }
9
+ export declare const Border: CanvasShaderType<BorderProps, ComputedBorderValues>;
@@ -0,0 +1,57 @@
1
+ /*
2
+ * Copyright 2023 Comcast Cable Communications Management, LLC
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ *
15
+ * SPDX-License-Identifier: Apache-2.0
16
+ */
17
+ import { valuesAreEqual } from '../../lib/utils.js';
18
+ import { formatRgba, parseColorRgba, } from '../../renderers/canvas/internal/ColorUtils.js';
19
+ import { BorderTemplate, } from '../templates/BorderTemplate.js';
20
+ import { strokeLine } from './utils/render.js';
21
+ export const Border = {
22
+ props: BorderTemplate.props,
23
+ update() {
24
+ this.computed.borderColor = formatRgba(parseColorRgba(this.props.color));
25
+ this.computed.borderAsym = !valuesAreEqual(this.props.width);
26
+ },
27
+ render(ctx, quad, renderContext) {
28
+ renderContext();
29
+ ctx.strokeStyle = this.computed.borderColor;
30
+ if (this.computed.borderAsym === false && this.props.width[0] > 0) {
31
+ const bWidth = this.props.width[0];
32
+ const bHalfWidth = bWidth * 0.5;
33
+ ctx.lineWidth = bWidth;
34
+ ctx.beginPath();
35
+ ctx.strokeRect(quad.tx + bHalfWidth, quad.ty + bHalfWidth, quad.width - bWidth, quad.height - bWidth);
36
+ return;
37
+ }
38
+ const { 0: t, 1: r, 2: b, 3: l } = this.props.width;
39
+ if (t > 0) {
40
+ const y = quad.ty + t * 0.5;
41
+ strokeLine(ctx, quad.tx, y, quad.tx + quad.width, y, t);
42
+ }
43
+ if (r > 0) {
44
+ const x = quad.tx + quad.width - r * 0.5;
45
+ strokeLine(ctx, x, quad.ty, x, quad.ty + quad.height, r);
46
+ }
47
+ if (b > 0) {
48
+ const y = quad.ty + quad.height - b * 0.5;
49
+ strokeLine(ctx, quad.tx, y, quad.tx + quad.width, y, b);
50
+ }
51
+ if (l > 0) {
52
+ const x = quad.tx + l * 0.5;
53
+ strokeLine(ctx, x, quad.ty, x, quad.ty + quad.height, l);
54
+ }
55
+ },
56
+ };
57
+ //# sourceMappingURL=Border.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Border.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/Border.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
+ import type { Vec4 } from '../../renderers/webgl/internal/ShaderUtils.js';
3
+ import { type HolePunchProps } from '../templates/HolePunchTemplate.js';
4
+ export interface ComputedHolePunchValues {
5
+ radius: Vec4;
6
+ }
7
+ export declare const HolePunch: CanvasShaderType<HolePunchProps, ComputedHolePunchValues>;
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Copyright 2023 Comcast Cable Communications Management, LLC
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ *
15
+ * SPDX-License-Identifier: Apache-2.0
16
+ */
17
+ import { calcFactoredRadiusArray } from '../../lib/utils.js';
18
+ import { HolePunchTemplate, } from '../templates/HolePunchTemplate.js';
19
+ import { roundRect } from './utils/render.js';
20
+ export const HolePunch = {
21
+ props: HolePunchTemplate.props,
22
+ update() {
23
+ this.computed.radius = calcFactoredRadiusArray(this.props.radius, this.props.width, this.props.height);
24
+ },
25
+ render(ctx, quad, renderContext) {
26
+ ctx.save();
27
+ renderContext();
28
+ const { x, y, width, height } = this.props;
29
+ ctx.beginPath();
30
+ roundRect(ctx, quad.tx + x, quad.ty + y, width, height, this.computed.radius);
31
+ ctx.closePath();
32
+ ctx.fillStyle = 'black';
33
+ ctx.globalCompositeOperation = 'destination-out';
34
+ ctx.fill();
35
+ ctx.restore();
36
+ },
37
+ };
38
+ //# sourceMappingURL=HolePunch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HolePunch.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/HolePunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,iBAAiB,GAElB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAM9C,MAAM,CAAC,MAAM,SAAS,GAGlB;IACF,KAAK,EAAE,iBAAiB,CAAC,KAAK;IAC9B,MAAM;QACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,uBAAuB,CAC5C,IAAI,CAAC,KAAM,CAAC,MAAc,EAC1B,IAAI,CAAC,KAAM,CAAC,KAAK,EACjB,IAAI,CAAC,KAAM,CAAC,MAAM,CACnB,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAM,CAAC;QAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,SAAS,CACP,GAAG,EACH,IAAI,CAAC,EAAE,GAAG,CAAC,EACX,IAAI,CAAC,EAAE,GAAG,CAAC,EACX,KAAK,EACL,MAAM,EACN,IAAI,CAAC,QAAQ,CAAC,MAAO,CACtB,CAAC;QACF,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;QACxB,GAAG,CAAC,wBAAwB,GAAG,iBAAiB,CAAC;QACjD,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
+ import { type LinearGradientProps } from '../templates/LinearGradientTemplate.js';
3
+ export interface ComputedLinearGradientValues {
4
+ x0: number;
5
+ y0: number;
6
+ x1: number;
7
+ y1: number;
8
+ colors: string[];
9
+ }
10
+ export declare const LinearGradient: CanvasShaderType<LinearGradientProps, ComputedLinearGradientValues>;
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Copyright 2023 Comcast Cable Communications Management, LLC
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ *
15
+ * SPDX-License-Identifier: Apache-2.0
16
+ */
17
+ import { LinearGradientTemplate, } from '../templates/LinearGradientTemplate.js';
18
+ export const LinearGradient = {
19
+ props: LinearGradientTemplate.props,
20
+ update(node) {
21
+ const angle = this.props.angle - (Math.PI / 180) * 90;
22
+ const nWidth = node.width;
23
+ const nHeight = node.height;
24
+ const line = (Math.abs(nWidth * Math.sin(angle)) +
25
+ Math.abs(nHeight * Math.cos(angle))) *
26
+ 0.5;
27
+ this.computed = {
28
+ x0: line * Math.cos(angle) + nWidth * 0.5,
29
+ y0: line * Math.sin(angle) + nHeight * 0.5,
30
+ x1: line * Math.cos(angle + Math.PI) + nWidth * 0.5,
31
+ y1: line * Math.sin(angle + Math.PI) + nHeight * 0.5,
32
+ colors: this.props.colors.map((value) => this.toColorString(value)),
33
+ };
34
+ },
35
+ render(ctx, quad, renderContext) {
36
+ renderContext();
37
+ const gradient = ctx.createLinearGradient(quad.tx + this.computed.x0, quad.ty + this.computed.y0, quad.tx + this.computed.x1, quad.ty + this.computed.y1);
38
+ const colors = this.computed.colors;
39
+ for (let i = 0; i < colors.length; i++) {
40
+ gradient.addColorStop(this.props['stops'][i], colors[i]);
41
+ }
42
+ ctx.fillStyle = gradient;
43
+ ctx.fillRect(quad.tx, quad.ty, quad.width, quad.height);
44
+ },
45
+ };
46
+ //# sourceMappingURL=LinearGradient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearGradient.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/LinearGradient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,sBAAsB,GAEvB,MAAM,wCAAwC,CAAC;AAUhD,MAAM,CAAC,MAAM,cAAc,GAGvB;IACF,KAAK,EAAE,sBAAsB,CAAC,KAAK;IACnC,MAAM,CAAC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,MAAM,IAAI,GACR,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC;QAEN,IAAI,CAAC,QAAQ,GAAG;YACd,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,GAAG;YACzC,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,GAAG;YAC1C,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,GAAG;YACnD,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,GAAG;YACpD,MAAM,EAAE,IAAI,CAAC,KAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACrE,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,aAAa,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CACvC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAG,EAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAG,EAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAG,EAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAG,CAC5B,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAO,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QAC9D,CAAC;QACD,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;QACzB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
+ import { type RadialGradientProps } from '../templates/RadialGradientTemplate.js';
3
+ export interface ComputedRadialGradientValues {
4
+ pivotX: number;
5
+ pivotY: number;
6
+ scaleX: number;
7
+ scaleY: number;
8
+ size: number;
9
+ colors: string[];
10
+ }
11
+ export declare const RadialGradient: CanvasShaderType<RadialGradientProps, ComputedRadialGradientValues>;
@@ -0,0 +1,68 @@
1
+ /*
2
+ * Copyright 2023 Comcast Cable Communications Management, LLC
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ *
15
+ * SPDX-License-Identifier: Apache-2.0
16
+ */
17
+ import { RadialGradientTemplate, } from '../templates/RadialGradientTemplate.js';
18
+ export const RadialGradient = {
19
+ props: RadialGradientTemplate.props,
20
+ update(node) {
21
+ let scaleX = 1;
22
+ let scaleY = 1;
23
+ const pWidth = this.props.width;
24
+ const pHeight = this.props.height;
25
+ if (pWidth > pHeight) {
26
+ scaleX = pWidth / pHeight;
27
+ }
28
+ else if (pHeight > pWidth) {
29
+ scaleY = pHeight / pWidth;
30
+ }
31
+ this.computed = {
32
+ pivotX: this.props.pivot[0] * node.width,
33
+ pivotY: this.props.pivot[1] * node.height,
34
+ scaleX,
35
+ scaleY,
36
+ size: Math.min(pWidth, pHeight) * 0.5,
37
+ colors: this.props.colors.map((value) => this.toColorString(value)),
38
+ };
39
+ },
40
+ render(ctx, quad, renderContext) {
41
+ renderContext();
42
+ const { scaleX, scaleY, pivotX, pivotY } = this.computed;
43
+ const colors = this.computed.colors;
44
+ let x = quad.tx + pivotX;
45
+ let y = quad.ty + pivotY;
46
+ if (scaleX === scaleY) {
47
+ const gradient = ctx.createRadialGradient(x, y, 0, x, y, this.computed.size);
48
+ for (let i = 0; i < colors.length; i++) {
49
+ gradient.addColorStop(this.props['stops'][i], colors[i]);
50
+ }
51
+ ctx.fillStyle = gradient;
52
+ ctx.fillRect(quad.tx, quad.ty, quad.width, quad.height);
53
+ return;
54
+ }
55
+ ctx.save();
56
+ ctx.scale(scaleX, scaleY);
57
+ x = x / scaleX;
58
+ y = y / scaleY;
59
+ const gradient = ctx.createRadialGradient(x, y, 0, x, y, this.computed.size);
60
+ for (let i = 0; i < colors.length; i++) {
61
+ gradient.addColorStop(this.props['stops'][i], colors[i]);
62
+ }
63
+ ctx.fillStyle = gradient;
64
+ ctx.fillRect(quad.tx / scaleX, quad.ty / scaleY, quad.width / scaleX, quad.height / scaleY);
65
+ ctx.restore();
66
+ },
67
+ };
68
+ //# sourceMappingURL=RadialGradient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadialGradient.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/RadialGradient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
+ import type { Vec4 } from '../../renderers/webgl/internal/ShaderUtils.js';
3
+ import { type RoundedProps } from '../templates/RoundedTemplate.js';
4
+ export interface ComputedRoundedValues {
5
+ radius: Vec4;
6
+ }
7
+ export declare const Rounded: CanvasShaderType<RoundedProps, ComputedRoundedValues>;
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Copyright 2023 Comcast Cable Communications Management, LLC
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ *
15
+ * SPDX-License-Identifier: Apache-2.0
16
+ */
17
+ import { calcFactoredRadiusArray } from '../../lib/utils.js';
18
+ import { RoundedTemplate, } from '../templates/RoundedTemplate.js';
19
+ import { roundRect } from './utils/render.js';
20
+ export const Rounded = {
21
+ props: RoundedTemplate.props,
22
+ saveAndRestore: true,
23
+ update(node) {
24
+ this.computed.radius = calcFactoredRadiusArray(this.props.radius, node.width, node.height);
25
+ },
26
+ render(ctx, quad, renderContext) {
27
+ const path = new Path2D();
28
+ roundRect(path, quad.tx, quad.ty, quad.width, quad.height, this.computed.radius);
29
+ ctx.clip(path);
30
+ renderContext();
31
+ },
32
+ };
33
+ //# sourceMappingURL=Rounded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rounded.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/Rounded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAM9C,MAAM,CAAC,MAAM,OAAO,GAA0D;IAC5E,KAAK,EAAE,eAAe,CAAC,KAAK;IAC5B,cAAc,EAAE,IAAI;IACpB,MAAM,CAAC,IAAI;QACT,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,uBAAuB,CAC5C,IAAI,CAAC,KAAM,CAAC,MAAc,EAC1B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;QAC1B,SAAS,CACP,IAAI,EACJ,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CAAC,MAAO,CACtB,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEf,aAAa,EAAE,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { CanvasShaderType } from '../../renderers/canvas/CanvasShaderNode.js';
2
+ import { type RoundedWithBorderProps } from '../templates/RoundedWithBorderTemplate.js';
3
+ import type { ComputedBorderValues } from './Border.js';
4
+ import type { ComputedRoundedValues } from './Rounded.js';
5
+ type ComputedValues = ComputedRoundedValues & ComputedBorderValues;
6
+ export declare const RoundedWithBorder: CanvasShaderType<RoundedWithBorderProps, ComputedValues>;
7
+ export {};