@lightningjs/renderer 3.0.0-beta4 → 3.0.0-beta5

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 (335) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +147 -147
  4. package/dist/exports/core-api.d.ts +74 -0
  5. package/dist/exports/core-api.js +96 -0
  6. package/dist/exports/core-api.js.map +1 -0
  7. package/dist/exports/main-api.d.ts +30 -0
  8. package/dist/exports/main-api.js +45 -0
  9. package/dist/exports/main-api.js.map +1 -0
  10. package/dist/src/core/CoreExtension.d.ts +12 -0
  11. package/dist/src/core/CoreExtension.js +29 -0
  12. package/dist/src/core/CoreExtension.js.map +1 -0
  13. package/dist/src/core/CoreNode.js +1 -1
  14. package/dist/src/core/CoreNode.js.map +1 -1
  15. package/dist/src/core/CoreStuff.js +138 -0
  16. package/dist/src/core/CoreStuff.js.map +1 -0
  17. package/dist/src/core/CoreTextNode.js +1 -0
  18. package/dist/src/core/CoreTextNode.js.map +1 -1
  19. package/dist/src/core/CoreTexturizer.d.ts +14 -0
  20. package/dist/src/core/CoreTexturizer.js +47 -0
  21. package/dist/src/core/CoreTexturizer.js.map +1 -0
  22. package/dist/src/core/LngNode.d.ts +736 -0
  23. package/dist/src/core/LngNode.js +1174 -0
  24. package/dist/src/core/LngNode.js.map +1 -0
  25. package/dist/src/core/Matrix2DContext.d.ts +15 -0
  26. package/dist/src/core/Matrix2DContext.js +45 -0
  27. package/dist/src/core/Matrix2DContext.js.map +1 -0
  28. package/dist/src/core/ShaderNode.d.ts +10 -0
  29. package/dist/src/core/ShaderNode.js +30 -0
  30. package/dist/src/core/ShaderNode.js.map +1 -0
  31. package/dist/src/core/TextNode.d.ts +103 -0
  32. package/dist/src/core/TextNode.js +331 -0
  33. package/dist/src/core/TextNode.js.map +1 -0
  34. package/dist/src/core/lib/Coords.d.ts +14 -0
  35. package/dist/src/core/lib/Coords.js +55 -0
  36. package/dist/src/core/lib/Coords.js.map +1 -0
  37. package/dist/src/core/lib/glm/common.d.ts +162 -0
  38. package/dist/src/core/lib/glm/common.js +81 -0
  39. package/dist/src/core/lib/glm/common.js.map +1 -0
  40. package/dist/src/core/lib/glm/index.d.ts +11 -0
  41. package/dist/src/core/lib/glm/index.js +30 -0
  42. package/dist/src/core/lib/glm/index.js.map +1 -0
  43. package/dist/src/core/lib/glm/mat2.d.ts +219 -0
  44. package/dist/src/core/lib/glm/mat2.js +396 -0
  45. package/dist/src/core/lib/glm/mat2.js.map +1 -0
  46. package/dist/src/core/lib/glm/mat2d.d.ts +237 -0
  47. package/dist/src/core/lib/glm/mat2d.js +442 -0
  48. package/dist/src/core/lib/glm/mat2d.js.map +1 -0
  49. package/dist/src/core/lib/glm/mat3.d.ts +283 -0
  50. package/dist/src/core/lib/glm/mat3.js +680 -0
  51. package/dist/src/core/lib/glm/mat3.js.map +1 -0
  52. package/dist/src/core/lib/glm/mat4.d.ts +550 -0
  53. package/dist/src/core/lib/glm/mat4.js +1802 -0
  54. package/dist/src/core/lib/glm/mat4.js.map +1 -0
  55. package/dist/src/core/lib/glm/quat.d.ts +363 -0
  56. package/dist/src/core/lib/glm/quat.js +693 -0
  57. package/dist/src/core/lib/glm/quat.js.map +1 -0
  58. package/dist/src/core/lib/glm/quat2.d.ts +356 -0
  59. package/dist/src/core/lib/glm/quat2.js +754 -0
  60. package/dist/src/core/lib/glm/quat2.js.map +1 -0
  61. package/dist/src/core/lib/glm/vec2.d.ts +365 -0
  62. package/dist/src/core/lib/glm/vec2.js +569 -0
  63. package/dist/src/core/lib/glm/vec2.js.map +1 -0
  64. package/dist/src/core/lib/glm/vec3.d.ts +406 -0
  65. package/dist/src/core/lib/glm/vec3.js +720 -0
  66. package/dist/src/core/lib/glm/vec3.js.map +1 -0
  67. package/dist/src/core/lib/glm/vec4.d.ts +330 -0
  68. package/dist/src/core/lib/glm/vec4.js +608 -0
  69. package/dist/src/core/lib/glm/vec4.js.map +1 -0
  70. package/dist/src/core/renderers/CoreShaderManager.d.ts +19 -0
  71. package/dist/src/core/renderers/CoreShaderManager.js +33 -0
  72. package/dist/src/core/renderers/CoreShaderManager.js.map +1 -0
  73. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +27 -0
  74. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +82 -0
  75. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +1 -0
  76. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +11 -0
  77. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +34 -0
  78. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +1 -0
  79. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +35 -35
  80. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +45 -45
  81. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  82. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  83. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  84. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
  85. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  86. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
  87. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  88. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  89. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  90. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  91. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  92. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  93. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
  94. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
  95. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
  96. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  97. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  98. package/dist/src/core/scene/Scene.d.ts +59 -0
  99. package/dist/src/core/scene/Scene.js +106 -0
  100. package/dist/src/core/scene/Scene.js.map +1 -0
  101. package/dist/src/core/shaders/webgl/Border.js +59 -59
  102. package/dist/src/core/shaders/webgl/Default.js +47 -47
  103. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  104. package/dist/src/core/shaders/webgl/HolePunch.js +32 -32
  105. package/dist/src/core/shaders/webgl/LinearGradient.js +36 -36
  106. package/dist/src/core/shaders/webgl/RadialGradient.js +33 -33
  107. package/dist/src/core/shaders/webgl/Rounded.js +71 -71
  108. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +66 -66
  109. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +79 -79
  110. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
  111. package/dist/src/core/shaders/webgl/SdfShader.js +62 -62
  112. package/dist/src/core/shaders/webgl/Shadow.js +83 -83
  113. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
  114. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
  115. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
  116. package/dist/src/main-api/ICoreDriver.d.ts +27 -0
  117. package/dist/src/main-api/ICoreDriver.js +20 -0
  118. package/dist/src/main-api/ICoreDriver.js.map +1 -0
  119. package/dist/src/main-api/IRenderDriver.d.ts +20 -0
  120. package/dist/src/main-api/IRenderDriver.js +20 -0
  121. package/dist/src/main-api/IRenderDriver.js.map +1 -0
  122. package/dist/src/main-api/IShaderController.d.ts +14 -0
  123. package/dist/src/main-api/IShaderController.js +30 -0
  124. package/dist/src/main-api/IShaderController.js.map +1 -0
  125. package/dist/src/main-api/IShaderNode.d.ts +17 -0
  126. package/dist/src/main-api/IShaderNode.js +19 -0
  127. package/dist/src/main-api/IShaderNode.js.map +1 -0
  128. package/dist/src/main-api/RendererMain.d.ts +375 -0
  129. package/dist/src/main-api/RendererMain.js +365 -0
  130. package/dist/src/main-api/RendererMain.js.map +1 -0
  131. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +9 -0
  132. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +38 -0
  133. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +1 -0
  134. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +56 -0
  135. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +101 -0
  136. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -0
  137. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +32 -0
  138. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +28 -0
  139. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +1 -0
  140. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +24 -0
  141. package/dist/src/render-drivers/main/MainCoreDriver.js +118 -0
  142. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -0
  143. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +99 -0
  144. package/dist/src/render-drivers/main/MainOnlyNode.js +396 -0
  145. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -0
  146. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +6 -0
  147. package/dist/src/render-drivers/main/MainOnlyShaderController.js +15 -0
  148. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +1 -0
  149. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +7 -0
  150. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +34 -0
  151. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +1 -0
  152. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +47 -0
  153. package/dist/src/render-drivers/main/MainOnlyTextNode.js +205 -0
  154. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -0
  155. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +17 -0
  156. package/dist/src/render-drivers/main/MainRenderDriver.js +88 -0
  157. package/dist/src/render-drivers/main/MainRenderDriver.js.map +1 -0
  158. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +90 -0
  159. package/dist/src/render-drivers/threadx/NodeStruct.js +281 -0
  160. package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -0
  161. package/dist/src/render-drivers/threadx/SharedNode.d.ts +39 -0
  162. package/dist/src/render-drivers/threadx/SharedNode.js +60 -0
  163. package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -0
  164. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +44 -0
  165. package/dist/src/render-drivers/threadx/TextNodeStruct.js +201 -0
  166. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -0
  167. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +28 -0
  168. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +234 -0
  169. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -0
  170. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +20 -0
  171. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +84 -0
  172. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -0
  173. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +44 -0
  174. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +154 -0
  175. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -0
  176. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +6 -0
  177. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +16 -0
  178. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +1 -0
  179. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +7 -0
  180. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +15 -0
  181. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +1 -0
  182. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +28 -0
  183. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +55 -0
  184. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -0
  185. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +21 -0
  186. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +198 -0
  187. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +1 -0
  188. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +70 -0
  189. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +32 -0
  190. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -0
  191. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +19 -0
  192. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +177 -0
  193. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -0
  194. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +27 -0
  195. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +108 -0
  196. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -0
  197. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +1 -0
  198. package/dist/src/render-drivers/threadx/worker/renderer.js +145 -0
  199. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -0
  200. package/dist/src/render-drivers/utils.d.ts +12 -0
  201. package/dist/src/render-drivers/utils.js +69 -0
  202. package/dist/src/render-drivers/utils.js.map +1 -0
  203. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  204. package/exports/canvas-shaders.ts +28 -28
  205. package/exports/canvas.ts +45 -45
  206. package/exports/index.ts +90 -90
  207. package/exports/inspector.ts +24 -24
  208. package/exports/utils.ts +44 -44
  209. package/exports/webgl-shaders.ts +28 -28
  210. package/exports/webgl.ts +50 -50
  211. package/package.json +2 -1
  212. package/scripts/please-use-pnpm.js +13 -13
  213. package/src/common/CommonTypes.ts +146 -146
  214. package/src/common/EventEmitter.ts +77 -77
  215. package/src/common/IAnimationController.ts +92 -92
  216. package/src/common/IEventEmitter.ts +28 -28
  217. package/src/core/CoreNode.test.ts +203 -203
  218. package/src/core/CoreNode.ts +2494 -2494
  219. package/src/core/CoreShaderManager.ts +188 -188
  220. package/src/core/CoreTextNode.ts +449 -448
  221. package/src/core/CoreTextureManager.ts +601 -601
  222. package/src/core/Stage.ts +754 -754
  223. package/src/core/TextureMemoryManager.ts +395 -395
  224. package/src/core/animations/AnimationManager.ts +38 -38
  225. package/src/core/animations/CoreAnimation.ts +284 -284
  226. package/src/core/animations/CoreAnimationController.ts +157 -157
  227. package/src/core/lib/ContextSpy.ts +41 -41
  228. package/src/core/lib/ImageWorker.ts +280 -280
  229. package/src/core/lib/Matrix3d.ts +244 -244
  230. package/src/core/lib/RenderCoords.ts +71 -71
  231. package/src/core/lib/WebGlContextWrapper.ts +1374 -1374
  232. package/src/core/lib/textureCompression.ts +152 -152
  233. package/src/core/lib/textureSvg.ts +78 -78
  234. package/src/core/lib/utils.ts +386 -386
  235. package/src/core/lib/validateImageBitmap.ts +87 -87
  236. package/src/core/platform.ts +64 -64
  237. package/src/core/platforms/Platform.ts +77 -77
  238. package/src/core/platforms/web/WebPlatform.ts +84 -84
  239. package/src/core/renderers/CoreContextTexture.ts +43 -43
  240. package/src/core/renderers/CoreRenderOp.ts +22 -22
  241. package/src/core/renderers/CoreRenderer.ts +109 -109
  242. package/src/core/renderers/CoreShaderNode.ts +165 -165
  243. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  244. package/src/core/renderers/canvas/CanvasRenderer.ts +298 -298
  245. package/src/core/renderers/canvas/CanvasShaderNode.ts +99 -99
  246. package/src/core/renderers/canvas/CanvasTexture.ts +156 -156
  247. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +220 -220
  248. package/src/core/renderers/canvas/internal/ColorUtils.ts +85 -85
  249. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +86 -86
  250. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -50
  251. package/src/core/renderers/webgl/WebGlCtxTexture.ts +301 -301
  252. package/src/core/renderers/webgl/WebGlRenderOp.ts +161 -161
  253. package/src/core/renderers/webgl/WebGlRenderer.ts +750 -750
  254. package/src/core/renderers/webgl/WebGlShaderNode.ts +437 -437
  255. package/src/core/renderers/webgl/WebGlShaderProgram.ts +318 -318
  256. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  257. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  258. package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -281
  259. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  260. package/src/core/shaders/canvas/Border.ts +78 -78
  261. package/src/core/shaders/canvas/HolePunch.ts +62 -62
  262. package/src/core/shaders/canvas/LinearGradient.ts +69 -69
  263. package/src/core/shaders/canvas/RadialGradient.ts +113 -113
  264. package/src/core/shaders/canvas/Rounded.ts +55 -55
  265. package/src/core/shaders/canvas/RoundedWithBorder.ts +68 -68
  266. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -88
  267. package/src/core/shaders/canvas/RoundedWithShadow.ts +69 -69
  268. package/src/core/shaders/canvas/Shadow.ts +52 -52
  269. package/src/core/shaders/canvas/utils/render.ts +151 -151
  270. package/src/core/shaders/templates/BorderTemplate.ts +115 -115
  271. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  272. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  273. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -81
  274. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  275. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  276. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  277. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  278. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  279. package/src/core/shaders/templates/shaderUtils.ts +47 -47
  280. package/src/core/shaders/webgl/Border.ts +96 -96
  281. package/src/core/shaders/webgl/Default.ts +89 -89
  282. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  283. package/src/core/shaders/webgl/HolePunch.ts +78 -78
  284. package/src/core/shaders/webgl/LinearGradient.ts +81 -81
  285. package/src/core/shaders/webgl/RadialGradient.ts +84 -84
  286. package/src/core/shaders/webgl/Rounded.ts +117 -117
  287. package/src/core/shaders/webgl/RoundedWithBorder.ts +114 -114
  288. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +133 -133
  289. package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -98
  290. package/src/core/shaders/webgl/SdfShader.ts +134 -134
  291. package/src/core/shaders/webgl/Shadow.ts +115 -115
  292. package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
  293. package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
  294. package/src/core/text-rendering/TrFontManager.ts +183 -183
  295. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
  296. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  297. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  298. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
  299. package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
  300. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
  301. package/src/core/text-rendering/font-face-types/utils.ts +39 -39
  302. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +514 -514
  303. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +863 -863
  304. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +846 -846
  305. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  306. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  307. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  308. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  309. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
  310. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  311. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  312. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +497 -497
  313. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  314. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
  315. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  316. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  317. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  318. package/src/core/text-rendering/renderers/TextRenderer.ts +567 -567
  319. package/src/core/textures/ColorTexture.ts +102 -102
  320. package/src/core/textures/ImageTexture.ts +410 -410
  321. package/src/core/textures/NoiseTexture.ts +104 -104
  322. package/src/core/textures/RenderTexture.ts +85 -85
  323. package/src/core/textures/SubTexture.ts +205 -205
  324. package/src/core/textures/Texture.ts +358 -358
  325. package/src/core/utils.ts +227 -227
  326. package/src/env.d.ts +7 -7
  327. package/src/main-api/INode.ts +100 -100
  328. package/src/main-api/Inspector.ts +522 -522
  329. package/src/main-api/Renderer.ts +675 -675
  330. package/src/main-api/utils.ts +45 -45
  331. package/src/utils.ts +267 -267
  332. package/COPYING +0 -1
  333. package/dist/src/core/temp.js +0 -77
  334. package/dist/src/core/temp.js.map +0 -1
  335. /package/dist/src/core/{temp.d.ts → CoreStuff.d.ts} +0 -0
@@ -34,39 +34,39 @@ export const RadialGradient = {
34
34
  return `colors:${props.colors.length}`;
35
35
  },
36
36
  fragment(renderer, props) {
37
- return `
38
- # ifdef GL_FRAGMENT_PRECISION_HIGH
39
- precision highp float;
40
- # else
41
- precision mediump float;
42
- # endif
43
-
44
- #define PI 3.14159265359
45
-
46
- uniform float u_alpha;
47
- uniform vec2 u_dimensions;
48
-
49
- uniform sampler2D u_texture;
50
-
51
- uniform vec2 u_projection;
52
- uniform vec2 u_size;
53
- uniform float u_stops[${props.stops.length}];
54
- uniform vec4 u_colors[${props.colors.length}];
55
-
56
- varying vec4 v_color;
57
- varying vec2 v_textureCoords;
58
-
59
- vec2 calcPoint(float d, float angle) {
60
- return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
61
- }
62
-
63
- void main() {
64
- vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
65
- vec2 point = v_textureCoords.xy * u_dimensions;
66
- float dist = length((point - u_projection) / u_size);
67
- ${genGradientColors(props.stops.length)}
68
- gl_FragColor = mix(color, colorOut, clamp(colorOut.a, 0.0, 1.0));
69
- }
37
+ return `
38
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
39
+ precision highp float;
40
+ # else
41
+ precision mediump float;
42
+ # endif
43
+
44
+ #define PI 3.14159265359
45
+
46
+ uniform float u_alpha;
47
+ uniform vec2 u_dimensions;
48
+
49
+ uniform sampler2D u_texture;
50
+
51
+ uniform vec2 u_projection;
52
+ uniform vec2 u_size;
53
+ uniform float u_stops[${props.stops.length}];
54
+ uniform vec4 u_colors[${props.colors.length}];
55
+
56
+ varying vec4 v_color;
57
+ varying vec2 v_textureCoords;
58
+
59
+ vec2 calcPoint(float d, float angle) {
60
+ return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
61
+ }
62
+
63
+ void main() {
64
+ vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
65
+ vec2 point = v_textureCoords.xy * u_dimensions;
66
+ float dist = length((point - u_projection) / u_size);
67
+ ${genGradientColors(props.stops.length)}
68
+ gl_FragColor = mix(color, colorOut, clamp(colorOut.a, 0.0, 1.0));
69
+ }
70
70
  `;
71
71
  },
72
72
  };
@@ -9,78 +9,78 @@ export const Rounded = {
9
9
  update(node) {
10
10
  this.uniform4fa('u_radius', calcFactoredRadiusArray(this.props.radius, node.width, node.height));
11
11
  },
12
- vertex: `
13
- # ifdef GL_FRAGMENT_PRECISION_HIGH
14
- precision highp float;
15
- # else
16
- precision mediump float;
17
- # endif
18
-
19
- attribute vec2 a_position;
20
- attribute vec2 a_textureCoords;
21
- attribute vec4 a_color;
22
- attribute vec2 a_nodeCoords;
23
-
24
- uniform vec2 u_resolution;
25
- uniform float u_pixelRatio;
26
- uniform vec2 u_dimensions;
27
-
28
- varying vec4 v_color;
29
- varying vec2 v_textureCoords;
30
- varying vec2 v_nodeCoords;
31
-
32
- void main() {
33
- vec2 normalized = a_position * u_pixelRatio;
34
- vec2 screenSpace = vec2(2.0 / u_resolution.x, -2.0 / u_resolution.y);
35
-
36
- v_color = a_color;
37
- v_nodeCoords = a_nodeCoords;
38
- v_textureCoords = a_textureCoords;
39
-
40
- gl_Position = vec4(normalized.x * screenSpace.x - 1.0, normalized.y * -abs(screenSpace.y) + 1.0, 0.0, 1.0);
41
- gl_Position.y = -sign(screenSpace.y) * gl_Position.y;
42
- }
12
+ vertex: `
13
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
14
+ precision highp float;
15
+ # else
16
+ precision mediump float;
17
+ # endif
18
+
19
+ attribute vec2 a_position;
20
+ attribute vec2 a_textureCoords;
21
+ attribute vec4 a_color;
22
+ attribute vec2 a_nodeCoords;
23
+
24
+ uniform vec2 u_resolution;
25
+ uniform float u_pixelRatio;
26
+ uniform vec2 u_dimensions;
27
+
28
+ varying vec4 v_color;
29
+ varying vec2 v_textureCoords;
30
+ varying vec2 v_nodeCoords;
31
+
32
+ void main() {
33
+ vec2 normalized = a_position * u_pixelRatio;
34
+ vec2 screenSpace = vec2(2.0 / u_resolution.x, -2.0 / u_resolution.y);
35
+
36
+ v_color = a_color;
37
+ v_nodeCoords = a_nodeCoords;
38
+ v_textureCoords = a_textureCoords;
39
+
40
+ gl_Position = vec4(normalized.x * screenSpace.x - 1.0, normalized.y * -abs(screenSpace.y) + 1.0, 0.0, 1.0);
41
+ gl_Position.y = -sign(screenSpace.y) * gl_Position.y;
42
+ }
43
43
  `,
44
- fragment: `
45
- # ifdef GL_FRAGMENT_PRECISION_HIGH
46
- precision highp float;
47
- # else
48
- precision mediump float;
49
- # endif
50
-
51
- //renderer applies these uniforms automatically
52
- uniform vec2 u_resolution;
53
- uniform vec2 u_dimensions;
54
- uniform float u_alpha;
55
- uniform sampler2D u_texture;
56
-
57
- //custom uniforms
58
- uniform vec4 u_radius;
59
-
60
- varying vec4 v_color;
61
- varying vec2 v_textureCoords;
62
- varying vec2 v_nodeCoords;
63
-
64
- float roundedBox(vec2 p, vec2 s, vec4 r) {
65
- r.xy = (p.x > 0.0) ? r.yz : r.xw;
66
- r.x = (p.y > 0.0) ? r.y : r.x;
67
- vec2 q = abs(p) - s + r.x;
68
- return (min(max(q.x, q.y), 0.0) + length(max(q, 0.0))) - r.x;
69
- }
70
-
71
- void main() {
72
- vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
73
- vec2 halfDimensions = (u_dimensions * 0.5);
74
-
75
- vec2 boxUv = v_nodeCoords.xy * u_dimensions - halfDimensions;
76
- float boxDist = roundedBox(boxUv, halfDimensions, u_radius);
77
-
78
- float roundedAlpha = 1.0 - smoothstep(0.0, 1.0, boxDist);
79
-
80
- vec4 resColor = vec4(0.0);
81
- resColor = mix(resColor, color, roundedAlpha);
82
- gl_FragColor = resColor * u_alpha;
83
- }
44
+ fragment: `
45
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
46
+ precision highp float;
47
+ # else
48
+ precision mediump float;
49
+ # endif
50
+
51
+ //renderer applies these uniforms automatically
52
+ uniform vec2 u_resolution;
53
+ uniform vec2 u_dimensions;
54
+ uniform float u_alpha;
55
+ uniform sampler2D u_texture;
56
+
57
+ //custom uniforms
58
+ uniform vec4 u_radius;
59
+
60
+ varying vec4 v_color;
61
+ varying vec2 v_textureCoords;
62
+ varying vec2 v_nodeCoords;
63
+
64
+ float roundedBox(vec2 p, vec2 s, vec4 r) {
65
+ r.xy = (p.x > 0.0) ? r.yz : r.xw;
66
+ r.x = (p.y > 0.0) ? r.y : r.x;
67
+ vec2 q = abs(p) - s + r.x;
68
+ return (min(max(q.x, q.y), 0.0) + length(max(q, 0.0))) - r.x;
69
+ }
70
+
71
+ void main() {
72
+ vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
73
+ vec2 halfDimensions = (u_dimensions * 0.5);
74
+
75
+ vec2 boxUv = v_nodeCoords.xy * u_dimensions - halfDimensions;
76
+ float boxDist = roundedBox(boxUv, halfDimensions, u_radius);
77
+
78
+ float roundedAlpha = 1.0 - smoothstep(0.0, 1.0, boxDist);
79
+
80
+ vec4 resColor = vec4(0.0);
81
+ resColor = mix(resColor, color, roundedAlpha);
82
+ gl_FragColor = resColor * u_alpha;
83
+ }
84
84
  `,
85
85
  };
86
86
  //# sourceMappingURL=Rounded.js.map
@@ -26,72 +26,72 @@ export const RoundedWithBorder = {
26
26
  this.uniform4fa('u_radius', calcFactoredRadiusArray(this.props.radius, node.width, node.height));
27
27
  },
28
28
  vertex: Rounded.vertex,
29
- fragment: `
30
- # ifdef GL_FRAGMENT_PRECISION_HIGH
31
- precision highp float;
32
- # else
33
- precision mediump float;
34
- # endif
35
-
36
- uniform vec2 u_resolution;
37
- uniform float u_pixelRatio;
38
- uniform float u_alpha;
39
- uniform vec2 u_dimensions;
40
- uniform sampler2D u_texture;
41
-
42
- uniform vec4 u_radius;
43
-
44
- uniform vec4 u_border_width;
45
- uniform vec4 u_border_color;
46
- uniform int u_border_asym;
47
-
48
- varying vec4 v_color;
49
- varying vec2 v_textureCoords;
50
- varying vec2 v_nodeCoords;
51
-
52
- float roundedBox(vec2 p, vec2 s, vec4 r) {
53
- r.xy = (p.x > 0.0) ? r.yz : r.xw;
54
- r.x = (p.y > 0.0) ? r.y : r.x;
55
- vec2 q = abs(p) - s + r.x;
56
- return (min(max(q.x, q.y), 0.0) + length(max(q, 0.0))) - r.x;
57
- }
58
-
59
- float asymBorderWidth(vec2 p, float d, vec4 r, vec4 w) {
60
- r.x = (r.x - (max(w.w, w.x) - min(w.w, w.x))) * 0.5;
61
- r.y = (r.y - (max(w.y, w.x) - min(w.y, w.x))) * 0.5;
62
- r.z = (r.z - (max(w.y, w.z) - min(w.y, w.z))) * 0.5;
63
- r.w = (r.w - (max(w.w, w.z) - min(w.w, w.z))) * 0.5;
64
-
65
- p.x += w.y > w.w ? (w.y - w.w) * 0.5 : -(w.w - w.y) * 0.5;
66
- p.y += w.z > w.x ? (w.z - w.x) * 0.5 : -(w.x - w.z) * 0.5;
67
-
68
- vec2 size = vec2(u_dimensions.x - (w[3] + w[1]), u_dimensions.y - (w[0] + w[2])) * 0.5;
69
- float borderDist = roundedBox(p, size + u_pixelRatio, r);
70
- return 1.0 - smoothstep(0.0, u_pixelRatio, max(-borderDist, d));
71
- }
72
-
73
- void main() {
74
- vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
75
- vec2 halfDimensions = (u_dimensions * 0.5);
76
-
77
- vec2 boxUv = v_nodeCoords.xy * u_dimensions - halfDimensions;
78
- float boxDist = roundedBox(boxUv, halfDimensions, u_radius);
79
-
80
- float roundedAlpha = 1.0 - smoothstep(0.0, u_pixelRatio, boxDist);
81
- float borderAlpha = 0.0;
82
-
83
- if(u_border_asym == 1) {
84
- borderAlpha = asymBorderWidth(boxUv, boxDist, u_radius, u_border_width);
85
- }
86
- else {
87
- borderAlpha = 1.0 - smoothstep(u_border_width[0] - u_pixelRatio, u_border_width[0], abs(boxDist));
88
- }
89
-
90
- vec4 resColor = vec4(0.0);
91
- resColor = mix(resColor, color, min(color.a, roundedAlpha));
92
- resColor = mix(resColor, u_border_color, min(u_border_color.a, min(borderAlpha, roundedAlpha)));
93
- gl_FragColor = resColor * u_alpha;
94
- }
29
+ fragment: `
30
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
31
+ precision highp float;
32
+ # else
33
+ precision mediump float;
34
+ # endif
35
+
36
+ uniform vec2 u_resolution;
37
+ uniform float u_pixelRatio;
38
+ uniform float u_alpha;
39
+ uniform vec2 u_dimensions;
40
+ uniform sampler2D u_texture;
41
+
42
+ uniform vec4 u_radius;
43
+
44
+ uniform vec4 u_border_width;
45
+ uniform vec4 u_border_color;
46
+ uniform int u_border_asym;
47
+
48
+ varying vec4 v_color;
49
+ varying vec2 v_textureCoords;
50
+ varying vec2 v_nodeCoords;
51
+
52
+ float roundedBox(vec2 p, vec2 s, vec4 r) {
53
+ r.xy = (p.x > 0.0) ? r.yz : r.xw;
54
+ r.x = (p.y > 0.0) ? r.y : r.x;
55
+ vec2 q = abs(p) - s + r.x;
56
+ return (min(max(q.x, q.y), 0.0) + length(max(q, 0.0))) - r.x;
57
+ }
58
+
59
+ float asymBorderWidth(vec2 p, float d, vec4 r, vec4 w) {
60
+ r.x = (r.x - (max(w.w, w.x) - min(w.w, w.x))) * 0.5;
61
+ r.y = (r.y - (max(w.y, w.x) - min(w.y, w.x))) * 0.5;
62
+ r.z = (r.z - (max(w.y, w.z) - min(w.y, w.z))) * 0.5;
63
+ r.w = (r.w - (max(w.w, w.z) - min(w.w, w.z))) * 0.5;
64
+
65
+ p.x += w.y > w.w ? (w.y - w.w) * 0.5 : -(w.w - w.y) * 0.5;
66
+ p.y += w.z > w.x ? (w.z - w.x) * 0.5 : -(w.x - w.z) * 0.5;
67
+
68
+ vec2 size = vec2(u_dimensions.x - (w[3] + w[1]), u_dimensions.y - (w[0] + w[2])) * 0.5;
69
+ float borderDist = roundedBox(p, size + u_pixelRatio, r);
70
+ return 1.0 - smoothstep(0.0, u_pixelRatio, max(-borderDist, d));
71
+ }
72
+
73
+ void main() {
74
+ vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
75
+ vec2 halfDimensions = (u_dimensions * 0.5);
76
+
77
+ vec2 boxUv = v_nodeCoords.xy * u_dimensions - halfDimensions;
78
+ float boxDist = roundedBox(boxUv, halfDimensions, u_radius);
79
+
80
+ float roundedAlpha = 1.0 - smoothstep(0.0, u_pixelRatio, boxDist);
81
+ float borderAlpha = 0.0;
82
+
83
+ if(u_border_asym == 1) {
84
+ borderAlpha = asymBorderWidth(boxUv, boxDist, u_radius, u_border_width);
85
+ }
86
+ else {
87
+ borderAlpha = 1.0 - smoothstep(u_border_width[0] - u_pixelRatio, u_border_width[0], abs(boxDist));
88
+ }
89
+
90
+ vec4 resColor = vec4(0.0);
91
+ resColor = mix(resColor, color, min(color.a, roundedAlpha));
92
+ resColor = mix(resColor, u_border_color, min(u_border_color.a, min(borderAlpha, roundedAlpha)));
93
+ gl_FragColor = resColor * u_alpha;
94
+ }
95
95
  `,
96
96
  };
97
97
  //# sourceMappingURL=RoundedWithBorder.js.map
@@ -28,85 +28,85 @@ export const RoundedWithBorderAndShadow = {
28
28
  this.uniform4fa('u_radius', calcFactoredRadiusArray(this.props.radius, node.width, node.height));
29
29
  },
30
30
  vertex: Shadow.vertex,
31
- fragment: `
32
- # ifdef GL_FRAGMENT_PRECISION_HIGH
33
- precision highp float;
34
- # else
35
- precision mediump float;
36
- # endif
37
-
38
- uniform vec2 u_resolution;
39
- uniform float u_pixelRatio;
40
- uniform float u_alpha;
41
- uniform vec2 u_dimensions;
42
- uniform sampler2D u_texture;
43
- uniform float u_rtt;
44
-
45
- uniform vec4 u_radius;
46
- uniform vec4 u_border_width;
47
- uniform vec4 u_border_color;
48
- uniform int u_border_asym;
49
- uniform vec4 u_shadow_color;
50
- uniform vec4 u_shadow;
51
-
52
- varying vec4 v_color;
53
- varying vec2 v_textureCoords;
54
- varying vec2 v_nodeCoords;
55
-
56
- float roundedBox(vec2 p, vec2 s, vec4 r) {
57
- r.xy = (p.x > 0.0) ? r.yz : r.xw;
58
- r.x = (p.y > 0.0) ? r.y : r.x;
59
- vec2 q = abs(p) - s + r.x;
60
- return (min(max(q.x, q.y), 0.0) + length(max(q, 0.0))) - r.x;
61
- }
62
-
63
- float asymBorderWidth(vec2 p, float d, vec4 r, vec4 w) {
64
- r.x = (r.x - (max(w.w, w.x) - min(w.w, w.x))) * 0.5;
65
- r.y = (r.y - (max(w.y, w.x) - min(w.y, w.x))) * 0.5;
66
- r.z = (r.z - (max(w.y, w.z) - min(w.y, w.z))) * 0.5;
67
- r.w = (r.w - (max(w.w, w.z) - min(w.w, w.z))) * 0.5;
68
-
69
- p.x += w.y > w.w ? (w.y - w.w) * 0.5 : -(w.w - w.y) * 0.5;
70
- p.y += w.z > w.x ? (w.z - w.x) * 0.5 : -(w.x - w.z) * 0.5;
71
-
72
- vec2 size = vec2(u_dimensions.x - (w[3] + w[1]), u_dimensions.y - (w[0] + w[2])) * 0.5;
73
- float borderDist = roundedBox(p, size, r);
74
- return 1.0 - smoothstep(0.0, u_pixelRatio, max(-borderDist, d));
75
- }
76
-
77
- float shadowBox(vec2 p, vec2 s, vec4 r) {
78
- r.xy = (p.x > 0.0) ? r.yz : r.xw;
79
- r.x = (p.y > 0.0) ? r.y : r.x;
80
- vec2 q = abs(p) - s + r.x;
81
- float dist = min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - r.x;
82
- return 1.0 - smoothstep(-u_shadow.w, u_shadow.w + u_shadow.z, dist);
83
- }
84
-
85
- void main() {
86
- vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
87
- vec2 halfDimensions = (u_dimensions * 0.5);
88
-
89
- vec2 boxUv = v_nodeCoords.xy * u_dimensions - halfDimensions;
90
- float outerBoxDist = roundedBox(boxUv, halfDimensions, u_radius);
91
-
92
- float roundedAlpha = 1.0 - smoothstep(0.0, u_pixelRatio, outerBoxDist);
93
- float borderAlpha = 0.0;
94
-
95
- if(u_border_asym == 1) {
96
- borderAlpha = asymBorderWidth(boxUv, outerBoxDist, u_radius, u_border_width);
97
- }
98
- else {
99
- borderAlpha = 1.0 - smoothstep(u_border_width[0], u_border_width[0], abs(outerBoxDist));
100
- }
101
-
102
- float shadowAlpha = shadowBox(boxUv - u_shadow.xy, halfDimensions + u_shadow.w, u_radius + u_shadow.z);
103
-
104
- vec4 resColor = vec4(0.0);
105
- resColor = mix(resColor, u_shadow_color, shadowAlpha);
106
- resColor = mix(resColor, color, min(color.a, roundedAlpha));
107
- resColor = mix(resColor, u_border_color, min(u_border_color.a, min(borderAlpha, roundedAlpha)));
108
- gl_FragColor = resColor * u_alpha;
109
- }
31
+ fragment: `
32
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
33
+ precision highp float;
34
+ # else
35
+ precision mediump float;
36
+ # endif
37
+
38
+ uniform vec2 u_resolution;
39
+ uniform float u_pixelRatio;
40
+ uniform float u_alpha;
41
+ uniform vec2 u_dimensions;
42
+ uniform sampler2D u_texture;
43
+ uniform float u_rtt;
44
+
45
+ uniform vec4 u_radius;
46
+ uniform vec4 u_border_width;
47
+ uniform vec4 u_border_color;
48
+ uniform int u_border_asym;
49
+ uniform vec4 u_shadow_color;
50
+ uniform vec4 u_shadow;
51
+
52
+ varying vec4 v_color;
53
+ varying vec2 v_textureCoords;
54
+ varying vec2 v_nodeCoords;
55
+
56
+ float roundedBox(vec2 p, vec2 s, vec4 r) {
57
+ r.xy = (p.x > 0.0) ? r.yz : r.xw;
58
+ r.x = (p.y > 0.0) ? r.y : r.x;
59
+ vec2 q = abs(p) - s + r.x;
60
+ return (min(max(q.x, q.y), 0.0) + length(max(q, 0.0))) - r.x;
61
+ }
62
+
63
+ float asymBorderWidth(vec2 p, float d, vec4 r, vec4 w) {
64
+ r.x = (r.x - (max(w.w, w.x) - min(w.w, w.x))) * 0.5;
65
+ r.y = (r.y - (max(w.y, w.x) - min(w.y, w.x))) * 0.5;
66
+ r.z = (r.z - (max(w.y, w.z) - min(w.y, w.z))) * 0.5;
67
+ r.w = (r.w - (max(w.w, w.z) - min(w.w, w.z))) * 0.5;
68
+
69
+ p.x += w.y > w.w ? (w.y - w.w) * 0.5 : -(w.w - w.y) * 0.5;
70
+ p.y += w.z > w.x ? (w.z - w.x) * 0.5 : -(w.x - w.z) * 0.5;
71
+
72
+ vec2 size = vec2(u_dimensions.x - (w[3] + w[1]), u_dimensions.y - (w[0] + w[2])) * 0.5;
73
+ float borderDist = roundedBox(p, size, r);
74
+ return 1.0 - smoothstep(0.0, u_pixelRatio, max(-borderDist, d));
75
+ }
76
+
77
+ float shadowBox(vec2 p, vec2 s, vec4 r) {
78
+ r.xy = (p.x > 0.0) ? r.yz : r.xw;
79
+ r.x = (p.y > 0.0) ? r.y : r.x;
80
+ vec2 q = abs(p) - s + r.x;
81
+ float dist = min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - r.x;
82
+ return 1.0 - smoothstep(-u_shadow.w, u_shadow.w + u_shadow.z, dist);
83
+ }
84
+
85
+ void main() {
86
+ vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
87
+ vec2 halfDimensions = (u_dimensions * 0.5);
88
+
89
+ vec2 boxUv = v_nodeCoords.xy * u_dimensions - halfDimensions;
90
+ float outerBoxDist = roundedBox(boxUv, halfDimensions, u_radius);
91
+
92
+ float roundedAlpha = 1.0 - smoothstep(0.0, u_pixelRatio, outerBoxDist);
93
+ float borderAlpha = 0.0;
94
+
95
+ if(u_border_asym == 1) {
96
+ borderAlpha = asymBorderWidth(boxUv, outerBoxDist, u_radius, u_border_width);
97
+ }
98
+ else {
99
+ borderAlpha = 1.0 - smoothstep(u_border_width[0], u_border_width[0], abs(outerBoxDist));
100
+ }
101
+
102
+ float shadowAlpha = shadowBox(boxUv - u_shadow.xy, halfDimensions + u_shadow.w, u_radius + u_shadow.z);
103
+
104
+ vec4 resColor = vec4(0.0);
105
+ resColor = mix(resColor, u_shadow_color, shadowAlpha);
106
+ resColor = mix(resColor, color, min(color.a, roundedAlpha));
107
+ resColor = mix(resColor, u_border_color, min(u_border_color.a, min(borderAlpha, roundedAlpha)));
108
+ gl_FragColor = resColor * u_alpha;
109
+ }
110
110
  `,
111
111
  };
112
112
  //# sourceMappingURL=RoundedWithBorderAndShadow.js.map
@@ -25,60 +25,60 @@ export const RoundedWithShadow = {
25
25
  this.uniform4fa('u_radius', calcFactoredRadiusArray(this.props.radius, node.width, node.height));
26
26
  },
27
27
  vertex: Shadow.vertex,
28
- fragment: `
29
- # ifdef GL_FRAGMENT_PRECISION_HIGH
30
- precision highp float;
31
- # else
32
- precision mediump float;
33
- # endif
34
-
35
- uniform vec2 u_resolution;
36
- uniform float u_pixelRatio;
37
- uniform float u_alpha;
38
- uniform vec2 u_dimensions;
39
- uniform sampler2D u_texture;
40
-
41
- uniform vec4 u_shadow_color;
42
- uniform vec4 u_shadow;
43
- uniform vec4 u_radius;
44
-
45
- uniform int u_asymWidth;
46
-
47
- varying vec4 v_color;
48
- varying vec2 v_textureCoords;
49
- varying vec2 v_nodeCoords;
50
-
51
- float roundedBox(vec2 p, vec2 s, vec4 r) {
52
- r.xy = (p.x > 0.0) ? r.yz : r.xw;
53
- r.x = (p.y > 0.0) ? r.y : r.x;
54
- vec2 q = abs(p) - s + r.x;
55
- return (min(max(q.x, q.y), 0.0) + length(max(q, 0.0))) - r.x;
56
- }
57
-
58
- float shadowBox(vec2 p, vec2 s, vec4 r) {
59
- r.xy = (p.x > 0.0) ? r.yz : r.xw;
60
- r.x = (p.y > 0.0) ? r.y : r.x;
61
- vec2 q = abs(p) - s + r.x;
62
- float dist = min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - r.x;
63
- return 1.0 - smoothstep(-(u_shadow.w), (u_shadow.w + u_shadow.z), dist);
64
- }
65
-
66
- void main() {
67
- vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
68
- vec2 halfDimensions = (u_dimensions * 0.5);
69
-
70
- vec2 boxUv = v_nodeCoords.xy * u_dimensions - halfDimensions;
71
- float boxDist = roundedBox(boxUv, halfDimensions, u_radius);
72
-
73
- float roundedAlpha = 1.0 - smoothstep(0.0, u_pixelRatio, boxDist);
74
-
75
- float shadowAlpha = shadowBox(boxUv - u_shadow.xy, halfDimensions + u_shadow.w, u_radius + u_shadow.z);
76
-
77
- vec4 resColor = vec4(0.0);
78
- resColor = mix(resColor, u_shadow_color, shadowAlpha);
79
- resColor = mix(resColor, color, min(color.a, roundedAlpha));
80
- gl_FragColor = resColor * u_alpha;
81
- }
28
+ fragment: `
29
+ # ifdef GL_FRAGMENT_PRECISION_HIGH
30
+ precision highp float;
31
+ # else
32
+ precision mediump float;
33
+ # endif
34
+
35
+ uniform vec2 u_resolution;
36
+ uniform float u_pixelRatio;
37
+ uniform float u_alpha;
38
+ uniform vec2 u_dimensions;
39
+ uniform sampler2D u_texture;
40
+
41
+ uniform vec4 u_shadow_color;
42
+ uniform vec4 u_shadow;
43
+ uniform vec4 u_radius;
44
+
45
+ uniform int u_asymWidth;
46
+
47
+ varying vec4 v_color;
48
+ varying vec2 v_textureCoords;
49
+ varying vec2 v_nodeCoords;
50
+
51
+ float roundedBox(vec2 p, vec2 s, vec4 r) {
52
+ r.xy = (p.x > 0.0) ? r.yz : r.xw;
53
+ r.x = (p.y > 0.0) ? r.y : r.x;
54
+ vec2 q = abs(p) - s + r.x;
55
+ return (min(max(q.x, q.y), 0.0) + length(max(q, 0.0))) - r.x;
56
+ }
57
+
58
+ float shadowBox(vec2 p, vec2 s, vec4 r) {
59
+ r.xy = (p.x > 0.0) ? r.yz : r.xw;
60
+ r.x = (p.y > 0.0) ? r.y : r.x;
61
+ vec2 q = abs(p) - s + r.x;
62
+ float dist = min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - r.x;
63
+ return 1.0 - smoothstep(-(u_shadow.w), (u_shadow.w + u_shadow.z), dist);
64
+ }
65
+
66
+ void main() {
67
+ vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
68
+ vec2 halfDimensions = (u_dimensions * 0.5);
69
+
70
+ vec2 boxUv = v_nodeCoords.xy * u_dimensions - halfDimensions;
71
+ float boxDist = roundedBox(boxUv, halfDimensions, u_radius);
72
+
73
+ float roundedAlpha = 1.0 - smoothstep(0.0, u_pixelRatio, boxDist);
74
+
75
+ float shadowAlpha = shadowBox(boxUv - u_shadow.xy, halfDimensions + u_shadow.w, u_radius + u_shadow.z);
76
+
77
+ vec4 resColor = vec4(0.0);
78
+ resColor = mix(resColor, u_shadow_color, shadowAlpha);
79
+ resColor = mix(resColor, color, min(color.a, roundedAlpha));
80
+ gl_FragColor = resColor * u_alpha;
81
+ }
82
82
  `,
83
83
  };
84
84
  //# sourceMappingURL=RoundedWithShadow.js.map