@lightningjs/renderer 3.0.0-beta5 → 3.0.0-beta7

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 (370) 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/src/core/CoreNode.d.ts +15 -16
  6. package/dist/src/core/CoreNode.js +41 -37
  7. package/dist/src/core/CoreNode.js.map +1 -1
  8. package/dist/src/core/CoreTextNode.js +0 -1
  9. package/dist/src/core/CoreTextNode.js.map +1 -1
  10. package/dist/src/core/CoreTextureManager.js +10 -5
  11. package/dist/src/core/CoreTextureManager.js.map +1 -1
  12. package/dist/src/core/Stage.d.ts +16 -0
  13. package/dist/src/core/Stage.js +39 -3
  14. package/dist/src/core/Stage.js.map +1 -1
  15. package/dist/src/core/TextureMemoryManager.js +3 -4
  16. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  17. package/dist/src/core/lib/ImageWorker.js +1 -1
  18. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  19. package/dist/src/core/lib/utils.d.ts +1 -0
  20. package/dist/src/core/lib/utils.js +3 -0
  21. package/dist/src/core/lib/utils.js.map +1 -1
  22. package/dist/src/core/renderers/CoreRenderer.d.ts +1 -1
  23. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +1 -1
  24. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
  25. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +1 -2
  26. package/dist/src/core/renderers/webgl/WebGlRenderer.js +1 -3
  27. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  28. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +35 -35
  29. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +45 -45
  30. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  31. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  32. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  33. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
  34. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  35. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
  36. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  37. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  38. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  39. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  40. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  41. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  42. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
  43. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
  44. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
  45. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  46. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  47. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +8 -2
  48. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  49. package/dist/src/core/shaders/webgl/Border.js +86 -63
  50. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  51. package/dist/src/core/shaders/webgl/Default.js +47 -47
  52. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  53. package/dist/src/core/shaders/webgl/HolePunch.js +32 -32
  54. package/dist/src/core/shaders/webgl/LinearGradient.js +36 -36
  55. package/dist/src/core/shaders/webgl/RadialGradient.js +33 -33
  56. package/dist/src/core/shaders/webgl/Rounded.js +71 -71
  57. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +104 -72
  58. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  59. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +123 -86
  60. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  61. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
  62. package/dist/src/core/shaders/webgl/SdfShader.js +62 -62
  63. package/dist/src/core/shaders/webgl/Shadow.js +83 -83
  64. package/dist/src/core/temp.js +77 -0
  65. package/dist/src/core/temp.js.map +1 -0
  66. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +3 -1
  67. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  68. package/dist/src/core/textures/ImageTexture.js +5 -0
  69. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  70. package/dist/src/main-api/Inspector.js +1 -1
  71. package/dist/src/main-api/Inspector.js.map +1 -1
  72. package/dist/src/main-api/Renderer.js +3 -4
  73. package/dist/src/main-api/Renderer.js.map +1 -1
  74. package/dist/src/utils.d.ts +1 -6
  75. package/dist/src/utils.js +2 -9
  76. package/dist/src/utils.js.map +1 -1
  77. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  78. package/exports/canvas-shaders.ts +28 -28
  79. package/exports/canvas.ts +45 -45
  80. package/exports/index.ts +90 -90
  81. package/exports/inspector.ts +24 -24
  82. package/exports/utils.ts +44 -44
  83. package/exports/webgl-shaders.ts +28 -28
  84. package/exports/webgl.ts +50 -50
  85. package/package.json +1 -3
  86. package/src/common/CommonTypes.ts +146 -146
  87. package/src/common/EventEmitter.ts +77 -77
  88. package/src/common/IAnimationController.ts +92 -92
  89. package/src/common/IEventEmitter.ts +28 -28
  90. package/src/core/CoreNode.test.ts +202 -203
  91. package/src/core/CoreNode.ts +2495 -2494
  92. package/src/core/CoreShaderManager.ts +188 -188
  93. package/src/core/CoreTextNode.ts +448 -449
  94. package/src/core/CoreTextureManager.ts +607 -601
  95. package/src/core/Stage.ts +797 -754
  96. package/src/core/TextureMemoryManager.ts +394 -395
  97. package/src/core/animations/AnimationManager.ts +38 -38
  98. package/src/core/animations/CoreAnimation.ts +284 -284
  99. package/src/core/animations/CoreAnimationController.ts +157 -157
  100. package/src/core/lib/ContextSpy.ts +41 -41
  101. package/src/core/lib/ImageWorker.ts +286 -280
  102. package/src/core/lib/Matrix3d.ts +244 -244
  103. package/src/core/lib/RenderCoords.ts +71 -71
  104. package/src/core/lib/WebGlContextWrapper.ts +1374 -1374
  105. package/src/core/lib/textureCompression.ts +152 -152
  106. package/src/core/lib/textureSvg.ts +78 -78
  107. package/src/core/lib/utils.ts +390 -386
  108. package/src/core/lib/validateImageBitmap.ts +87 -87
  109. package/src/core/platforms/Platform.ts +77 -77
  110. package/src/core/platforms/web/WebPlatform.ts +84 -84
  111. package/src/core/renderers/CoreContextTexture.ts +43 -43
  112. package/src/core/renderers/CoreRenderOp.ts +22 -22
  113. package/src/core/renderers/CoreRenderer.ts +109 -109
  114. package/src/core/renderers/CoreShaderNode.ts +165 -165
  115. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  116. package/src/core/renderers/canvas/CanvasRenderer.ts +298 -298
  117. package/src/core/renderers/canvas/CanvasShaderNode.ts +99 -99
  118. package/src/core/renderers/canvas/CanvasTexture.ts +156 -156
  119. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +220 -220
  120. package/src/core/renderers/canvas/internal/ColorUtils.ts +85 -85
  121. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +86 -86
  122. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -50
  123. package/src/core/renderers/webgl/WebGlCtxTexture.ts +301 -301
  124. package/src/core/renderers/webgl/WebGlRenderOp.ts +161 -161
  125. package/src/core/renderers/webgl/WebGlRenderer.ts +748 -750
  126. package/src/core/renderers/webgl/WebGlShaderNode.ts +437 -437
  127. package/src/core/renderers/webgl/WebGlShaderProgram.ts +318 -318
  128. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  129. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  130. package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -281
  131. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  132. package/src/core/shaders/canvas/Border.ts +78 -78
  133. package/src/core/shaders/canvas/HolePunch.ts +62 -62
  134. package/src/core/shaders/canvas/LinearGradient.ts +69 -69
  135. package/src/core/shaders/canvas/RadialGradient.ts +113 -113
  136. package/src/core/shaders/canvas/Rounded.ts +55 -55
  137. package/src/core/shaders/canvas/RoundedWithBorder.ts +72 -68
  138. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -88
  139. package/src/core/shaders/canvas/RoundedWithShadow.ts +69 -69
  140. package/src/core/shaders/canvas/Shadow.ts +52 -52
  141. package/src/core/shaders/canvas/utils/render.ts +151 -151
  142. package/src/core/shaders/templates/BorderTemplate.ts +115 -115
  143. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  144. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  145. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -81
  146. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  147. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  148. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  149. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  150. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  151. package/src/core/shaders/templates/shaderUtils.ts +47 -47
  152. package/src/core/shaders/webgl/Border.ts +116 -96
  153. package/src/core/shaders/webgl/Default.ts +89 -89
  154. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  155. package/src/core/shaders/webgl/HolePunch.ts +78 -78
  156. package/src/core/shaders/webgl/LinearGradient.ts +81 -81
  157. package/src/core/shaders/webgl/RadialGradient.ts +84 -84
  158. package/src/core/shaders/webgl/Rounded.ts +117 -117
  159. package/src/core/shaders/webgl/RoundedWithBorder.ts +144 -114
  160. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +166 -133
  161. package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -98
  162. package/src/core/shaders/webgl/SdfShader.ts +134 -134
  163. package/src/core/shaders/webgl/Shadow.ts +115 -115
  164. package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
  165. package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
  166. package/src/core/text-rendering/TrFontManager.ts +183 -183
  167. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
  168. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  169. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  170. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
  171. package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
  172. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
  173. package/src/core/text-rendering/font-face-types/utils.ts +39 -39
  174. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +514 -514
  175. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +863 -863
  176. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +849 -846
  177. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  178. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  179. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  180. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  181. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
  182. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  183. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  184. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +497 -497
  185. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  186. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
  187. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  188. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  189. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  190. package/src/core/text-rendering/renderers/TextRenderer.ts +567 -567
  191. package/src/core/textures/ColorTexture.ts +102 -102
  192. package/src/core/textures/ImageTexture.ts +417 -410
  193. package/src/core/textures/NoiseTexture.ts +104 -104
  194. package/src/core/textures/RenderTexture.ts +85 -85
  195. package/src/core/textures/SubTexture.ts +205 -205
  196. package/src/core/textures/Texture.ts +358 -358
  197. package/src/core/utils.ts +227 -227
  198. package/src/env.d.ts +7 -7
  199. package/src/main-api/INode.ts +100 -100
  200. package/src/main-api/Inspector.ts +522 -522
  201. package/src/main-api/Renderer.ts +673 -675
  202. package/src/main-api/utils.ts +45 -45
  203. package/src/utils.ts +267 -267
  204. package/dist/exports/core-api.d.ts +0 -74
  205. package/dist/exports/core-api.js +0 -96
  206. package/dist/exports/core-api.js.map +0 -1
  207. package/dist/exports/main-api.d.ts +0 -30
  208. package/dist/exports/main-api.js +0 -45
  209. package/dist/exports/main-api.js.map +0 -1
  210. package/dist/src/core/CoreExtension.d.ts +0 -12
  211. package/dist/src/core/CoreExtension.js +0 -29
  212. package/dist/src/core/CoreExtension.js.map +0 -1
  213. package/dist/src/core/CoreStuff.js +0 -138
  214. package/dist/src/core/CoreStuff.js.map +0 -1
  215. package/dist/src/core/CoreTexturizer.d.ts +0 -14
  216. package/dist/src/core/CoreTexturizer.js +0 -47
  217. package/dist/src/core/CoreTexturizer.js.map +0 -1
  218. package/dist/src/core/LngNode.d.ts +0 -736
  219. package/dist/src/core/LngNode.js +0 -1174
  220. package/dist/src/core/LngNode.js.map +0 -1
  221. package/dist/src/core/Matrix2DContext.d.ts +0 -15
  222. package/dist/src/core/Matrix2DContext.js +0 -45
  223. package/dist/src/core/Matrix2DContext.js.map +0 -1
  224. package/dist/src/core/ShaderNode.d.ts +0 -10
  225. package/dist/src/core/ShaderNode.js +0 -30
  226. package/dist/src/core/ShaderNode.js.map +0 -1
  227. package/dist/src/core/TextNode.d.ts +0 -103
  228. package/dist/src/core/TextNode.js +0 -331
  229. package/dist/src/core/TextNode.js.map +0 -1
  230. package/dist/src/core/lib/Coords.d.ts +0 -14
  231. package/dist/src/core/lib/Coords.js +0 -55
  232. package/dist/src/core/lib/Coords.js.map +0 -1
  233. package/dist/src/core/lib/glm/common.d.ts +0 -162
  234. package/dist/src/core/lib/glm/common.js +0 -81
  235. package/dist/src/core/lib/glm/common.js.map +0 -1
  236. package/dist/src/core/lib/glm/index.d.ts +0 -11
  237. package/dist/src/core/lib/glm/index.js +0 -30
  238. package/dist/src/core/lib/glm/index.js.map +0 -1
  239. package/dist/src/core/lib/glm/mat2.d.ts +0 -219
  240. package/dist/src/core/lib/glm/mat2.js +0 -396
  241. package/dist/src/core/lib/glm/mat2.js.map +0 -1
  242. package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
  243. package/dist/src/core/lib/glm/mat2d.js +0 -442
  244. package/dist/src/core/lib/glm/mat2d.js.map +0 -1
  245. package/dist/src/core/lib/glm/mat3.d.ts +0 -283
  246. package/dist/src/core/lib/glm/mat3.js +0 -680
  247. package/dist/src/core/lib/glm/mat3.js.map +0 -1
  248. package/dist/src/core/lib/glm/mat4.d.ts +0 -550
  249. package/dist/src/core/lib/glm/mat4.js +0 -1802
  250. package/dist/src/core/lib/glm/mat4.js.map +0 -1
  251. package/dist/src/core/lib/glm/quat.d.ts +0 -363
  252. package/dist/src/core/lib/glm/quat.js +0 -693
  253. package/dist/src/core/lib/glm/quat.js.map +0 -1
  254. package/dist/src/core/lib/glm/quat2.d.ts +0 -356
  255. package/dist/src/core/lib/glm/quat2.js +0 -754
  256. package/dist/src/core/lib/glm/quat2.js.map +0 -1
  257. package/dist/src/core/lib/glm/vec2.d.ts +0 -365
  258. package/dist/src/core/lib/glm/vec2.js +0 -569
  259. package/dist/src/core/lib/glm/vec2.js.map +0 -1
  260. package/dist/src/core/lib/glm/vec3.d.ts +0 -406
  261. package/dist/src/core/lib/glm/vec3.js +0 -720
  262. package/dist/src/core/lib/glm/vec3.js.map +0 -1
  263. package/dist/src/core/lib/glm/vec4.d.ts +0 -330
  264. package/dist/src/core/lib/glm/vec4.js +0 -608
  265. package/dist/src/core/lib/glm/vec4.js.map +0 -1
  266. package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
  267. package/dist/src/core/renderers/CoreShaderManager.js +0 -33
  268. package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
  269. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
  270. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
  271. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
  272. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
  273. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
  274. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +0 -1
  275. package/dist/src/core/scene/Scene.d.ts +0 -59
  276. package/dist/src/core/scene/Scene.js +0 -106
  277. package/dist/src/core/scene/Scene.js.map +0 -1
  278. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  279. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  280. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  281. package/dist/src/main-api/ICoreDriver.d.ts +0 -27
  282. package/dist/src/main-api/ICoreDriver.js +0 -20
  283. package/dist/src/main-api/ICoreDriver.js.map +0 -1
  284. package/dist/src/main-api/IRenderDriver.d.ts +0 -20
  285. package/dist/src/main-api/IRenderDriver.js +0 -20
  286. package/dist/src/main-api/IRenderDriver.js.map +0 -1
  287. package/dist/src/main-api/IShaderController.d.ts +0 -14
  288. package/dist/src/main-api/IShaderController.js +0 -30
  289. package/dist/src/main-api/IShaderController.js.map +0 -1
  290. package/dist/src/main-api/IShaderNode.d.ts +0 -17
  291. package/dist/src/main-api/IShaderNode.js +0 -19
  292. package/dist/src/main-api/IShaderNode.js.map +0 -1
  293. package/dist/src/main-api/RendererMain.d.ts +0 -375
  294. package/dist/src/main-api/RendererMain.js +0 -365
  295. package/dist/src/main-api/RendererMain.js.map +0 -1
  296. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
  297. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
  298. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
  299. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
  300. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
  301. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
  302. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
  303. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +0 -28
  304. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
  305. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -24
  306. package/dist/src/render-drivers/main/MainCoreDriver.js +0 -118
  307. package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
  308. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -99
  309. package/dist/src/render-drivers/main/MainOnlyNode.js +0 -396
  310. package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
  311. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
  312. package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
  313. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
  314. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
  315. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
  316. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
  317. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
  318. package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -205
  319. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
  320. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
  321. package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
  322. package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
  323. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -90
  324. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -281
  325. package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
  326. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -39
  327. package/dist/src/render-drivers/threadx/SharedNode.js +0 -60
  328. package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
  329. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
  330. package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -201
  331. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
  332. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -28
  333. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -234
  334. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
  335. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -20
  336. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -84
  337. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
  338. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -44
  339. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -154
  340. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
  341. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
  342. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
  343. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
  344. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
  345. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
  346. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
  347. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
  348. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
  349. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
  350. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
  351. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
  352. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
  353. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
  354. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
  355. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
  356. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
  357. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -177
  358. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
  359. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
  360. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -108
  361. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
  362. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
  363. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -145
  364. package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
  365. package/dist/src/render-drivers/utils.d.ts +0 -12
  366. package/dist/src/render-drivers/utils.js +0 -69
  367. package/dist/src/render-drivers/utils.js.map +0 -1
  368. package/scripts/please-use-pnpm.js +0 -13
  369. package/src/core/platform.ts +0 -64
  370. /package/dist/src/core/{CoreStuff.d.ts → temp.d.ts} +0 -0
@@ -1,134 +1,134 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import { getNormalizedRgbaComponents } from '../../lib/utils.js';
20
- import type { WebGlShaderType } from '../../renderers/webgl/WebGlShaderNode.js';
21
-
22
- const IDENTITY_MATRIX_3x3 = new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);
23
- /**
24
- * Properties of the {@link SdfShader}
25
- */
26
- export interface SdfShaderProps {
27
- transform: Float32Array;
28
- scrollY: number;
29
- /**
30
- * Color in RGBA format
31
- *
32
- * @remarks
33
- * Color channels must NOT be premultiplied by alpha for best blending results.
34
- */
35
- color: number;
36
- size: number;
37
- distanceRange: number;
38
- debug: boolean;
39
- }
40
- /**
41
- * SdfShader supports multi-channel and single-channel signed distance field textures.
42
- *
43
- * @remarks
44
- * This Shader is used by the {@link SdfTextRenderer}. Do not use thie Shader
45
- * directly. Instead create a Text Node and assign a SDF font family to it.
46
- *
47
- * @internalRemarks
48
- * The only thing this shader does to support multi-channel SDFs is to
49
- * add a median function to the fragment shader. If this one function call
50
- * ends up being a performance bottleneck we can always look at ways to
51
- * remove it.
52
- */
53
- export const Sdf: WebGlShaderType<SdfShaderProps> = {
54
- props: {
55
- transform: IDENTITY_MATRIX_3x3,
56
- scrollY: 0,
57
- color: 0xffffffff,
58
- size: 16,
59
- distanceRange: 1.0,
60
- debug: false,
61
- },
62
- onSdfBind(props) {
63
- this.uniformMatrix3fv('u_transform', props.transform);
64
- this.uniform1f('u_scrollY', props.scrollY);
65
- this.uniform4fa('u_color', getNormalizedRgbaComponents(props.color));
66
- this.uniform1f('u_size', props.size);
67
- this.uniform1f('u_distanceRange', props.distanceRange);
68
- this.uniform1i('u_debug', props.debug ? 1 : 0);
69
- },
70
- vertex: `
71
- # ifdef GL_FRAGMENT_PRECISION_HIGH
72
- precision highp float;
73
- # else
74
- precision mediump float;
75
- # endif
76
- // an attribute is an input (in) to a vertex shader.
77
- // It will receive data from a buffer
78
- attribute vec2 a_position;
79
- attribute vec2 a_textureCoords;
80
-
81
- uniform vec2 u_resolution;
82
- uniform mat3 u_transform;
83
- uniform float u_scrollY;
84
- uniform float u_pixelRatio;
85
- uniform float u_size;
86
-
87
- varying vec2 v_texcoord;
88
-
89
- void main() {
90
- vec2 scrolledPosition = a_position * u_size - vec2(0, u_scrollY);
91
- vec2 transformedPosition = (u_transform * vec3(scrolledPosition, 1)).xy;
92
-
93
- // Calculate screen space with pixel ratio
94
- vec2 screenSpace = (transformedPosition * u_pixelRatio / u_resolution * 2.0 - 1.0) * vec2(1, -1);
95
-
96
- gl_Position = vec4(screenSpace, 0.0, 1.0);
97
- v_texcoord = a_textureCoords;
98
-
99
- }
100
- `,
101
- fragment: `
102
- # ifdef GL_FRAGMENT_PRECISION_HIGH
103
- precision highp float;
104
- # else
105
- precision mediump float;
106
- # endif
107
- uniform vec4 u_color;
108
- uniform sampler2D u_texture;
109
- uniform float u_distanceRange;
110
- uniform float u_pixelRatio;
111
- uniform int u_debug;
112
-
113
- varying vec2 v_texcoord;
114
-
115
- float median(float r, float g, float b) {
116
- return max(min(r, g), min(max(r, g), b));
117
- }
118
-
119
- void main() {
120
- vec3 sample = texture2D(u_texture, v_texcoord).rgb;
121
- if (u_debug == 1) {
122
- gl_FragColor = vec4(sample.r, sample.g, sample.b, 1.0);
123
- return;
124
- }
125
- float scaledDistRange = u_distanceRange * u_pixelRatio;
126
- float sigDist = scaledDistRange * (median(sample.r, sample.g, sample.b) - 0.5);
127
- float opacity = clamp(sigDist + 0.5, 0.0, 1.0) * u_color.a;
128
-
129
- // Build the final color.
130
- // IMPORTANT: We must premultiply the color by the alpha value before returning it.
131
- gl_FragColor = vec4(u_color.r * opacity, u_color.g * opacity, u_color.b * opacity, opacity);
132
- }
133
- `,
134
- };
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { getNormalizedRgbaComponents } from '../../lib/utils.js';
20
+ import type { WebGlShaderType } from '../../renderers/webgl/WebGlShaderNode.js';
21
+
22
+ const IDENTITY_MATRIX_3x3 = new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);
23
+ /**
24
+ * Properties of the {@link SdfShader}
25
+ */
26
+ export interface SdfShaderProps {
27
+ transform: Float32Array;
28
+ scrollY: number;
29
+ /**
30
+ * Color in RGBA format
31
+ *
32
+ * @remarks
33
+ * Color channels must NOT be premultiplied by alpha for best blending results.
34
+ */
35
+ color: number;
36
+ size: number;
37
+ distanceRange: number;
38
+ debug: boolean;
39
+ }
40
+ /**
41
+ * SdfShader supports multi-channel and single-channel signed distance field textures.
42
+ *
43
+ * @remarks
44
+ * This Shader is used by the {@link SdfTextRenderer}. Do not use thie Shader
45
+ * directly. Instead create a Text Node and assign a SDF font family to it.
46
+ *
47
+ * @internalRemarks
48
+ * The only thing this shader does to support multi-channel SDFs is to
49
+ * add a median function to the fragment shader. If this one function call
50
+ * ends up being a performance bottleneck we can always look at ways to
51
+ * remove it.
52
+ */
53
+ export const Sdf: WebGlShaderType<SdfShaderProps> = {
54
+ props: {
55
+ transform: IDENTITY_MATRIX_3x3,
56
+ scrollY: 0,
57
+ color: 0xffffffff,
58
+ size: 16,
59
+ distanceRange: 1.0,
60
+ debug: false,
61
+ },
62
+ onSdfBind(props) {
63
+ this.uniformMatrix3fv('u_transform', props.transform);
64
+ this.uniform1f('u_scrollY', props.scrollY);
65
+ this.uniform4fa('u_color', getNormalizedRgbaComponents(props.color));
66
+ this.uniform1f('u_size', props.size);
67
+ this.uniform1f('u_distanceRange', props.distanceRange);
68
+ this.uniform1i('u_debug', props.debug ? 1 : 0);
69
+ },
70
+ vertex: `
71
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
72
+ precision highp float;
73
+ # else
74
+ precision mediump float;
75
+ # endif
76
+ // an attribute is an input (in) to a vertex shader.
77
+ // It will receive data from a buffer
78
+ attribute vec2 a_position;
79
+ attribute vec2 a_textureCoords;
80
+
81
+ uniform vec2 u_resolution;
82
+ uniform mat3 u_transform;
83
+ uniform float u_scrollY;
84
+ uniform float u_pixelRatio;
85
+ uniform float u_size;
86
+
87
+ varying vec2 v_texcoord;
88
+
89
+ void main() {
90
+ vec2 scrolledPosition = a_position * u_size - vec2(0, u_scrollY);
91
+ vec2 transformedPosition = (u_transform * vec3(scrolledPosition, 1)).xy;
92
+
93
+ // Calculate screen space with pixel ratio
94
+ vec2 screenSpace = (transformedPosition * u_pixelRatio / u_resolution * 2.0 - 1.0) * vec2(1, -1);
95
+
96
+ gl_Position = vec4(screenSpace, 0.0, 1.0);
97
+ v_texcoord = a_textureCoords;
98
+
99
+ }
100
+ `,
101
+ fragment: `
102
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
103
+ precision highp float;
104
+ # else
105
+ precision mediump float;
106
+ # endif
107
+ uniform vec4 u_color;
108
+ uniform sampler2D u_texture;
109
+ uniform float u_distanceRange;
110
+ uniform float u_pixelRatio;
111
+ uniform int u_debug;
112
+
113
+ varying vec2 v_texcoord;
114
+
115
+ float median(float r, float g, float b) {
116
+ return max(min(r, g), min(max(r, g), b));
117
+ }
118
+
119
+ void main() {
120
+ vec3 sample = texture2D(u_texture, v_texcoord).rgb;
121
+ if (u_debug == 1) {
122
+ gl_FragColor = vec4(sample.r, sample.g, sample.b, 1.0);
123
+ return;
124
+ }
125
+ float scaledDistRange = u_distanceRange * u_pixelRatio;
126
+ float sigDist = scaledDistRange * (median(sample.r, sample.g, sample.b) - 0.5);
127
+ float opacity = clamp(sigDist + 0.5, 0.0, 1.0) * u_color.a;
128
+
129
+ // Build the final color.
130
+ // IMPORTANT: We must premultiply the color by the alpha value before returning it.
131
+ gl_FragColor = vec4(u_color.r * opacity, u_color.g * opacity, u_color.b * opacity, opacity);
132
+ }
133
+ `,
134
+ };
@@ -1,115 +1,115 @@
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
-
18
- import type { WebGlShaderType } from '../../renderers/webgl/WebGlShaderNode.js';
19
- import {
20
- ShadowTemplate,
21
- type ShadowProps,
22
- } from '../templates/ShadowTemplate.js';
23
-
24
- export const Shadow: WebGlShaderType<ShadowProps> = {
25
- props: ShadowTemplate.props,
26
- update() {
27
- this.uniformRGBA('u_color', this.props!.color);
28
- this.uniform4fa('u_shadow', this.props!.projection);
29
- },
30
- vertex: `
31
- # ifdef GL_FRAGMENT_PRECISION_HIGH
32
- precision highp float;
33
- # else
34
- precision mediump float;
35
- # endif
36
-
37
- attribute vec2 a_position;
38
- attribute vec2 a_textureCoords;
39
- attribute vec4 a_color;
40
- attribute vec2 a_nodeCoords;
41
-
42
- uniform vec2 u_resolution;
43
- uniform float u_pixelRatio;
44
- uniform float u_rtt;
45
- uniform vec2 u_dimensions;
46
-
47
- uniform vec4 u_shadow;
48
-
49
- varying vec4 v_color;
50
- varying vec2 v_textureCoords;
51
- varying vec2 v_nodeCoords;
52
-
53
- void main() {
54
- vec2 screenSpace = vec2(2.0 / u_resolution.x, -2.0 / u_resolution.y);
55
- vec2 outerEdge = clamp(a_nodeCoords * 2.0 - vec2(1.0), -1.0, 1.0);
56
-
57
- vec2 shadowEdge = outerEdge * ((u_shadow.w * 2.0)+ u_shadow.z) + u_shadow.xy;
58
- vec2 normVertexPos = a_position * u_pixelRatio;
59
-
60
- vec2 vertexPos = (a_position + outerEdge + shadowEdge) * u_pixelRatio;
61
- gl_Position = vec4(vertexPos.x * screenSpace.x - 1.0, -sign(screenSpace.y) * (vertexPos.y * -abs(screenSpace.y)) + 1.0, 0.0, 1.0);
62
-
63
- v_color = a_color;
64
- v_nodeCoords = a_nodeCoords + (screenSpace + shadowEdge) / (u_dimensions);
65
- v_textureCoords = a_textureCoords + (screenSpace + shadowEdge) / (u_dimensions);
66
- }
67
- `,
68
- fragment: `
69
- # ifdef GL_FRAGMENT_PRECISION_HIGH
70
- precision highp float;
71
- # else
72
- precision mediump float;
73
- # endif
74
-
75
- uniform vec2 u_resolution;
76
- uniform float u_pixelRatio;
77
- uniform float u_alpha;
78
- uniform vec2 u_dimensions;
79
- uniform sampler2D u_texture;
80
-
81
- uniform vec4 u_color;
82
- uniform vec4 u_shadow;
83
-
84
- varying vec4 v_color;
85
- varying vec2 v_textureCoords;
86
- varying vec2 v_nodeCoords;
87
-
88
- float box(vec2 p, vec2 s) {
89
- vec2 q = abs(p) - s;
90
- return (min(max(q.x, q.y), 0.0) + length(max(q, 0.0))) + 2.0;
91
- }
92
-
93
- float shadowBox(vec2 p, vec2 s, float r) {
94
- vec2 q = abs(p) - s + r;
95
- float dist = min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - r;
96
- return 1.0 - smoothstep(-u_shadow.w, u_shadow.w + u_shadow.z, dist);
97
- }
98
-
99
- void main() {
100
- vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
101
- vec2 halfDimensions = (u_dimensions * 0.5);
102
-
103
- vec2 boxUv = v_nodeCoords.xy * u_dimensions - halfDimensions;
104
- float boxDist = box(boxUv, halfDimensions);
105
-
106
- float boxAlpha = 1.0 - smoothstep(0.0, u_pixelRatio, boxDist);
107
- float shadowDist = shadowBox(boxUv - u_shadow.xy, halfDimensions + u_shadow.w, u_shadow.z);
108
-
109
- vec4 resColor = vec4(0.0);
110
- resColor = mix(resColor, u_color, shadowDist);
111
- resColor = mix(resColor, color, min(color.a, boxAlpha));
112
- gl_FragColor = resColor * u_alpha;
113
- }
114
- `,
115
- };
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
+
18
+ import type { WebGlShaderType } from '../../renderers/webgl/WebGlShaderNode.js';
19
+ import {
20
+ ShadowTemplate,
21
+ type ShadowProps,
22
+ } from '../templates/ShadowTemplate.js';
23
+
24
+ export const Shadow: WebGlShaderType<ShadowProps> = {
25
+ props: ShadowTemplate.props,
26
+ update() {
27
+ this.uniformRGBA('u_color', this.props!.color);
28
+ this.uniform4fa('u_shadow', this.props!.projection);
29
+ },
30
+ vertex: `
31
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
32
+ precision highp float;
33
+ # else
34
+ precision mediump float;
35
+ # endif
36
+
37
+ attribute vec2 a_position;
38
+ attribute vec2 a_textureCoords;
39
+ attribute vec4 a_color;
40
+ attribute vec2 a_nodeCoords;
41
+
42
+ uniform vec2 u_resolution;
43
+ uniform float u_pixelRatio;
44
+ uniform float u_rtt;
45
+ uniform vec2 u_dimensions;
46
+
47
+ uniform vec4 u_shadow;
48
+
49
+ varying vec4 v_color;
50
+ varying vec2 v_textureCoords;
51
+ varying vec2 v_nodeCoords;
52
+
53
+ void main() {
54
+ vec2 screenSpace = vec2(2.0 / u_resolution.x, -2.0 / u_resolution.y);
55
+ vec2 outerEdge = clamp(a_nodeCoords * 2.0 - vec2(1.0), -1.0, 1.0);
56
+
57
+ vec2 shadowEdge = outerEdge * ((u_shadow.w * 2.0)+ u_shadow.z) + u_shadow.xy;
58
+ vec2 normVertexPos = a_position * u_pixelRatio;
59
+
60
+ vec2 vertexPos = (a_position + outerEdge + shadowEdge) * u_pixelRatio;
61
+ gl_Position = vec4(vertexPos.x * screenSpace.x - 1.0, -sign(screenSpace.y) * (vertexPos.y * -abs(screenSpace.y)) + 1.0, 0.0, 1.0);
62
+
63
+ v_color = a_color;
64
+ v_nodeCoords = a_nodeCoords + (screenSpace + shadowEdge) / (u_dimensions);
65
+ v_textureCoords = a_textureCoords + (screenSpace + shadowEdge) / (u_dimensions);
66
+ }
67
+ `,
68
+ fragment: `
69
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
70
+ precision highp float;
71
+ # else
72
+ precision mediump float;
73
+ # endif
74
+
75
+ uniform vec2 u_resolution;
76
+ uniform float u_pixelRatio;
77
+ uniform float u_alpha;
78
+ uniform vec2 u_dimensions;
79
+ uniform sampler2D u_texture;
80
+
81
+ uniform vec4 u_color;
82
+ uniform vec4 u_shadow;
83
+
84
+ varying vec4 v_color;
85
+ varying vec2 v_textureCoords;
86
+ varying vec2 v_nodeCoords;
87
+
88
+ float box(vec2 p, vec2 s) {
89
+ vec2 q = abs(p) - s;
90
+ return (min(max(q.x, q.y), 0.0) + length(max(q, 0.0))) + 2.0;
91
+ }
92
+
93
+ float shadowBox(vec2 p, vec2 s, float r) {
94
+ vec2 q = abs(p) - s + r;
95
+ float dist = min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - r;
96
+ return 1.0 - smoothstep(-u_shadow.w, u_shadow.w + u_shadow.z, dist);
97
+ }
98
+
99
+ void main() {
100
+ vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
101
+ vec2 halfDimensions = (u_dimensions * 0.5);
102
+
103
+ vec2 boxUv = v_nodeCoords.xy * u_dimensions - halfDimensions;
104
+ float boxDist = box(boxUv, halfDimensions);
105
+
106
+ float boxAlpha = 1.0 - smoothstep(0.0, u_pixelRatio, boxDist);
107
+ float shadowDist = shadowBox(boxUv - u_shadow.xy, halfDimensions + u_shadow.w, u_shadow.z);
108
+
109
+ vec4 resColor = vec4(0.0);
110
+ resColor = mix(resColor, u_color, shadowDist);
111
+ resColor = mix(resColor, color, min(color.a, boxAlpha));
112
+ gl_FragColor = resColor * u_alpha;
113
+ }
114
+ `,
115
+ };
@@ -1,36 +1,36 @@
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 2024 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import type { NormalizedFontMetrics } from './font-face-types/TrFontFace.js';
20
-
21
- /**
22
- * Calculate the default line height given normalized font metrics
23
- *
24
- * @remarks
25
- * This method may be used for both the WebTrFontFace and SdfTrFontFace font types.
26
- *
27
- * @param metrics
28
- * @param fontSize
29
- * @returns
30
- */
31
- export function calcDefaultLineHeight(
32
- metrics: NormalizedFontMetrics,
33
- fontSize: number,
34
- ): number {
35
- return fontSize * (metrics.ascender - metrics.descender + metrics.lineGap);
36
- }
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 2024 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import type { NormalizedFontMetrics } from './font-face-types/TrFontFace.js';
20
+
21
+ /**
22
+ * Calculate the default line height given normalized font metrics
23
+ *
24
+ * @remarks
25
+ * This method may be used for both the WebTrFontFace and SdfTrFontFace font types.
26
+ *
27
+ * @param metrics
28
+ * @param fontSize
29
+ * @returns
30
+ */
31
+ export function calcDefaultLineHeight(
32
+ metrics: NormalizedFontMetrics,
33
+ fontSize: number,
34
+ ): number {
35
+ return fontSize * (metrics.ascender - metrics.descender + metrics.lineGap);
36
+ }