@lightningjs/renderer 2.13.1 → 3.0.0-beta2

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 (440) hide show
  1. package/dist/exports/canvas-shaders.d.ts +10 -0
  2. package/dist/exports/canvas-shaders.js +27 -0
  3. package/dist/exports/canvas-shaders.js.map +1 -0
  4. package/dist/exports/canvas.d.ts +7 -1
  5. package/dist/exports/canvas.js +7 -1
  6. package/dist/exports/canvas.js.map +1 -1
  7. package/dist/exports/index.d.ts +15 -8
  8. package/dist/exports/index.js +7 -4
  9. package/dist/exports/index.js.map +1 -1
  10. package/dist/exports/webgl-shaders.d.ts +11 -0
  11. package/dist/exports/webgl-shaders.js +28 -0
  12. package/dist/exports/webgl-shaders.js.map +1 -0
  13. package/dist/exports/webgl.d.ts +9 -1
  14. package/dist/exports/webgl.js +9 -1
  15. package/dist/exports/webgl.js.map +1 -1
  16. package/dist/src/core/CoreNode.d.ts +10 -5
  17. package/dist/src/core/CoreNode.js +34 -13
  18. package/dist/src/core/CoreNode.js.map +1 -1
  19. package/dist/src/core/CoreShaderManager.d.ts +29 -71
  20. package/dist/src/core/CoreShaderManager.js +110 -97
  21. package/dist/src/core/CoreShaderManager.js.map +1 -1
  22. package/dist/src/core/CoreStuff.d.ts +1 -0
  23. package/dist/src/core/CoreStuff.js +138 -0
  24. package/dist/src/core/CoreStuff.js.map +1 -0
  25. package/dist/src/core/CoreTextNode.js +1 -8
  26. package/dist/src/core/CoreTextNode.js.map +1 -1
  27. package/dist/src/core/CoreTexturizer.d.ts +14 -0
  28. package/dist/src/core/CoreTexturizer.js +47 -0
  29. package/dist/src/core/CoreTexturizer.js.map +1 -0
  30. package/dist/src/core/LngNode.d.ts +736 -0
  31. package/dist/src/core/LngNode.js +1174 -0
  32. package/dist/src/core/LngNode.js.map +1 -0
  33. package/dist/src/core/Matrix2DContext.d.ts +15 -0
  34. package/dist/src/core/Matrix2DContext.js +45 -0
  35. package/dist/src/core/Matrix2DContext.js.map +1 -0
  36. package/dist/src/core/ShaderNode.d.ts +10 -0
  37. package/dist/src/core/ShaderNode.js +30 -0
  38. package/dist/src/core/ShaderNode.js.map +1 -0
  39. package/dist/src/core/Stage.d.ts +11 -14
  40. package/dist/src/core/Stage.js +24 -29
  41. package/dist/src/core/Stage.js.map +1 -1
  42. package/dist/src/core/TextNode.d.ts +103 -0
  43. package/dist/src/core/TextNode.js +331 -0
  44. package/dist/src/core/TextNode.js.map +1 -0
  45. package/dist/src/core/animations/CoreAnimation.d.ts +0 -1
  46. package/dist/src/core/animations/CoreAnimation.js +6 -52
  47. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  48. package/dist/src/core/lib/Coords.d.ts +14 -0
  49. package/dist/src/core/lib/Coords.js +55 -0
  50. package/dist/src/core/lib/Coords.js.map +1 -0
  51. package/dist/src/core/lib/RenderCoords.d.ts +9 -10
  52. package/dist/src/core/lib/RenderCoords.js +43 -55
  53. package/dist/src/core/lib/RenderCoords.js.map +1 -1
  54. package/dist/src/core/lib/WebGlContextWrapper.d.ts +89 -54
  55. package/dist/src/core/lib/WebGlContextWrapper.js +153 -157
  56. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  57. package/dist/src/core/lib/glm/common.d.ts +162 -0
  58. package/dist/src/core/lib/glm/common.js +81 -0
  59. package/dist/src/core/lib/glm/common.js.map +1 -0
  60. package/dist/src/core/lib/glm/index.d.ts +11 -0
  61. package/{src/core/renderers/CoreShader.ts → dist/src/core/lib/glm/index.js} +12 -23
  62. package/dist/src/core/lib/glm/index.js.map +1 -0
  63. package/dist/src/core/lib/glm/mat2.d.ts +219 -0
  64. package/dist/src/core/lib/glm/mat2.js +396 -0
  65. package/dist/src/core/lib/glm/mat2.js.map +1 -0
  66. package/dist/src/core/lib/glm/mat2d.d.ts +237 -0
  67. package/dist/src/core/lib/glm/mat2d.js +442 -0
  68. package/dist/src/core/lib/glm/mat2d.js.map +1 -0
  69. package/dist/src/core/lib/glm/mat3.d.ts +283 -0
  70. package/dist/src/core/lib/glm/mat3.js +680 -0
  71. package/dist/src/core/lib/glm/mat3.js.map +1 -0
  72. package/dist/src/core/lib/glm/mat4.d.ts +550 -0
  73. package/dist/src/core/lib/glm/mat4.js +1802 -0
  74. package/dist/src/core/lib/glm/mat4.js.map +1 -0
  75. package/dist/src/core/lib/glm/quat.d.ts +363 -0
  76. package/dist/src/core/lib/glm/quat.js +693 -0
  77. package/dist/src/core/lib/glm/quat.js.map +1 -0
  78. package/dist/src/core/lib/glm/quat2.d.ts +356 -0
  79. package/dist/src/core/lib/glm/quat2.js +754 -0
  80. package/dist/src/core/lib/glm/quat2.js.map +1 -0
  81. package/dist/src/core/lib/glm/vec2.d.ts +365 -0
  82. package/dist/src/core/lib/glm/vec2.js +569 -0
  83. package/dist/src/core/lib/glm/vec2.js.map +1 -0
  84. package/dist/src/core/lib/glm/vec3.d.ts +406 -0
  85. package/dist/src/core/lib/glm/vec3.js +720 -0
  86. package/dist/src/core/lib/glm/vec3.js.map +1 -0
  87. package/dist/src/core/lib/glm/vec4.d.ts +330 -0
  88. package/dist/src/core/lib/glm/vec4.js +608 -0
  89. package/dist/src/core/lib/glm/vec4.js.map +1 -0
  90. package/dist/src/core/lib/textureCompression.js +0 -1
  91. package/dist/src/core/lib/textureCompression.js.map +1 -1
  92. package/dist/src/core/lib/utils.d.ts +2 -1
  93. package/dist/src/core/lib/utils.js.map +1 -1
  94. package/dist/src/core/platform.js +1 -0
  95. package/dist/src/core/platform.js.map +1 -1
  96. package/dist/src/core/renderers/CoreRenderer.d.ts +11 -21
  97. package/dist/src/core/renderers/CoreRenderer.js +0 -6
  98. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  99. package/dist/src/core/renderers/CoreShaderManager.d.ts +19 -0
  100. package/dist/src/core/renderers/CoreShaderManager.js +33 -0
  101. package/dist/src/core/renderers/CoreShaderManager.js.map +1 -0
  102. package/dist/src/core/renderers/CoreShaderNode.d.ts +58 -0
  103. package/dist/src/core/renderers/CoreShaderNode.js +104 -0
  104. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
  105. package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
  106. package/dist/src/core/renderers/CoreShaderProgram.js +20 -0
  107. package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
  108. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +36 -0
  109. package/dist/src/core/renderers/canvas/CanvasRenderer.js +212 -0
  110. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
  111. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
  112. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +60 -0
  113. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
  114. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +16 -0
  115. package/dist/src/core/renderers/canvas/CanvasTexture.js +124 -0
  116. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
  117. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -13
  118. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +192 -113
  119. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  120. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +2 -0
  121. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +14 -0
  122. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  123. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +27 -0
  124. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +82 -0
  125. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +1 -0
  126. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +11 -0
  127. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +34 -0
  128. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +1 -0
  129. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +12 -0
  130. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +55 -0
  131. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
  132. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +9 -0
  133. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +38 -0
  134. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
  135. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +57 -0
  136. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +227 -0
  137. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
  138. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +44 -0
  139. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +118 -0
  140. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
  141. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +134 -0
  142. package/dist/src/core/renderers/webgl/WebGlRenderer.js +547 -0
  143. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
  144. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +222 -0
  145. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +334 -0
  146. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
  147. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +35 -0
  148. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +201 -0
  149. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
  150. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +32 -5
  151. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +50 -0
  152. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  153. package/dist/src/core/scene/Scene.d.ts +59 -0
  154. package/dist/src/core/scene/Scene.js +106 -0
  155. package/dist/src/core/scene/Scene.js.map +1 -0
  156. package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
  157. package/dist/src/core/shaders/canvas/Border.js +57 -0
  158. package/dist/src/core/shaders/canvas/Border.js.map +1 -0
  159. package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
  160. package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
  161. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
  162. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
  163. package/dist/src/core/shaders/canvas/LinearGradient.js +46 -0
  164. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
  165. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
  166. package/dist/src/core/shaders/canvas/RadialGradient.js +68 -0
  167. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
  168. package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
  169. package/dist/src/core/shaders/canvas/Rounded.js +33 -0
  170. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
  171. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
  172. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +35 -0
  173. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
  174. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
  175. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +39 -0
  176. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
  177. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
  178. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +38 -0
  179. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
  180. package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
  181. package/dist/src/core/shaders/canvas/Shadow.js +31 -0
  182. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
  183. package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
  184. package/dist/src/core/shaders/canvas/utils/render.js +84 -0
  185. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
  186. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +37 -0
  187. package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
  188. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
  189. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
  190. package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
  191. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
  192. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
  193. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
  194. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
  195. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +31 -0
  196. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
  197. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
  198. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
  199. package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
  200. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
  201. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
  202. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
  203. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
  204. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +6 -0
  205. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
  206. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
  207. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
  208. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
  209. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
  210. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
  211. package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
  212. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
  213. package/dist/src/core/shaders/templates/shaderUtils.d.ts +5 -0
  214. package/dist/src/core/shaders/templates/shaderUtils.js +41 -0
  215. package/dist/src/core/shaders/templates/shaderUtils.js.map +1 -0
  216. package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
  217. package/dist/src/core/shaders/webgl/Border.js +87 -0
  218. package/dist/src/core/shaders/webgl/Border.js.map +1 -0
  219. package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
  220. package/dist/src/core/shaders/webgl/Default.js +86 -0
  221. package/dist/src/core/shaders/webgl/Default.js.map +1 -0
  222. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
  223. package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
  224. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
  225. package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
  226. package/dist/src/core/shaders/webgl/HolePunch.js +64 -0
  227. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
  228. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
  229. package/dist/src/core/shaders/webgl/LinearGradient.js +75 -0
  230. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
  231. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
  232. package/dist/src/core/shaders/webgl/RadialGradient.js +73 -0
  233. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
  234. package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
  235. package/dist/src/core/shaders/webgl/Rounded.js +86 -0
  236. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
  237. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
  238. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +97 -0
  239. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
  240. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
  241. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +112 -0
  242. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
  243. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
  244. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +84 -0
  245. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
  246. package/dist/src/core/shaders/webgl/SdfShader.d.ts +32 -0
  247. package/dist/src/core/shaders/webgl/SdfShader.js +116 -0
  248. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
  249. package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
  250. package/dist/src/core/shaders/webgl/Shadow.js +110 -0
  251. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
  252. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  253. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  254. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  255. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +6 -0
  256. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  257. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +2 -3
  258. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +34 -31
  259. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  260. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
  261. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
  262. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
  263. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +1 -4
  264. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  265. package/dist/src/core/textures/Texture.d.ts +1 -1
  266. package/dist/src/main-api/ICoreDriver.d.ts +4 -1
  267. package/dist/src/main-api/INode.d.ts +9 -9
  268. package/dist/src/main-api/IRenderDriver.d.ts +20 -0
  269. package/dist/src/main-api/IRenderDriver.js +20 -0
  270. package/dist/src/main-api/IRenderDriver.js.map +1 -0
  271. package/dist/src/main-api/IShaderController.d.ts +14 -0
  272. package/dist/src/main-api/IShaderController.js +30 -0
  273. package/dist/src/main-api/IShaderController.js.map +1 -0
  274. package/dist/src/main-api/IShaderNode.d.ts +17 -0
  275. package/dist/src/main-api/IShaderNode.js +19 -0
  276. package/dist/src/main-api/IShaderNode.js.map +1 -0
  277. package/dist/src/main-api/Renderer.d.ts +8 -91
  278. package/dist/src/main-api/Renderer.js +3 -54
  279. package/dist/src/main-api/Renderer.js.map +1 -1
  280. package/dist/src/main-api/RendererMain.d.ts +2 -5
  281. package/dist/src/main-api/RendererMain.js +4 -6
  282. package/dist/src/main-api/RendererMain.js.map +1 -1
  283. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -1
  284. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +4 -1
  285. package/dist/src/render-drivers/main/MainCoreDriver.js +4 -1
  286. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  287. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +6 -8
  288. package/dist/src/render-drivers/main/MainOnlyNode.js +1 -30
  289. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -1
  290. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +6 -0
  291. package/dist/src/render-drivers/main/MainOnlyShaderController.js +15 -0
  292. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +1 -0
  293. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +7 -0
  294. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +34 -0
  295. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +1 -0
  296. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +1 -1
  297. package/dist/src/render-drivers/main/MainOnlyTextNode.js +3 -2
  298. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
  299. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +17 -0
  300. package/dist/src/render-drivers/main/MainRenderDriver.js +88 -0
  301. package/dist/src/render-drivers/main/MainRenderDriver.js.map +1 -0
  302. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -3
  303. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -9
  304. package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -1
  305. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -1
  306. package/dist/src/render-drivers/threadx/SharedNode.js +0 -1
  307. package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -1
  308. package/dist/src/render-drivers/threadx/TextNodeStruct.js +1 -3
  309. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
  310. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +4 -1
  311. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +4 -2
  312. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  313. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +4 -8
  314. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +24 -53
  315. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -1
  316. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +5 -7
  317. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +2 -8
  318. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -1
  319. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +6 -0
  320. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +16 -0
  321. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +1 -0
  322. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +7 -0
  323. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +15 -0
  324. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +1 -0
  325. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
  326. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +21 -0
  327. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +198 -0
  328. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +1 -0
  329. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -7
  330. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
  331. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -1
  332. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -1
  333. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -2
  334. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  335. package/dist/src/render-drivers/utils.js +1 -6
  336. package/dist/src/render-drivers/utils.js.map +1 -1
  337. package/dist/src/utils.d.ts +6 -0
  338. package/dist/src/utils.js +18 -0
  339. package/dist/src/utils.js.map +1 -1
  340. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  341. package/exports/canvas-shaders.ts +28 -0
  342. package/exports/canvas.ts +7 -1
  343. package/exports/index.ts +17 -17
  344. package/exports/webgl-shaders.ts +28 -0
  345. package/exports/webgl.ts +13 -1
  346. package/package.json +3 -1
  347. package/src/core/CoreNode.test.ts +3 -2
  348. package/src/core/CoreNode.ts +50 -19
  349. package/src/core/CoreShaderManager.ts +127 -226
  350. package/src/core/CoreTextNode.ts +1 -17
  351. package/src/core/Stage.ts +36 -41
  352. package/src/core/animations/CoreAnimation.ts +8 -64
  353. package/src/core/lib/RenderCoords.ts +52 -67
  354. package/src/core/lib/WebGlContextWrapper.ts +278 -236
  355. package/src/core/lib/textureCompression.ts +3 -3
  356. package/src/core/lib/utils.ts +3 -1
  357. package/src/core/platform.ts +1 -0
  358. package/src/core/renderers/CoreRenderer.ts +19 -27
  359. package/src/core/renderers/CoreShaderNode.ts +167 -0
  360. package/src/core/renderers/{canvas/shaders/UnsupportedShader.ts → CoreShaderProgram.ts} +3 -28
  361. package/src/core/renderers/canvas/CanvasRenderer.ts +298 -0
  362. package/src/core/renderers/canvas/CanvasShaderNode.ts +99 -0
  363. package/src/core/renderers/canvas/{CanvasCoreTexture.ts → CanvasTexture.ts} +6 -3
  364. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +2 -13
  365. package/src/core/renderers/canvas/internal/ColorUtils.ts +16 -0
  366. package/src/core/renderers/webgl/{WebGlCoreCtxRenderTexture.ts → WebGlCtxRenderTexture.ts} +2 -2
  367. package/src/core/renderers/webgl/{WebGlCoreCtxSubTexture.ts → WebGlCtxSubTexture.ts} +2 -2
  368. package/src/core/renderers/webgl/{WebGlCoreCtxTexture.ts → WebGlCtxTexture.ts} +1 -1
  369. package/src/core/renderers/webgl/WebGlRenderOp.ts +161 -0
  370. package/src/core/renderers/webgl/{WebGlCoreRenderer.ts → WebGlRenderer.ts} +155 -250
  371. package/src/core/renderers/webgl/WebGlShaderNode.ts +437 -0
  372. package/src/core/renderers/webgl/WebGlShaderProgram.ts +318 -0
  373. package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -5
  374. package/src/core/shaders/canvas/Border.ts +78 -0
  375. package/src/core/shaders/canvas/HolePunch.ts +62 -0
  376. package/src/core/shaders/canvas/LinearGradient.ts +69 -0
  377. package/src/core/shaders/canvas/RadialGradient.ts +113 -0
  378. package/src/core/shaders/canvas/Rounded.ts +55 -0
  379. package/src/core/shaders/canvas/RoundedWithBorder.ts +68 -0
  380. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -0
  381. package/src/core/shaders/canvas/RoundedWithShadow.ts +69 -0
  382. package/src/core/shaders/canvas/Shadow.ts +52 -0
  383. package/src/core/shaders/canvas/utils/render.ts +151 -0
  384. package/src/core/shaders/templates/BorderTemplate.ts +115 -0
  385. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -0
  386. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -0
  387. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -0
  388. package/src/core/shaders/templates/RoundedTemplate.ts +98 -0
  389. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -0
  390. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -0
  391. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -0
  392. package/src/core/shaders/templates/ShadowTemplate.ts +106 -0
  393. package/src/core/shaders/templates/shaderUtils.ts +47 -0
  394. package/src/core/shaders/webgl/Border.ts +96 -0
  395. package/src/core/shaders/webgl/Default.ts +89 -0
  396. package/src/core/shaders/webgl/DefaultBatched.ts +129 -0
  397. package/src/core/shaders/webgl/HolePunch.ts +78 -0
  398. package/src/core/shaders/webgl/LinearGradient.ts +81 -0
  399. package/src/core/shaders/webgl/RadialGradient.ts +84 -0
  400. package/src/core/shaders/webgl/Rounded.ts +117 -0
  401. package/src/core/shaders/webgl/RoundedWithBorder.ts +114 -0
  402. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +133 -0
  403. package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -0
  404. package/src/core/shaders/webgl/SdfShader.ts +134 -0
  405. package/src/core/shaders/webgl/Shadow.ts +115 -0
  406. package/src/core/text-rendering/TextTextureRendererUtils.ts +1 -1
  407. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +2 -2
  408. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +12 -5
  409. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +44 -57
  410. package/src/core/text-rendering/renderers/TextRenderer.ts +2 -9
  411. package/src/core/textures/Texture.ts +1 -1
  412. package/src/main-api/INode.ts +11 -13
  413. package/src/main-api/Renderer.ts +25 -127
  414. package/src/utils.ts +19 -0
  415. package/dist/tsconfig.tsbuildinfo +0 -1
  416. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +0 -375
  417. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +0 -125
  418. package/src/core/renderers/webgl/WebGlCoreShader.ts +0 -362
  419. package/src/core/renderers/webgl/shaders/DefaultShader.ts +0 -93
  420. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -132
  421. package/src/core/renderers/webgl/shaders/DynamicShader.ts +0 -580
  422. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +0 -167
  423. package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -204
  424. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +0 -101
  425. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +0 -87
  426. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +0 -101
  427. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +0 -101
  428. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +0 -101
  429. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +0 -159
  430. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +0 -127
  431. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +0 -148
  432. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +0 -67
  433. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +0 -157
  434. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +0 -171
  435. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +0 -168
  436. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +0 -187
  437. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +0 -110
  438. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +0 -196
  439. package/src/main-api/DynamicShaderController.ts +0 -104
  440. package/src/main-api/ShaderController.ts +0 -80
@@ -0,0 +1,201 @@
1
+ import { Default } from '../../shaders/webgl/Default.js';
2
+ import { createProgram, createShader, } from './internal/ShaderUtils.js';
3
+ export class WebGlShaderProgram {
4
+ boundBufferCollection = null;
5
+ program;
6
+ /**
7
+ * Vertex Array Object
8
+ *
9
+ * @remarks
10
+ * Used by WebGL2 Only
11
+ */
12
+ vao;
13
+ renderer;
14
+ glw;
15
+ attributeLocations;
16
+ lifecycle;
17
+ useSystemAlpha = false;
18
+ useSystemDimensions = false;
19
+ supportsIndexedTextures = false;
20
+ constructor(renderer, config, resolvedProps) {
21
+ this.renderer = renderer;
22
+ const glw = (this.glw = renderer.glw);
23
+ // Check that extensions are supported
24
+ const webGl2 = glw.isWebGl2();
25
+ let requiredExtensions = [];
26
+ this.supportsIndexedTextures =
27
+ config.supportsIndexedTextures || this.supportsIndexedTextures;
28
+ requiredExtensions =
29
+ (webGl2 && config.webgl2Extensions) ||
30
+ (!webGl2 && config.webgl1Extensions) ||
31
+ [];
32
+ const glVersion = webGl2 ? '2.0' : '1.0';
33
+ requiredExtensions.forEach((extensionName) => {
34
+ if (!glw.getExtension(extensionName)) {
35
+ throw new Error(`Shader "${this.constructor.name}" requires extension "${extensionName}" for WebGL ${glVersion} but wasn't found`);
36
+ }
37
+ });
38
+ let vertexSource = config.vertex instanceof Function
39
+ ? config.vertex(renderer, resolvedProps)
40
+ : config.vertex;
41
+ if (vertexSource === undefined) {
42
+ vertexSource = Default.vertex;
43
+ }
44
+ const fragmentSource = config.fragment instanceof Function
45
+ ? config.fragment(renderer, resolvedProps)
46
+ : config.fragment;
47
+ const vertexShader = createShader(glw, glw.VERTEX_SHADER, vertexSource);
48
+ if (!vertexShader) {
49
+ throw new Error('Vertex shader creation failed');
50
+ }
51
+ const fragmentShader = createShader(glw, glw.FRAGMENT_SHADER, fragmentSource);
52
+ if (!fragmentShader) {
53
+ throw new Error('fragment shader creation failed');
54
+ }
55
+ const program = createProgram(glw, vertexShader, fragmentShader);
56
+ if (!program) {
57
+ throw new Error();
58
+ }
59
+ this.program = program;
60
+ this.attributeLocations = glw.getAttributeLocations(program);
61
+ this.useSystemAlpha =
62
+ this.glw.getUniformLocation(program, 'u_alpha') !== null;
63
+ this.useSystemDimensions =
64
+ this.glw.getUniformLocation(program, 'u_dimensions') !== null;
65
+ this.lifecycle = {
66
+ update: config.update,
67
+ canBatch: config.canBatch,
68
+ };
69
+ }
70
+ disableAttribute(location) {
71
+ this.glw.disableVertexAttribArray(location);
72
+ }
73
+ disableAttributes() {
74
+ const { glw } = this;
75
+ const attribs = Object.keys(this.attributeLocations);
76
+ const attribLen = attribs.length;
77
+ for (let i = 0; i < attribLen; i++) {
78
+ glw.disableVertexAttribArray(i);
79
+ }
80
+ }
81
+ reuseRenderOp(incomingQuad, currentRenderOp) {
82
+ if (this.lifecycle.canBatch !== undefined) {
83
+ return this.lifecycle.canBatch(incomingQuad, currentRenderOp);
84
+ }
85
+ if (this.useSystemAlpha === true) {
86
+ if (incomingQuad.alpha !== currentRenderOp.alpha) {
87
+ return false;
88
+ }
89
+ }
90
+ if (this.useSystemDimensions === true) {
91
+ if (incomingQuad.width !== currentRenderOp.width ||
92
+ incomingQuad.height !== currentRenderOp.height) {
93
+ return false;
94
+ }
95
+ }
96
+ let shaderPropsA = undefined;
97
+ let shaderPropsB = undefined;
98
+ if (incomingQuad.shader !== null) {
99
+ shaderPropsA = incomingQuad.shader.resolvedProps;
100
+ }
101
+ if (currentRenderOp.shader !== null) {
102
+ shaderPropsB = currentRenderOp.shader.resolvedProps;
103
+ }
104
+ if ((shaderPropsA === undefined && shaderPropsB !== undefined) ||
105
+ (shaderPropsA !== undefined && shaderPropsB === undefined)) {
106
+ return false;
107
+ }
108
+ if (shaderPropsA !== undefined && shaderPropsB !== undefined) {
109
+ for (const key in shaderPropsA) {
110
+ if (shaderPropsA[key] !== shaderPropsB[key]) {
111
+ return false;
112
+ }
113
+ }
114
+ }
115
+ return true;
116
+ }
117
+ bindRenderOp(renderOp) {
118
+ this.bindBufferCollection(renderOp.buffers);
119
+ this.bindTextures(renderOp.textures);
120
+ const { parentHasRenderTexture } = renderOp;
121
+ // Skip if the parent and current operation both have render textures
122
+ if (renderOp.rtt === true && parentHasRenderTexture === true) {
123
+ return;
124
+ }
125
+ // Bind render texture framebuffer dimensions as resolution
126
+ // if the parent has a render texture
127
+ if (parentHasRenderTexture === true) {
128
+ const { width, height } = renderOp.framebufferDimensions;
129
+ // Force pixel ratio to 1.0 for render textures since they are always 1:1
130
+ // the final render texture will be rendered to the screen with the correct pixel ratio
131
+ this.glw.uniform1f('u_pixelRatio', 1.0);
132
+ // Set resolution to the framebuffer dimensions
133
+ this.glw.uniform2f('u_resolution', width, height);
134
+ }
135
+ else {
136
+ this.glw.uniform1f('u_pixelRatio', renderOp.renderer.stage.pixelRatio);
137
+ this.glw.uniform2f('u_resolution', this.glw.canvas.width, this.glw.canvas.height);
138
+ }
139
+ // if (this.useSystemAlpha) {
140
+ this.glw.uniform1f('u_alpha', renderOp.alpha);
141
+ // }
142
+ // if (this.useSystemDimensions) {
143
+ this.glw.uniform2f('u_dimensions', renderOp.width, renderOp.height);
144
+ // }
145
+ /**temporary fix to make sdf texts work */
146
+ if (renderOp.sdfShaderProps !== undefined) {
147
+ renderOp.shader.shaderType.onSdfBind?.call(this.glw, renderOp.sdfShaderProps);
148
+ return;
149
+ }
150
+ if (renderOp.shader.props !== undefined) {
151
+ /**
152
+ * loop over all precalculated uniform types
153
+ */
154
+ for (const key in renderOp.shader.uniforms.single) {
155
+ const { method, value } = renderOp.shader.uniforms.single[key];
156
+ this.glw[method](key, value);
157
+ }
158
+ for (const key in renderOp.shader.uniforms.vec2) {
159
+ const { method, value } = renderOp.shader.uniforms.vec2[key];
160
+ this.glw[method](key, value[0], value[1]);
161
+ }
162
+ for (const key in renderOp.shader.uniforms.vec3) {
163
+ const { method, value } = renderOp.shader.uniforms.vec3[key];
164
+ this.glw[method](key, value[0], value[1], value[2]);
165
+ }
166
+ for (const key in renderOp.shader.uniforms.vec4) {
167
+ const { method, value } = renderOp.shader.uniforms.vec4[key];
168
+ this.glw[method](key, value[0], value[1], value[2], value[3]);
169
+ }
170
+ }
171
+ }
172
+ bindBufferCollection(buffer) {
173
+ const { glw } = this;
174
+ const attribs = Object.keys(this.attributeLocations);
175
+ const attribLen = attribs.length;
176
+ for (let i = 0; i < attribLen; i++) {
177
+ const name = attribs[i];
178
+ const resolvedBuffer = buffer.getBuffer(name);
179
+ const resolvedInfo = buffer.getAttributeInfo(name);
180
+ if (resolvedBuffer === undefined || resolvedInfo === undefined) {
181
+ continue;
182
+ }
183
+ glw.enableVertexAttribArray(i);
184
+ glw.vertexAttribPointer(resolvedBuffer, i, resolvedInfo.size, resolvedInfo.type, resolvedInfo.normalized, resolvedInfo.stride, resolvedInfo.offset);
185
+ }
186
+ }
187
+ bindTextures(textures) {
188
+ this.glw.activeTexture(0);
189
+ this.glw.bindTexture(textures[0].ctxTexture);
190
+ }
191
+ attach() {
192
+ this.glw.useProgram(this.program);
193
+ if (this.glw.isWebGl2() && this.vao) {
194
+ this.glw.bindVertexArray(this.vao);
195
+ }
196
+ }
197
+ detach() {
198
+ this.disableAttributes();
199
+ }
200
+ }
201
+ //# sourceMappingURL=WebGlShaderProgram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGlShaderProgram.js","sourceRoot":"","sources":["../../../../../src/core/renderers/webgl/WebGlShaderProgram.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import type { WebGlContextWrapper } from '../../../lib/WebGlContextWrapper.js';
2
- import type { WebGlCoreRenderer } from '../WebGlCoreRenderer.js';
3
2
  export interface AttributeInfo {
4
3
  name: string;
5
4
  size: number;
@@ -12,10 +11,27 @@ export interface UniformInfo {
12
11
  name: string;
13
12
  uniform: keyof UniformMethodMap;
14
13
  }
14
+ export type SingleValue = number | Float32Array | Int32Array;
15
+ export type Vec2 = [number, number];
16
+ export type Vec3 = [number, number, number];
17
+ export type Vec4 = [number, number, number, number];
18
+ export type UniformValue = SingleValue | Vec2 | Vec3 | Vec4;
19
+ export interface UniformCollection {
20
+ single: Record<string, Uniform<SingleValue>>;
21
+ vec2: Record<string, Uniform<Vec2>>;
22
+ vec3: Record<string, Uniform<Vec3>>;
23
+ vec4: Record<string, Uniform<Vec4>>;
24
+ }
25
+ export interface Uniform<T = UniformValue> {
26
+ method: string;
27
+ value: T;
28
+ }
29
+ export interface SupportedSetUniforms {
30
+ uniform2fv: Float32Array;
31
+ uniform2iv: Int32Array;
32
+ uniform3fv: 'uniform2iv' | 'uniform3fv' | 'uniform3iv' | 'uniform4fv' | 'uniform4iv' | 'uniformMatrix2fv' | 'uniformMatrix3fv' | 'uniformMatrix4fv' | 'uniform1f' | 'uniform1fv' | 'uniform1i' | 'uniform1iv' | 'uniform3fv' | 'uniform2f' | 'uniform2i' | 'uniform3f' | 'uniform3i' | 'uniform4f' | 'uniform4i';
33
+ }
15
34
  export interface ShaderOptions {
16
- renderer: WebGlCoreRenderer;
17
- attributes: string[];
18
- uniforms: UniformInfo[];
19
35
  shaderSources?: ShaderProgramSources;
20
36
  supportsIndexedTextures?: boolean;
21
37
  webgl1Extensions?: string[];
@@ -25,6 +41,10 @@ type IsUniformMethod<MethodName, MethodType> = MethodName extends `uniform${stri
25
41
  export type UniformMethodMap = {
26
42
  [Key in keyof WebGLRenderingContext as IsUniformMethod<Key, WebGLRenderingContext[Key]> extends true ? Key : never]: WebGLRenderingContext[Key] extends (location: WebGLUniformLocation | null, ...args: infer T) => void ? T : never;
27
43
  };
44
+ export type UniformSet1Param = Omit<UniformMethodMap, 'uniform2f' | 'uniform2i' | 'uniform3f' | 'uniform3i' | 'uniform4f' | 'uniform4i'>;
45
+ export type UniformSet2Params = Pick<UniformMethodMap, 'uniform2f' | 'uniform2i'>;
46
+ export type UniformSet3Params = Pick<UniformMethodMap, 'uniform3f' | 'uniform3i'>;
47
+ export type UniformSet4Params = Pick<UniformMethodMap, 'uniform4f' | 'uniform4i'>;
28
48
  type TupleToObject<T extends any[]> = Omit<T, keyof any[]>;
29
49
  export type UniformTupleToMap<Uniforms extends [...UniformInfo[]]> = {
30
50
  [Key in keyof TupleToObject<Uniforms> as TupleToObject<Uniforms>[Key] extends {
@@ -33,7 +53,7 @@ export type UniformTupleToMap<Uniforms extends [...UniformInfo[]]> = {
33
53
  uniform: infer T extends keyof UniformMethodMap;
34
54
  } ? UniformMethodMap[T] : never;
35
55
  };
36
- type ShaderSource = string | ((textureUnits: number) => string);
56
+ export type ShaderSource = string | ((textureUnits: number) => string);
37
57
  export interface ShaderProgramSources {
38
58
  vertex: ShaderSource;
39
59
  fragment: ShaderSource;
@@ -44,4 +64,11 @@ export interface ShaderProgramSources {
44
64
  }
45
65
  export declare function createShader(glw: WebGlContextWrapper, type: number, source: string): WebGLShader | undefined;
46
66
  export declare function createProgram(glw: WebGlContextWrapper, vertexShader: WebGLShader, fragmentShader: WebGLShader): WebGLProgram | undefined;
67
+ export declare const DefaultVertexSource = "\n # ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n # else\n precision mediump float;\n # endif\n\n attribute vec2 a_position;\n attribute vec2 a_textureCoords;\n attribute vec4 a_color;\n attribute vec2 a_nodeCoords;\n\n uniform vec2 u_resolution;\n uniform float u_pixelRatio;\n uniform vec2 u_dimensions;\n uniform vec4 u_shadow;\n\n varying vec4 v_color;\n varying vec2 v_textureCoords;\n\n void main() {\n vec2 normalized = a_position * u_pixelRatio;\n vec2 screenSpace = vec2(2.0 / u_resolution.x, -2.0 / u_resolution.y);\n\n vec2 outerEdge = clamp(a_textureCoords * 2.0 - vec2(1.0), -1.0, 1.0);\n vec2 shadowEdge = outerEdge;\n vec2 vertexPos = normalized + outerEdge + shadowEdge;\n v_color = a_color;\n v_textureCoords = a_textureCoords;\n\n gl_Position = vec4(vertexPos.x * screenSpace.x - 1.0, -sign(screenSpace.y) * (vertexPos.y * -abs(screenSpace.y)) + 1.0, 0.0, 1.0);\n }\n";
68
+ /**
69
+ * generate fragment source for
70
+ * @param stops
71
+ * @returns
72
+ */
73
+ export declare function genGradientColors(stops: number): string;
47
74
  export {};
@@ -48,4 +48,54 @@ export function createProgram(glw, vertexShader, fragmentShader) {
48
48
  glw.deleteProgram(program);
49
49
  return undefined;
50
50
  }
51
+ export const DefaultVertexSource = `
52
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
53
+ precision highp float;
54
+ # else
55
+ precision mediump float;
56
+ # endif
57
+
58
+ attribute vec2 a_position;
59
+ attribute vec2 a_textureCoords;
60
+ attribute vec4 a_color;
61
+ attribute vec2 a_nodeCoords;
62
+
63
+ uniform vec2 u_resolution;
64
+ uniform float u_pixelRatio;
65
+ uniform vec2 u_dimensions;
66
+ uniform vec4 u_shadow;
67
+
68
+ varying vec4 v_color;
69
+ varying vec2 v_textureCoords;
70
+
71
+ void main() {
72
+ vec2 normalized = a_position * u_pixelRatio;
73
+ vec2 screenSpace = vec2(2.0 / u_resolution.x, -2.0 / u_resolution.y);
74
+
75
+ vec2 outerEdge = clamp(a_textureCoords * 2.0 - vec2(1.0), -1.0, 1.0);
76
+ vec2 shadowEdge = outerEdge;
77
+ vec2 vertexPos = normalized + outerEdge + shadowEdge;
78
+ v_color = a_color;
79
+ v_textureCoords = a_textureCoords;
80
+
81
+ gl_Position = vec4(vertexPos.x * screenSpace.x - 1.0, -sign(screenSpace.y) * (vertexPos.y * -abs(screenSpace.y)) + 1.0, 0.0, 1.0);
82
+ }
83
+ `;
84
+ /**
85
+ * generate fragment source for
86
+ * @param stops
87
+ * @returns
88
+ */
89
+ export function genGradientColors(stops) {
90
+ let result = `
91
+ float stopCalc = (dist - u_stops[0]) / (u_stops[1] - u_stops[0]);
92
+ vec4 colorOut = mix(u_colors[0], u_colors[1], stopCalc);
93
+ `;
94
+ if (stops > 2) {
95
+ for (let i = 2; i < stops; i++) {
96
+ result += `colorOut = mix(colorOut, u_colors[${i}], clamp((dist - u_stops[${i - 1}]) / (u_stops[${i}] - u_stops[${i - 1}]), 0.0, 1.0));`;
97
+ }
98
+ }
99
+ return result;
100
+ }
51
101
  //# sourceMappingURL=ShaderUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShaderUtils.js","sourceRoot":"","sources":["../../../../../../src/core/renderers/webgl/internal/ShaderUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA4EH,kBAAkB;AAElB,MAAM,UAAU,YAAY,CAC1B,GAAwB,EACxB,IAAY,EACZ,MAAc;IAEd,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,gCACE,IAAI,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBACjD,IAAI,OAAO,CAAC,CAAC,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACvD,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACrE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAwB,EACxB,YAAyB,EACzB,cAA2B;IAE3B,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACxC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC1C,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACpE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"ShaderUtils.js","sourceRoot":"","sources":["../../../../../../src/core/renderers/webgl/internal/ShaderUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAgKH,kBAAkB;AAElB,MAAM,UAAU,YAAY,CAC1B,GAAwB,EACxB,IAAY,EACZ,MAAc;IAEd,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,gCACE,IAAI,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBACjD,IAAI,OAAO,CAAC,CAAC,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACvD,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACrE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAwB,EACxB,YAAyB,EACzB,cAA2B;IAE3B,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACxC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC1C,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACpE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgClC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,MAAM,GAAG;;;GAGZ,CAAC;IACF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,qCAAqC,CAAC,4BAC9C,CAAC,GAAG,CACN,iBAAiB,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,59 @@
1
+ import type { CoreNode } from '../CoreNode.js';
2
+ export type NodeTypes = Node;
3
+ export declare class Scene {
4
+ /**
5
+ * Root node of the scene
6
+ *
7
+ * @type {Node}
8
+ * @memberof Scene
9
+ */
10
+ root: CoreNode;
11
+ constructor(root: CoreNode);
12
+ /**
13
+ * Get all nodes of a specific type
14
+ * @param type
15
+ * @returns
16
+ */
17
+ getNodeByType(type: string): Node[];
18
+ /**
19
+ * Find a node by id
20
+ * @param id
21
+ * @returns
22
+ */
23
+ getNodeById(id: string): Node | null;
24
+ /**
25
+ * Create a new node
26
+ * @param parent
27
+ * @returns
28
+ */
29
+ /**
30
+ * create a new RectangleNode
31
+ * @param w
32
+ * @param h
33
+ * @param parent
34
+ * @returns
35
+ */
36
+ /**
37
+ * Create a new CircleNode
38
+ * @param r
39
+ * @param parent
40
+ * @returns
41
+ */
42
+ /**
43
+ * Create a new TextNode
44
+ * @param text
45
+ * @param parent
46
+ * @returns
47
+ */
48
+ /**
49
+ * Setup and attaching Node
50
+ * @param node
51
+ * @param parent
52
+ * @returns
53
+ */
54
+ /**
55
+ * Update the scene
56
+ * @param delta
57
+ */
58
+ update(delta: number): void;
59
+ }
@@ -0,0 +1,106 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ export class Scene {
20
+ /**
21
+ * Root node of the scene
22
+ *
23
+ * @type {Node}
24
+ * @memberof Scene
25
+ */
26
+ root;
27
+ constructor(root) {
28
+ this.root = root;
29
+ }
30
+ /**
31
+ * Get all nodes of a specific type
32
+ * @param type
33
+ * @returns
34
+ */
35
+ getNodeByType(type) {
36
+ return [];
37
+ }
38
+ /**
39
+ * Find a node by id
40
+ * @param id
41
+ * @returns
42
+ */
43
+ getNodeById(id) {
44
+ return null;
45
+ }
46
+ /**
47
+ * Create a new node
48
+ * @param parent
49
+ * @returns
50
+ */
51
+ // public createNode(settings: Partial<INodeWritableProps> = {}): NodeTypes {
52
+ // return createNode(settings);
53
+ // }
54
+ /**
55
+ * create a new RectangleNode
56
+ * @param w
57
+ * @param h
58
+ * @param parent
59
+ * @returns
60
+ */
61
+ // public rectangle(w: number, h: number, parent: NodeTypes | null = null) {
62
+ // // TODO: Fix this
63
+ // // return this.create(new RectangleNode(w, h), parent);
64
+ // }
65
+ /**
66
+ * Create a new CircleNode
67
+ * @param r
68
+ * @param parent
69
+ * @returns
70
+ */
71
+ // public circle(r: number, parent: NodeTypes | null = null) {
72
+ // // TODO: Fix this
73
+ // // return this.create(new CircleNode(r), parent);
74
+ // }
75
+ /**
76
+ * Create a new TextNode
77
+ * @param text
78
+ * @param parent
79
+ * @returns
80
+ */
81
+ // public text(text = '', parent: NodeTypes | null = null) {
82
+ // // TODO: Fix this
83
+ // // return this.create(new TextNode(text), parent);
84
+ // }
85
+ /**
86
+ * Setup and attaching Node
87
+ * @param node
88
+ * @param parent
89
+ * @returns
90
+ */
91
+ // private create(node: NodeTypes, parent: NodeTypes | null = null): NodeTypes {
92
+ // if (!parent) {
93
+ // parent = this.root;
94
+ // }
95
+ // node.parent = parent;
96
+ // return node;
97
+ // }
98
+ /**
99
+ * Update the scene
100
+ * @param delta
101
+ */
102
+ update(delta) {
103
+ this.root.update(delta);
104
+ }
105
+ }
106
+ //# sourceMappingURL=Scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scene.js","sourceRoot":"","sources":["../../../../src/core/scene/Scene.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,MAAM,OAAO,KAAK;IAChB;;;;;OAKG;IACI,IAAI,CAAW;IAEtB,YAAY,IAAc;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,IAAY;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,6EAA6E;IAC7E,iCAAiC;IACjC,IAAI;IAEJ;;;;;;OAMG;IACH,4EAA4E;IAC5E,sBAAsB;IACtB,4DAA4D;IAC5D,IAAI;IAEJ;;;;;OAKG;IACH,8DAA8D;IAC9D,sBAAsB;IACtB,sDAAsD;IACtD,IAAI;IAEJ;;;;;OAKG;IACH,4DAA4D;IAC5D,sBAAsB;IACtB,uDAAuD;IACvD,IAAI;IAEJ;;;;;OAKG;IACH,gFAAgF;IAChF,mBAAmB;IACnB,0BAA0B;IAC1B,MAAM;IAEN,0BAA0B;IAC1B,iBAAiB;IACjB,IAAI;IAEJ;;;OAGG;IACI,MAAM,CAAC,KAAa;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF"}
@@ -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>;