@lightningjs/renderer 3.0.0-beta4 → 3.0.0-beta6

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 (359) 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.d.ts +6 -16
  14. package/dist/src/core/CoreNode.js +25 -38
  15. package/dist/src/core/CoreNode.js.map +1 -1
  16. package/dist/src/core/CoreStuff.js +138 -0
  17. package/dist/src/core/CoreStuff.js.map +1 -0
  18. package/dist/src/core/CoreTextNode.js +1 -1
  19. package/dist/src/core/CoreTextNode.js.map +1 -1
  20. package/dist/src/core/CoreTextureManager.js +4 -5
  21. package/dist/src/core/CoreTextureManager.js.map +1 -1
  22. package/dist/src/core/CoreTexturizer.d.ts +14 -0
  23. package/dist/src/core/CoreTexturizer.js +47 -0
  24. package/dist/src/core/CoreTexturizer.js.map +1 -0
  25. package/dist/src/core/LngNode.d.ts +736 -0
  26. package/dist/src/core/LngNode.js +1174 -0
  27. package/dist/src/core/LngNode.js.map +1 -0
  28. package/dist/src/core/Matrix2DContext.d.ts +15 -0
  29. package/dist/src/core/Matrix2DContext.js +45 -0
  30. package/dist/src/core/Matrix2DContext.js.map +1 -0
  31. package/dist/src/core/ShaderNode.d.ts +10 -0
  32. package/dist/src/core/ShaderNode.js +30 -0
  33. package/dist/src/core/ShaderNode.js.map +1 -0
  34. package/dist/src/core/Stage.js +0 -3
  35. package/dist/src/core/Stage.js.map +1 -1
  36. package/dist/src/core/TextNode.d.ts +103 -0
  37. package/dist/src/core/TextNode.js +331 -0
  38. package/dist/src/core/TextNode.js.map +1 -0
  39. package/dist/src/core/TextureMemoryManager.js +3 -4
  40. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  41. package/dist/src/core/lib/Coords.d.ts +14 -0
  42. package/dist/src/core/lib/Coords.js +55 -0
  43. package/dist/src/core/lib/Coords.js.map +1 -0
  44. package/dist/src/core/lib/glm/common.d.ts +162 -0
  45. package/dist/src/core/lib/glm/common.js +81 -0
  46. package/dist/src/core/lib/glm/common.js.map +1 -0
  47. package/dist/src/core/lib/glm/index.d.ts +11 -0
  48. package/dist/src/core/lib/glm/index.js +30 -0
  49. package/dist/src/core/lib/glm/index.js.map +1 -0
  50. package/dist/src/core/lib/glm/mat2.d.ts +219 -0
  51. package/dist/src/core/lib/glm/mat2.js +396 -0
  52. package/dist/src/core/lib/glm/mat2.js.map +1 -0
  53. package/dist/src/core/lib/glm/mat2d.d.ts +237 -0
  54. package/dist/src/core/lib/glm/mat2d.js +442 -0
  55. package/dist/src/core/lib/glm/mat2d.js.map +1 -0
  56. package/dist/src/core/lib/glm/mat3.d.ts +283 -0
  57. package/dist/src/core/lib/glm/mat3.js +680 -0
  58. package/dist/src/core/lib/glm/mat3.js.map +1 -0
  59. package/dist/src/core/lib/glm/mat4.d.ts +550 -0
  60. package/dist/src/core/lib/glm/mat4.js +1802 -0
  61. package/dist/src/core/lib/glm/mat4.js.map +1 -0
  62. package/dist/src/core/lib/glm/quat.d.ts +363 -0
  63. package/dist/src/core/lib/glm/quat.js +693 -0
  64. package/dist/src/core/lib/glm/quat.js.map +1 -0
  65. package/dist/src/core/lib/glm/quat2.d.ts +356 -0
  66. package/dist/src/core/lib/glm/quat2.js +754 -0
  67. package/dist/src/core/lib/glm/quat2.js.map +1 -0
  68. package/dist/src/core/lib/glm/vec2.d.ts +365 -0
  69. package/dist/src/core/lib/glm/vec2.js +569 -0
  70. package/dist/src/core/lib/glm/vec2.js.map +1 -0
  71. package/dist/src/core/lib/glm/vec3.d.ts +406 -0
  72. package/dist/src/core/lib/glm/vec3.js +720 -0
  73. package/dist/src/core/lib/glm/vec3.js.map +1 -0
  74. package/dist/src/core/lib/glm/vec4.d.ts +330 -0
  75. package/dist/src/core/lib/glm/vec4.js +608 -0
  76. package/dist/src/core/lib/glm/vec4.js.map +1 -0
  77. package/dist/src/core/renderers/CoreRenderer.d.ts +1 -1
  78. package/dist/src/core/renderers/CoreShaderManager.d.ts +19 -0
  79. package/dist/src/core/renderers/CoreShaderManager.js +33 -0
  80. package/dist/src/core/renderers/CoreShaderManager.js.map +1 -0
  81. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +27 -0
  82. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +82 -0
  83. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +1 -0
  84. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +11 -0
  85. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +34 -0
  86. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +1 -0
  87. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +1 -1
  88. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
  89. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +35 -35
  90. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +45 -45
  91. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  92. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  93. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  94. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
  95. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  96. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
  97. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  98. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  99. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  100. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  101. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  102. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  103. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
  104. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
  105. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
  106. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  107. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  108. package/dist/src/core/scene/Scene.d.ts +59 -0
  109. package/dist/src/core/scene/Scene.js +106 -0
  110. package/dist/src/core/scene/Scene.js.map +1 -0
  111. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +8 -2
  112. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  113. package/dist/src/core/shaders/webgl/Border.js +86 -63
  114. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  115. package/dist/src/core/shaders/webgl/Default.js +47 -47
  116. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  117. package/dist/src/core/shaders/webgl/HolePunch.js +32 -32
  118. package/dist/src/core/shaders/webgl/LinearGradient.js +36 -36
  119. package/dist/src/core/shaders/webgl/RadialGradient.js +33 -33
  120. package/dist/src/core/shaders/webgl/Rounded.js +71 -71
  121. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +104 -72
  122. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  123. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +123 -86
  124. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  125. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
  126. package/dist/src/core/shaders/webgl/SdfShader.js +62 -62
  127. package/dist/src/core/shaders/webgl/Shadow.js +83 -83
  128. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +3 -1
  129. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  130. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
  131. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
  132. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
  133. package/dist/src/main-api/ICoreDriver.d.ts +27 -0
  134. package/dist/src/main-api/ICoreDriver.js +20 -0
  135. package/dist/src/main-api/ICoreDriver.js.map +1 -0
  136. package/dist/src/main-api/IRenderDriver.d.ts +20 -0
  137. package/dist/src/main-api/IRenderDriver.js +20 -0
  138. package/dist/src/main-api/IRenderDriver.js.map +1 -0
  139. package/dist/src/main-api/IShaderController.d.ts +14 -0
  140. package/dist/src/main-api/IShaderController.js +30 -0
  141. package/dist/src/main-api/IShaderController.js.map +1 -0
  142. package/dist/src/main-api/IShaderNode.d.ts +17 -0
  143. package/dist/src/main-api/IShaderNode.js +19 -0
  144. package/dist/src/main-api/IShaderNode.js.map +1 -0
  145. package/dist/src/main-api/Inspector.js +1 -1
  146. package/dist/src/main-api/Inspector.js.map +1 -1
  147. package/dist/src/main-api/Renderer.js +2 -3
  148. package/dist/src/main-api/Renderer.js.map +1 -1
  149. package/dist/src/main-api/RendererMain.d.ts +375 -0
  150. package/dist/src/main-api/RendererMain.js +365 -0
  151. package/dist/src/main-api/RendererMain.js.map +1 -0
  152. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +9 -0
  153. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +38 -0
  154. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +1 -0
  155. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +56 -0
  156. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +101 -0
  157. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -0
  158. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +32 -0
  159. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +28 -0
  160. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +1 -0
  161. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +24 -0
  162. package/dist/src/render-drivers/main/MainCoreDriver.js +118 -0
  163. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -0
  164. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +99 -0
  165. package/dist/src/render-drivers/main/MainOnlyNode.js +396 -0
  166. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -0
  167. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +6 -0
  168. package/dist/src/render-drivers/main/MainOnlyShaderController.js +15 -0
  169. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +1 -0
  170. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +7 -0
  171. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +34 -0
  172. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +1 -0
  173. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +47 -0
  174. package/dist/src/render-drivers/main/MainOnlyTextNode.js +205 -0
  175. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -0
  176. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +17 -0
  177. package/dist/src/render-drivers/main/MainRenderDriver.js +88 -0
  178. package/dist/src/render-drivers/main/MainRenderDriver.js.map +1 -0
  179. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +90 -0
  180. package/dist/src/render-drivers/threadx/NodeStruct.js +281 -0
  181. package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -0
  182. package/dist/src/render-drivers/threadx/SharedNode.d.ts +39 -0
  183. package/dist/src/render-drivers/threadx/SharedNode.js +60 -0
  184. package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -0
  185. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +44 -0
  186. package/dist/src/render-drivers/threadx/TextNodeStruct.js +201 -0
  187. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -0
  188. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +28 -0
  189. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +234 -0
  190. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -0
  191. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +20 -0
  192. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +84 -0
  193. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -0
  194. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +44 -0
  195. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +154 -0
  196. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -0
  197. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +6 -0
  198. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +16 -0
  199. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +1 -0
  200. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +7 -0
  201. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +15 -0
  202. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +1 -0
  203. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +28 -0
  204. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +55 -0
  205. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -0
  206. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +21 -0
  207. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +198 -0
  208. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +1 -0
  209. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +70 -0
  210. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +32 -0
  211. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -0
  212. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +19 -0
  213. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +177 -0
  214. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -0
  215. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +27 -0
  216. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +108 -0
  217. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -0
  218. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +1 -0
  219. package/dist/src/render-drivers/threadx/worker/renderer.js +145 -0
  220. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -0
  221. package/dist/src/render-drivers/utils.d.ts +12 -0
  222. package/dist/src/render-drivers/utils.js +69 -0
  223. package/dist/src/render-drivers/utils.js.map +1 -0
  224. package/dist/src/utils.d.ts +1 -6
  225. package/dist/src/utils.js +2 -9
  226. package/dist/src/utils.js.map +1 -1
  227. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  228. package/exports/canvas-shaders.ts +28 -28
  229. package/exports/canvas.ts +45 -45
  230. package/exports/index.ts +90 -90
  231. package/exports/inspector.ts +24 -24
  232. package/exports/utils.ts +44 -44
  233. package/exports/webgl-shaders.ts +28 -28
  234. package/exports/webgl.ts +50 -50
  235. package/package.json +2 -2
  236. package/src/common/CommonTypes.ts +146 -146
  237. package/src/common/EventEmitter.ts +77 -77
  238. package/src/common/IAnimationController.ts +92 -92
  239. package/src/common/IEventEmitter.ts +28 -28
  240. package/src/core/CoreNode.test.ts +202 -203
  241. package/src/core/CoreNode.ts +2469 -2494
  242. package/src/core/CoreShaderManager.ts +188 -188
  243. package/src/core/CoreTextNode.ts +448 -448
  244. package/src/core/CoreTextureManager.ts +600 -601
  245. package/src/core/Stage.ts +751 -754
  246. package/src/core/TextureMemoryManager.ts +394 -395
  247. package/src/core/animations/AnimationManager.ts +38 -38
  248. package/src/core/animations/CoreAnimation.ts +284 -284
  249. package/src/core/animations/CoreAnimationController.ts +157 -157
  250. package/src/core/lib/ContextSpy.ts +41 -41
  251. package/src/core/lib/ImageWorker.ts +280 -280
  252. package/src/core/lib/Matrix3d.ts +244 -244
  253. package/src/core/lib/RenderCoords.ts +71 -71
  254. package/src/core/lib/WebGlContextWrapper.ts +1374 -1374
  255. package/src/core/lib/textureCompression.ts +152 -152
  256. package/src/core/lib/textureSvg.ts +78 -78
  257. package/src/core/lib/utils.ts +386 -386
  258. package/src/core/lib/validateImageBitmap.ts +87 -87
  259. package/src/core/platforms/Platform.ts +77 -77
  260. package/src/core/platforms/web/WebPlatform.ts +84 -84
  261. package/src/core/renderers/CoreContextTexture.ts +43 -43
  262. package/src/core/renderers/CoreRenderOp.ts +22 -22
  263. package/src/core/renderers/CoreRenderer.ts +109 -109
  264. package/src/core/renderers/CoreShaderNode.ts +165 -165
  265. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  266. package/src/core/renderers/canvas/CanvasRenderer.ts +298 -298
  267. package/src/core/renderers/canvas/CanvasShaderNode.ts +99 -99
  268. package/src/core/renderers/canvas/CanvasTexture.ts +156 -156
  269. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +220 -220
  270. package/src/core/renderers/canvas/internal/ColorUtils.ts +85 -85
  271. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +86 -86
  272. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -50
  273. package/src/core/renderers/webgl/WebGlCtxTexture.ts +301 -301
  274. package/src/core/renderers/webgl/WebGlRenderOp.ts +161 -161
  275. package/src/core/renderers/webgl/WebGlRenderer.ts +750 -750
  276. package/src/core/renderers/webgl/WebGlShaderNode.ts +437 -437
  277. package/src/core/renderers/webgl/WebGlShaderProgram.ts +318 -318
  278. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  279. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  280. package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -281
  281. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  282. package/src/core/shaders/canvas/Border.ts +78 -78
  283. package/src/core/shaders/canvas/HolePunch.ts +62 -62
  284. package/src/core/shaders/canvas/LinearGradient.ts +69 -69
  285. package/src/core/shaders/canvas/RadialGradient.ts +113 -113
  286. package/src/core/shaders/canvas/Rounded.ts +55 -55
  287. package/src/core/shaders/canvas/RoundedWithBorder.ts +72 -68
  288. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -88
  289. package/src/core/shaders/canvas/RoundedWithShadow.ts +69 -69
  290. package/src/core/shaders/canvas/Shadow.ts +52 -52
  291. package/src/core/shaders/canvas/utils/render.ts +151 -151
  292. package/src/core/shaders/templates/BorderTemplate.ts +115 -115
  293. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  294. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  295. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -81
  296. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  297. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  298. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  299. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  300. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  301. package/src/core/shaders/templates/shaderUtils.ts +47 -47
  302. package/src/core/shaders/webgl/Border.ts +116 -96
  303. package/src/core/shaders/webgl/Default.ts +89 -89
  304. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  305. package/src/core/shaders/webgl/HolePunch.ts +78 -78
  306. package/src/core/shaders/webgl/LinearGradient.ts +81 -81
  307. package/src/core/shaders/webgl/RadialGradient.ts +84 -84
  308. package/src/core/shaders/webgl/Rounded.ts +117 -117
  309. package/src/core/shaders/webgl/RoundedWithBorder.ts +144 -114
  310. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +166 -133
  311. package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -98
  312. package/src/core/shaders/webgl/SdfShader.ts +134 -134
  313. package/src/core/shaders/webgl/Shadow.ts +115 -115
  314. package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
  315. package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
  316. package/src/core/text-rendering/TrFontManager.ts +183 -183
  317. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
  318. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  319. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  320. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
  321. package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
  322. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
  323. package/src/core/text-rendering/font-face-types/utils.ts +39 -39
  324. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +514 -514
  325. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +863 -863
  326. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +849 -846
  327. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  328. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  329. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  330. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  331. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
  332. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  333. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  334. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +497 -497
  335. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  336. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
  337. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  338. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  339. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  340. package/src/core/text-rendering/renderers/TextRenderer.ts +567 -567
  341. package/src/core/textures/ColorTexture.ts +102 -102
  342. package/src/core/textures/ImageTexture.ts +410 -410
  343. package/src/core/textures/NoiseTexture.ts +104 -104
  344. package/src/core/textures/RenderTexture.ts +85 -85
  345. package/src/core/textures/SubTexture.ts +205 -205
  346. package/src/core/textures/Texture.ts +358 -358
  347. package/src/core/utils.ts +227 -227
  348. package/src/env.d.ts +7 -7
  349. package/src/main-api/INode.ts +100 -100
  350. package/src/main-api/Inspector.ts +522 -522
  351. package/src/main-api/Renderer.ts +673 -675
  352. package/src/main-api/utils.ts +45 -45
  353. package/src/utils.ts +267 -267
  354. package/COPYING +0 -1
  355. package/dist/src/core/temp.js +0 -77
  356. package/dist/src/core/temp.js.map +0 -1
  357. package/scripts/please-use-pnpm.js +0 -13
  358. package/src/core/platform.ts +0 -64
  359. /package/dist/src/core/{temp.d.ts → CoreStuff.d.ts} +0 -0
@@ -0,0 +1,406 @@
1
+ import { type Float32ArrayLen3, type NumberArrayLen3 } from './common.js';
2
+ import type { Mat3 } from './mat3.js';
3
+ import type { Mat4 } from './mat4.js';
4
+ import type { Quat } from './quat.js';
5
+ export type Vec3 = Float32ArrayLen3 | NumberArrayLen3;
6
+ /**
7
+ * Creates a new, empty Vec3
8
+ *
9
+ * @returns {Vec3} a new 3D vector
10
+ */
11
+ export declare function create(): Vec3;
12
+ /**
13
+ * Creates a new Vec3 initialized with values from an existing vector
14
+ *
15
+ * @param {Vec3} a vector to clone
16
+ * @returns {Vec3} a new 3D vector
17
+ */
18
+ export declare function clone(a: Vec3): Vec3;
19
+ /**
20
+ * Calculates the length of a Vec3
21
+ *
22
+ * @param {Vec3} a vector to calculate length of
23
+ * @returns {Number} length of a
24
+ */
25
+ export declare function length(a: Vec3): number;
26
+ /**
27
+ * Creates a new Vec3 initialized with the given values
28
+ *
29
+ * @param {Number} x X component
30
+ * @param {Number} y Y component
31
+ * @param {Number} z Z component
32
+ * @returns {Vec3} a new 3D vector
33
+ */
34
+ export declare function fromValues(x: number, y: number, z: number): Vec3;
35
+ /**
36
+ * Copy the values from one Vec3 to another
37
+ *
38
+ * @param {Vec3} out the receiving vector
39
+ * @param {Vec3} a the source vector
40
+ * @returns {Vec3} out
41
+ */
42
+ export declare function copy(out: Vec3, a: Vec3): Vec3;
43
+ /**
44
+ * Set the components of a Vec3 to the given values
45
+ *
46
+ * @param {Vec3} out the receiving vector
47
+ * @param {Number} x X component
48
+ * @param {Number} y Y component
49
+ * @param {Number} z Z component
50
+ * @returns {Vec3} out
51
+ */
52
+ export declare function set(out: Vec3, x: number, y: number, z: number): Vec3;
53
+ /**
54
+ * Adds two Vec3's
55
+ *
56
+ * @param {Vec3} out the receiving vector
57
+ * @param {Vec3} a the first operand
58
+ * @param {Vec3} b the second operand
59
+ * @returns {Vec3} out
60
+ */
61
+ export declare function add(out: Vec3, a: Vec3, b: Vec3): Vec3;
62
+ /**
63
+ * Subtracts vector b from vector a
64
+ *
65
+ * @param {Vec3} out the receiving vector
66
+ * @param {Vec3} a the first operand
67
+ * @param {Vec3} b the second operand
68
+ * @returns {Vec3} out
69
+ */
70
+ export declare function subtract(out: Vec3, a: Vec3, b: Vec3): Vec3;
71
+ /**
72
+ * Multiplies two Vec3's
73
+ *
74
+ * @param {Vec3} out the receiving vector
75
+ * @param {Vec3} a the first operand
76
+ * @param {Vec3} b the second operand
77
+ * @returns {Vec3} out
78
+ */
79
+ export declare function multiply(out: Vec3, a: Vec3, b: Vec3): Vec3;
80
+ /**
81
+ * Divides two Vec3's
82
+ *
83
+ * @param {Vec3} out the receiving vector
84
+ * @param {Vec3} a the first operand
85
+ * @param {Vec3} b the second operand
86
+ * @returns {Vec3} out
87
+ */
88
+ export declare function divide(out: Vec3, a: Vec3, b: Vec3): Vec3;
89
+ /**
90
+ * Math.ceil the components of a Vec3
91
+ *
92
+ * @param {Vec3} out the receiving vector
93
+ * @param {Vec3} a vector to ceil
94
+ * @returns {Vec3} out
95
+ */
96
+ export declare function ceil(out: Vec3, a: Vec3): Vec3;
97
+ /**
98
+ * Math.floor the components of a Vec3
99
+ *
100
+ * @param {Vec3} out the receiving vector
101
+ * @param {Vec3} a vector to floor
102
+ * @returns {Vec3} out
103
+ */
104
+ export declare function floor(out: Vec3, a: Vec3): Vec3;
105
+ /**
106
+ * Returns the minimum of two Vec3's
107
+ *
108
+ * @param {Vec3} out the receiving vector
109
+ * @param {Vec3} a the first operand
110
+ * @param {Vec3} b the second operand
111
+ * @returns {Vec3} out
112
+ */
113
+ export declare function min(out: Vec3, a: Vec3, b: Vec3): Vec3;
114
+ /**
115
+ * Returns the maximum of two Vec3's
116
+ *
117
+ * @param {Vec3} out the receiving vector
118
+ * @param {Vec3} a the first operand
119
+ * @param {Vec3} b the second operand
120
+ * @returns {Vec3} out
121
+ */
122
+ export declare function max(out: Vec3, a: Vec3, b: Vec3): Vec3;
123
+ /**
124
+ * Math.round the components of a Vec3
125
+ *
126
+ * @param {Vec3} out the receiving vector
127
+ * @param {Vec3} a vector to round
128
+ * @returns {Vec3} out
129
+ */
130
+ export declare function round(out: Vec3, a: Vec3): Vec3;
131
+ /**
132
+ * Scales a Vec3 by a scalar number
133
+ *
134
+ * @param {Vec3} out the receiving vector
135
+ * @param {Vec3} a the vector to scale
136
+ * @param {Number} b amount to scale the vector by
137
+ * @returns {Vec3} out
138
+ */
139
+ export declare function scale(out: Vec3, a: Vec3, b: number): Vec3;
140
+ /**
141
+ * Adds two Vec3's after scaling the second operand by a scalar value
142
+ *
143
+ * @param {Vec3} out the receiving vector
144
+ * @param {Vec3} a the first operand
145
+ * @param {Vec3} b the second operand
146
+ * @param {Number} scale the amount to scale b by before adding
147
+ * @returns {Vec3} out
148
+ */
149
+ export declare function scaleAndAdd(out: Vec3, a: Vec3, b: Vec3, scale: number): Vec3;
150
+ /**
151
+ * Calculates the euclidian distance between two Vec3's
152
+ *
153
+ * @param {Vec3} a the first operand
154
+ * @param {Vec3} b the second operand
155
+ * @returns {Number} distance between a and b
156
+ */
157
+ export declare function distance(a: Vec3, b: Vec3): number;
158
+ /**
159
+ * Calculates the squared euclidian distance between two Vec3's
160
+ *
161
+ * @param {Vec3} a the first operand
162
+ * @param {Vec3} b the second operand
163
+ * @returns {Number} squared distance between a and b
164
+ */
165
+ export declare function squaredDistance(a: Vec3, b: Vec3): number;
166
+ /**
167
+ * Calculates the squared length of a Vec3
168
+ *
169
+ * @param {Vec3} a vector to calculate squared length of
170
+ * @returns {Number} squared length of a
171
+ */
172
+ export declare function squaredLength(a: Vec3): number;
173
+ /**
174
+ * Negates the components of a Vec3
175
+ *
176
+ * @param {Vec3} out the receiving vector
177
+ * @param {Vec3} a vector to negate
178
+ * @returns {Vec3} out
179
+ */
180
+ export declare function negate(out: Vec3, a: Vec3): Vec3;
181
+ /**
182
+ * Returns the inverse of the components of a Vec3
183
+ *
184
+ * @param {Vec3} out the receiving vector
185
+ * @param {Vec3} a vector to invert
186
+ * @returns {Vec3} out
187
+ */
188
+ export declare function inverse(out: Vec3, a: Vec3): Vec3;
189
+ /**
190
+ * Normalize a Vec3
191
+ *
192
+ * @param {Vec3} out the receiving vector
193
+ * @param {Vec3} a vector to normalize
194
+ * @returns {Vec3} out
195
+ */
196
+ export declare function normalize(out: Vec3, a: Vec3): Vec3;
197
+ /**
198
+ * Calculates the dot product of two Vec3's
199
+ *
200
+ * @param {Vec3} a the first operand
201
+ * @param {Vec3} b the second operand
202
+ * @returns {Number} dot product of a and b
203
+ */
204
+ export declare function dot(a: Vec3, b: Vec3): number;
205
+ /**
206
+ * Computes the cross product of two Vec3's
207
+ *
208
+ * @param {Vec3} out the receiving vector
209
+ * @param {Vec3} a the first operand
210
+ * @param {Vec3} b the second operand
211
+ * @returns {Vec3} out
212
+ */
213
+ export declare function cross(out: Vec3, a: Vec3, b: Vec3): Vec3;
214
+ /**
215
+ * Performs a linear interpolation between two Vec3's
216
+ *
217
+ * @param {Vec3} out the receiving vector
218
+ * @param {Vec3} a the first operand
219
+ * @param {Vec3} b the second operand
220
+ * @param {Number} t interpolation amount, in the range [0-1], between the two inputs
221
+ * @returns {Vec3} out
222
+ */
223
+ export declare function lerp(out: Vec3, a: Vec3, b: Vec3, t: number): Vec3;
224
+ /**
225
+ * Performs a spherical linear interpolation between two Vec3's
226
+ *
227
+ * @param {Vec3} out the receiving vector
228
+ * @param {Vec3} a the first operand
229
+ * @param {Vec3} b the second operand
230
+ * @param {Number} t interpolation amount, in the range [0-1], between the two inputs
231
+ * @returns {Vec3} out
232
+ */
233
+ export declare function slerp(out: Vec3, a: Vec3, b: Vec3, t: number): Vec3;
234
+ /**
235
+ * Performs a hermite interpolation with two control points
236
+ *
237
+ * @param {Vec3} out the receiving vector
238
+ * @param {Vec3} a the first operand
239
+ * @param {Vec3} b the second operand
240
+ * @param {Vec3} c the third operand
241
+ * @param {Vec3} d the fourth operand
242
+ * @param {Number} t interpolation amount, in the range [0-1], between the two inputs
243
+ * @returns {Vec3} out
244
+ */
245
+ export declare function hermite(out: Vec3, a: Vec3, b: Vec3, c: Vec3, d: Vec3, t: number): Vec3;
246
+ /**
247
+ * Performs a bezier interpolation with two control points
248
+ *
249
+ * @param {Vec3} out the receiving vector
250
+ * @param {Vec3} a the first operand
251
+ * @param {Vec3} b the second operand
252
+ * @param {Vec3} c the third operand
253
+ * @param {Vec3} d the fourth operand
254
+ * @param {Number} t interpolation amount, in the range [0-1], between the two inputs
255
+ * @returns {Vec3} out
256
+ */
257
+ export declare function bezier(out: Vec3, a: Vec3, b: Vec3, c: Vec3, d: Vec3, t: number): Vec3;
258
+ /**
259
+ * Generates a random vector with the given scale
260
+ *
261
+ * @param {Vec3} out the receiving vector
262
+ * @param {Number} [scale] Length of the resulting vector. If omitted, a unit vector will be returned
263
+ * @returns {Vec3} out
264
+ */
265
+ export declare function random(out: Vec3, scale?: number): Vec3;
266
+ /**
267
+ * Transforms the Vec3 with a mat4.
268
+ * 4th vector component is implicitly '1'
269
+ *
270
+ * @param {Vec3} out the receiving vector
271
+ * @param {Vec3} a the vector to transform
272
+ * @param {Mat4} m matrix to transform with
273
+ * @returns {Vec3} out
274
+ */
275
+ export declare function transformMat4(out: Vec3, a: Vec3, m: Mat4): Vec3;
276
+ /**
277
+ * Transforms the Vec3 with a mat3.
278
+ *
279
+ * @param {Vec3} out the receiving vector
280
+ * @param {Vec3} a the vector to transform
281
+ * @param {Mat3} m the 3x3 matrix to transform with
282
+ * @returns {Vec3} out
283
+ */
284
+ export declare function transformMat3(out: Vec3, a: Vec3, m: Mat3): Vec3;
285
+ /**
286
+ * Transforms the Vec3 with a quat
287
+ * Can also be used for dual quaternions. (Multiply it with the real part)
288
+ *
289
+ * @param {Vec3} out the receiving vector
290
+ * @param {Vec3} a the vector to transform
291
+ * @param {Quat} q quaternion to transform with
292
+ * @returns {Vec3} out
293
+ */
294
+ export declare function transformQuat(out: Vec3, a: Vec3, q: Quat): Vec3;
295
+ /**
296
+ * Rotate a 3D vector around the x-axis
297
+ * @param {Vec3} out The receiving Vec3
298
+ * @param {Vec3} a The Vec3 point to rotate
299
+ * @param {Vec3} b The origin of the rotation
300
+ * @param {Number} rad The angle of rotation in radians
301
+ * @returns {Vec3} out
302
+ */
303
+ export declare function rotateX(out: Vec3, a: Vec3, b: Vec3, rad: number): Vec3;
304
+ /**
305
+ * Rotate a 3D vector around the y-axis
306
+ * @param {Vec3} out The receiving Vec3
307
+ * @param {Vec3} a The Vec3 point to rotate
308
+ * @param {Vec3} b The origin of the rotation
309
+ * @param {Number} rad The angle of rotation in radians
310
+ * @returns {Vec3} out
311
+ */
312
+ export declare function rotateY(out: Vec3, a: Vec3, b: Vec3, rad: number): Vec3;
313
+ /**
314
+ * Rotate a 3D vector around the z-axis
315
+ * @param {Vec3} out The receiving Vec3
316
+ * @param {Vec3} a The Vec3 point to rotate
317
+ * @param {Vec3} b The origin of the rotation
318
+ * @param {Number} rad The angle of rotation in radians
319
+ * @returns {Vec3} out
320
+ */
321
+ export declare function rotateZ(out: Vec3, a: Vec3, b: Vec3, rad: number): Vec3;
322
+ /**
323
+ * Get the angle between two 3D vectors
324
+ * @param {Vec3} a The first operand
325
+ * @param {Vec3} b The second operand
326
+ * @returns {Number} The angle in radians
327
+ */
328
+ export declare function angle(a: Vec3, b: Vec3): number;
329
+ /**
330
+ * Set the components of a Vec3 to zero
331
+ *
332
+ * @param {Vec3} out the receiving vector
333
+ * @returns {Vec3} out
334
+ */
335
+ export declare function zero(out: Vec3): Vec3;
336
+ /**
337
+ * Returns a string representation of a vector
338
+ *
339
+ * @param {Vec3} a vector to represent as a string
340
+ * @returns {String} string representation of the vector
341
+ */
342
+ export declare function str(a: Vec3): string;
343
+ /**
344
+ * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)
345
+ *
346
+ * @param {Vec3} a The first vector.
347
+ * @param {Vec3} b The second vector.
348
+ * @returns {Boolean} True if the vectors are equal, false otherwise.
349
+ */
350
+ export declare function exactEquals(a: Vec3, b: Vec3): boolean;
351
+ /**
352
+ * Returns whether or not the vectors have approximately the same elements in the same position.
353
+ *
354
+ * @param {Vec3} a The first vector.
355
+ * @param {Vec3} b The second vector.
356
+ * @returns {Boolean} True if the vectors are equal, false otherwise.
357
+ */
358
+ export declare function equals(a: Vec3, b: Vec3): boolean;
359
+ /**
360
+ * Alias for {@link subtract}
361
+ * @function
362
+ */
363
+ export declare const sub: typeof subtract;
364
+ /**
365
+ * Alias for {@link multiply}
366
+ * @function
367
+ */
368
+ export declare const mul: typeof multiply;
369
+ /**
370
+ * Alias for {@link divide}
371
+ * @function
372
+ */
373
+ export declare const div: typeof divide;
374
+ /**
375
+ * Alias for {@link distance}
376
+ * @function
377
+ */
378
+ export declare const dist: typeof distance;
379
+ /**
380
+ * Alias for {@link squaredDistance}
381
+ * @function
382
+ */
383
+ export declare const sqrDist: typeof squaredDistance;
384
+ /**
385
+ * Alias for {@link length}
386
+ * @function
387
+ */
388
+ export declare const len: typeof length;
389
+ /**
390
+ * Alias for {@link squaredLength}
391
+ * @function
392
+ */
393
+ export declare const sqrLen: typeof squaredLength;
394
+ /**
395
+ * Perform some operation over an array of Vec3s.
396
+ *
397
+ * @param {Array} a the array of vectors to iterate over
398
+ * @param {Number} stride Number of elements between the start of each Vec3. If 0 assumes tightly packed
399
+ * @param {Number} offset Number of elements to skip at the beginning of the array
400
+ * @param {Number} count Number of Vec3s to iterate over. If 0 iterates over entire array
401
+ * @param {Function} fn Function to call for each vector in the array
402
+ * @param {Object} [arg] additional argument to pass to fn
403
+ * @returns {Array} a
404
+ * @function
405
+ */
406
+ export declare const forEach: (a: Vec3[], stride: number, offset: number, count: number, fn: (a: Vec3[], b: Vec3[], arg: number) => void, arg: number) => Vec3[];