@lightningjs/renderer 2.16.0 → 3.0.0-beta10

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 (443) hide show
  1. package/COPYING +1 -0
  2. package/LICENSE +202 -202
  3. package/NOTICE +3 -3
  4. package/README.md +133 -147
  5. package/dist/exports/canvas.d.ts +8 -2
  6. package/dist/exports/canvas.js +8 -2
  7. package/dist/exports/canvas.js.map +1 -1
  8. package/dist/exports/index.d.ts +16 -13
  9. package/dist/exports/index.js +8 -9
  10. package/dist/exports/index.js.map +1 -1
  11. package/dist/exports/utils.d.ts +2 -1
  12. package/dist/exports/utils.js +2 -1
  13. package/dist/exports/utils.js.map +1 -1
  14. package/dist/exports/webgl.d.ts +11 -2
  15. package/dist/exports/webgl.js +11 -2
  16. package/dist/exports/webgl.js.map +1 -1
  17. package/dist/src/core/CoreNode.d.ts +47 -76
  18. package/dist/src/core/CoreNode.js +322 -309
  19. package/dist/src/core/CoreNode.js.map +1 -1
  20. package/dist/src/core/CoreShaderManager.d.ts +29 -73
  21. package/dist/src/core/CoreShaderManager.js +110 -97
  22. package/dist/src/core/CoreShaderManager.js.map +1 -1
  23. package/dist/src/core/CoreTextNode.d.ts +58 -87
  24. package/dist/src/core/CoreTextNode.js +243 -237
  25. package/dist/src/core/CoreTextNode.js.map +1 -1
  26. package/dist/src/core/CoreTextureManager.d.ts +2 -0
  27. package/dist/src/core/CoreTextureManager.js +12 -10
  28. package/dist/src/core/CoreTextureManager.js.map +1 -1
  29. package/dist/src/core/Stage.d.ts +58 -53
  30. package/dist/src/core/Stage.js +260 -196
  31. package/dist/src/core/Stage.js.map +1 -1
  32. package/dist/src/core/TextureMemoryManager.d.ts +3 -0
  33. package/dist/src/core/TextureMemoryManager.js +78 -74
  34. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  35. package/dist/src/core/animations/CoreAnimation.d.ts +0 -1
  36. package/dist/src/core/animations/CoreAnimation.js +6 -52
  37. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  38. package/dist/src/core/lib/ImageWorker.js +1 -1
  39. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  40. package/dist/src/core/lib/RenderCoords.d.ts +9 -10
  41. package/dist/src/core/lib/RenderCoords.js +43 -55
  42. package/dist/src/core/lib/RenderCoords.js.map +1 -1
  43. package/dist/src/core/lib/WebGlContextWrapper.d.ts +117 -55
  44. package/dist/src/core/lib/WebGlContextWrapper.js +196 -157
  45. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  46. package/dist/src/core/lib/colorCache.d.ts +1 -0
  47. package/dist/src/core/lib/colorCache.js +19 -0
  48. package/dist/src/core/lib/colorCache.js.map +1 -0
  49. package/dist/src/core/lib/colorParser.d.ts +21 -0
  50. package/dist/src/core/lib/colorParser.js +72 -0
  51. package/dist/src/core/lib/colorParser.js.map +1 -0
  52. package/dist/src/core/lib/textureCompression.js +0 -1
  53. package/dist/src/core/lib/textureCompression.js.map +1 -1
  54. package/dist/src/core/lib/utils.d.ts +3 -1
  55. package/dist/src/core/lib/utils.js +19 -0
  56. package/dist/src/core/lib/utils.js.map +1 -1
  57. package/dist/src/core/lib/validateImageBitmap.d.ts +2 -1
  58. package/dist/src/core/lib/validateImageBitmap.js +4 -4
  59. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  60. package/dist/src/core/platforms/web/WebPlatform.js +29 -3
  61. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
  62. package/dist/src/core/renderers/CoreRenderer.d.ts +15 -22
  63. package/dist/src/core/renderers/CoreRenderer.js +0 -6
  64. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  65. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +0 -2
  66. package/dist/src/core/renderers/canvas/CanvasRenderer.js +7 -21
  67. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  68. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +2 -1
  69. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
  70. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +2 -2
  71. package/dist/src/core/renderers/canvas/CanvasTexture.js +8 -7
  72. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  73. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -13
  74. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +192 -113
  75. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  76. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +2 -0
  77. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +14 -0
  78. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  79. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +3 -0
  80. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  81. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +5 -6
  82. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +30 -18
  83. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  84. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +4 -2
  85. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +31 -13
  86. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  87. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +32 -5
  88. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +50 -0
  89. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  90. package/dist/src/core/shaders/canvas/Border.js +1 -1
  91. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  92. package/dist/src/core/shaders/webgl/Border.js +82 -82
  93. package/dist/src/core/shaders/webgl/Default.js +47 -47
  94. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  95. package/dist/src/core/shaders/webgl/HolePunch.js +32 -32
  96. package/dist/src/core/shaders/webgl/LinearGradient.js +36 -36
  97. package/dist/src/core/shaders/webgl/RadialGradient.js +33 -33
  98. package/dist/src/core/shaders/webgl/Rounded.js +71 -71
  99. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +111 -111
  100. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +130 -130
  101. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
  102. package/dist/src/core/shaders/webgl/SdfShader.js +62 -62
  103. package/dist/src/core/shaders/webgl/Shadow.js +83 -83
  104. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +4 -4
  105. package/dist/src/core/text-rendering/CanvasFontHandler.js +19 -6
  106. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
  107. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +18 -2
  108. package/dist/src/core/text-rendering/CanvasTextRenderer.js +296 -69
  109. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
  110. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +4 -4
  111. package/dist/src/core/text-rendering/SdfFontHandler.js +6 -6
  112. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  113. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +4 -8
  114. package/dist/src/core/text-rendering/SdfTextRenderer.js +68 -37
  115. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
  116. package/dist/src/core/text-rendering/TextRenderer.d.ts +37 -113
  117. package/dist/src/core/text-rendering/TextRenderer.js +1 -51
  118. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -1
  119. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  120. package/dist/src/core/text-rendering/canvas/Settings.d.ts +14 -3
  121. package/dist/src/core/text-rendering/canvas/Utils.d.ts +3 -2
  122. package/dist/src/core/text-rendering/canvas/Utils.js +9 -4
  123. package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -1
  124. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +32 -9
  125. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +52 -57
  126. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -1
  127. package/dist/src/core/text-rendering/canvas/draw.d.ts +3 -10
  128. package/dist/src/core/text-rendering/canvas/draw.js +26 -27
  129. package/dist/src/core/text-rendering/canvas/draw.js.map +1 -1
  130. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  131. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  132. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +5 -0
  133. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  134. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +7 -1
  135. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +50 -2
  136. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  137. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +2 -3
  138. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +42 -83
  139. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  140. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +1 -1
  141. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +66 -8
  142. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  143. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +14 -4
  144. package/dist/src/core/text-rendering/renderers/TextRenderer.js +3 -0
  145. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  146. package/dist/src/core/text-rendering/sdf/Utils.d.ts +26 -0
  147. package/dist/src/core/text-rendering/sdf/Utils.js +304 -0
  148. package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -0
  149. package/dist/src/core/text-rendering/sdf/index.d.ts +1 -0
  150. package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts → dist/src/core/text-rendering/sdf/index.js} +3 -21
  151. package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
  152. package/dist/src/core/textures/ImageTexture.d.ts +1 -0
  153. package/dist/src/core/textures/ImageTexture.js +11 -4
  154. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  155. package/dist/src/core/textures/Texture.d.ts +6 -1
  156. package/dist/src/core/textures/Texture.js.map +1 -1
  157. package/dist/src/main-api/INode.d.ts +9 -9
  158. package/dist/src/main-api/Inspector.d.ts +6 -1
  159. package/dist/src/main-api/Inspector.js +43 -7
  160. package/dist/src/main-api/Inspector.js.map +1 -1
  161. package/dist/src/main-api/Renderer.d.ts +83 -136
  162. package/dist/src/main-api/Renderer.js +139 -91
  163. package/dist/src/main-api/Renderer.js.map +1 -1
  164. package/dist/src/utils.d.ts +5 -4
  165. package/dist/src/utils.js +20 -9
  166. package/dist/src/utils.js.map +1 -1
  167. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  168. package/exports/canvas-shaders.ts +28 -0
  169. package/exports/canvas.ts +45 -39
  170. package/exports/index.ts +82 -89
  171. package/exports/inspector.ts +24 -24
  172. package/exports/utils.ts +50 -44
  173. package/exports/webgl-shaders.ts +28 -0
  174. package/exports/webgl.ts +52 -38
  175. package/package.json +4 -4
  176. package/src/common/CommonTypes.ts +146 -146
  177. package/src/common/EventEmitter.ts +77 -77
  178. package/src/common/IAnimationController.ts +92 -92
  179. package/src/common/IEventEmitter.ts +28 -28
  180. package/src/core/CoreNode.test.ts +202 -202
  181. package/src/core/CoreNode.ts +2491 -2487
  182. package/src/core/CoreShaderManager.ts +188 -292
  183. package/src/core/CoreTextNode.ts +443 -455
  184. package/src/core/CoreTextureManager.ts +565 -561
  185. package/src/core/Stage.ts +906 -826
  186. package/src/core/TextureMemoryManager.ts +445 -431
  187. package/src/core/animations/AnimationManager.ts +38 -38
  188. package/src/core/animations/CoreAnimation.ts +291 -347
  189. package/src/core/animations/CoreAnimationController.ts +166 -166
  190. package/src/core/lib/ContextSpy.ts +41 -41
  191. package/src/core/lib/ImageWorker.ts +286 -280
  192. package/src/core/lib/Matrix3d.ts +244 -244
  193. package/src/core/lib/RenderCoords.ts +71 -86
  194. package/src/core/lib/WebGlContextWrapper.ts +1381 -1332
  195. package/src/core/lib/colorCache.ts +20 -0
  196. package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +85 -69
  197. package/src/core/lib/textureCompression.ts +152 -152
  198. package/src/core/lib/textureSvg.ts +78 -78
  199. package/src/core/lib/utils.ts +412 -388
  200. package/src/core/lib/validateImageBitmap.ts +87 -76
  201. package/src/core/platforms/Platform.ts +77 -0
  202. package/src/core/platforms/web/WebPlatform.ts +121 -0
  203. package/src/core/renderers/CoreContextTexture.ts +43 -43
  204. package/src/core/renderers/CoreRenderOp.ts +22 -22
  205. package/src/core/renderers/CoreRenderer.ts +110 -115
  206. package/src/core/renderers/CoreShaderNode.ts +175 -0
  207. package/{dist/src/core/renderers/CoreShader.js → src/core/renderers/CoreShaderProgram.ts} +23 -28
  208. package/src/core/renderers/canvas/CanvasRenderer.ts +283 -0
  209. package/src/core/renderers/canvas/CanvasShaderNode.ts +96 -0
  210. package/src/core/renderers/canvas/{CanvasCoreTexture.ts → CanvasTexture.ts} +156 -153
  211. package/src/core/renderers/webgl/{WebGlCoreCtxRenderTexture.ts → WebGlCtxRenderTexture.ts} +91 -91
  212. package/src/core/renderers/webgl/{WebGlCoreCtxSubTexture.ts → WebGlCtxSubTexture.ts} +50 -50
  213. package/src/core/renderers/webgl/{WebGlCoreCtxTexture.ts → WebGlCtxTexture.ts} +310 -313
  214. package/src/core/renderers/webgl/WebGlRenderOp.ts +167 -0
  215. package/src/core/renderers/webgl/{WebGlCoreRenderer.ts → WebGlRenderer.ts} +747 -821
  216. package/src/core/renderers/webgl/WebGlShaderNode.ts +435 -0
  217. package/src/core/renderers/webgl/WebGlShaderProgram.ts +341 -0
  218. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  219. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  220. package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -143
  221. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  222. package/src/core/shaders/canvas/Border.ts +75 -0
  223. package/src/core/shaders/canvas/HolePunch.ts +62 -0
  224. package/src/core/shaders/canvas/LinearGradient.ts +71 -0
  225. package/src/core/shaders/canvas/RadialGradient.ts +99 -0
  226. package/src/core/shaders/canvas/Rounded.ts +55 -0
  227. package/src/core/shaders/canvas/RoundedWithBorder.ts +74 -0
  228. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +90 -0
  229. package/src/core/shaders/canvas/RoundedWithShadow.ts +70 -0
  230. package/src/core/shaders/canvas/Shadow.ts +52 -0
  231. package/src/core/shaders/canvas/utils/render.ts +151 -0
  232. package/src/core/shaders/templates/BorderTemplate.ts +115 -0
  233. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -0
  234. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -0
  235. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -0
  236. package/src/core/shaders/templates/RoundedTemplate.ts +98 -0
  237. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -0
  238. package/{dist/src/core/shaders/templates/shaderUtils.js → src/core/shaders/templates/RoundedWithBorderTemplate.ts} +35 -41
  239. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -0
  240. package/src/core/shaders/templates/ShadowTemplate.ts +106 -0
  241. package/src/core/shaders/utils.ts +46 -0
  242. package/src/core/shaders/webgl/Border.ts +116 -0
  243. package/src/core/shaders/webgl/Default.ts +89 -0
  244. package/src/core/shaders/webgl/DefaultBatched.ts +129 -0
  245. package/src/core/shaders/webgl/HolePunch.ts +75 -0
  246. package/src/core/shaders/webgl/LinearGradient.ts +82 -0
  247. package/src/core/shaders/webgl/RadialGradient.ts +85 -0
  248. package/src/core/shaders/webgl/Rounded.ts +117 -0
  249. package/src/core/shaders/webgl/RoundedWithBorder.ts +155 -0
  250. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +175 -0
  251. package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -0
  252. package/src/core/shaders/webgl/SdfShader.ts +134 -0
  253. package/src/core/shaders/webgl/Shadow.ts +115 -0
  254. package/src/core/text-rendering/CanvasFontHandler.ts +176 -0
  255. package/src/core/text-rendering/CanvasTextRenderer.ts +622 -0
  256. package/src/core/text-rendering/SdfFontHandler.ts +517 -0
  257. package/src/core/text-rendering/SdfTextRenderer.ts +466 -0
  258. package/src/core/text-rendering/TextRenderer.ts +404 -0
  259. package/src/core/text-rendering/{TextTextureRendererUtils.ts → Utils.ts} +257 -263
  260. package/src/core/text-rendering/canvas/Settings.ts +99 -0
  261. package/src/core/text-rendering/canvas/Utils.test.ts +206 -0
  262. package/src/core/text-rendering/canvas/Utils.ts +178 -0
  263. package/src/core/text-rendering/canvas/calculateRenderInfo.ts +299 -0
  264. package/src/core/text-rendering/canvas/draw.ts +165 -0
  265. package/src/core/text-rendering/sdf/Utils.test.ts +402 -0
  266. package/src/core/text-rendering/sdf/Utils.ts +436 -0
  267. package/src/core/text-rendering/{renderers/SdfTextRenderer/internal/constants.ts → sdf/index.ts} +20 -32
  268. package/src/core/textures/ColorTexture.ts +102 -102
  269. package/src/core/textures/ImageTexture.ts +418 -400
  270. package/src/core/textures/NoiseTexture.ts +104 -104
  271. package/src/core/textures/RenderTexture.ts +85 -85
  272. package/src/core/textures/SubTexture.ts +205 -205
  273. package/src/core/textures/Texture.ts +381 -376
  274. package/src/core/utils.ts +227 -227
  275. package/src/env.d.ts +7 -7
  276. package/src/main-api/INode.ts +100 -101
  277. package/src/main-api/Inspector.ts +567 -522
  278. package/src/main-api/Renderer.ts +873 -807
  279. package/src/main-api/utils.ts +45 -45
  280. package/src/utils.ts +267 -248
  281. package/dist/src/core/platform.d.ts +0 -10
  282. package/dist/src/core/platform.js +0 -81
  283. package/dist/src/core/platform.js.map +0 -1
  284. package/dist/src/core/renderers/CoreShader.d.ts +0 -9
  285. package/dist/src/core/renderers/CoreShader.js.map +0 -1
  286. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -33
  287. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +0 -250
  288. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +0 -1
  289. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -16
  290. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +0 -124
  291. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +0 -1
  292. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +0 -10
  293. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +0 -43
  294. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +0 -1
  295. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +0 -12
  296. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +0 -58
  297. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +0 -1
  298. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +0 -9
  299. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +0 -38
  300. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +0 -1
  301. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -56
  302. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -239
  303. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +0 -1
  304. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +0 -34
  305. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +0 -114
  306. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +0 -1
  307. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -133
  308. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +0 -616
  309. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +0 -1
  310. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +0 -83
  311. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -233
  312. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
  313. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +0 -9
  314. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +0 -87
  315. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +0 -1
  316. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +0 -10
  317. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -119
  318. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +0 -1
  319. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +0 -29
  320. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +0 -413
  321. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +0 -1
  322. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +0 -28
  323. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +0 -131
  324. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +0 -1
  325. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +0 -47
  326. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -160
  327. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +0 -1
  328. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +0 -31
  329. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +0 -71
  330. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +0 -1
  331. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +0 -30
  332. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +0 -58
  333. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +0 -1
  334. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +0 -31
  335. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +0 -71
  336. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +0 -1
  337. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +0 -31
  338. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +0 -71
  339. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +0 -1
  340. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +0 -31
  341. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +0 -71
  342. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +0 -1
  343. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +0 -9
  344. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +0 -136
  345. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +0 -1
  346. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +0 -36
  347. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +0 -85
  348. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +0 -1
  349. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +0 -45
  350. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +0 -104
  351. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +0 -1
  352. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +0 -22
  353. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +0 -45
  354. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +0 -1
  355. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +0 -58
  356. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +0 -80
  357. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +0 -1
  358. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -35
  359. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +0 -129
  360. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +0 -1
  361. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -39
  362. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +0 -116
  363. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +0 -1
  364. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +0 -61
  365. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +0 -127
  366. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +0 -1
  367. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +0 -40
  368. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +0 -71
  369. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +0 -1
  370. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +0 -115
  371. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +0 -61
  372. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +0 -1
  373. package/dist/src/core/shaders/templates/shaderUtils.d.ts +0 -5
  374. package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
  375. package/dist/src/core/shaders/webgl/Spinner.d.ts +0 -1
  376. package/dist/src/core/shaders/webgl/Spinner.js +0 -2
  377. package/dist/src/core/shaders/webgl/Spinner.js.map +0 -1
  378. package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +0 -12
  379. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +0 -61
  380. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +0 -1
  381. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +0 -45
  382. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +0 -69
  383. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +0 -1
  384. package/dist/src/main-api/DynamicShaderController.d.ts +0 -29
  385. package/dist/src/main-api/DynamicShaderController.js +0 -58
  386. package/dist/src/main-api/DynamicShaderController.js.map +0 -1
  387. package/dist/src/main-api/ShaderController.d.ts +0 -31
  388. package/dist/src/main-api/ShaderController.js +0 -37
  389. package/dist/src/main-api/ShaderController.js.map +0 -1
  390. package/scripts/please-use-pnpm.js +0 -13
  391. package/src/core/platform.ts +0 -100
  392. package/src/core/renderers/CoreShader.ts +0 -41
  393. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +0 -375
  394. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -231
  395. package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +0 -48
  396. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +0 -125
  397. package/src/core/renderers/webgl/WebGlCoreShader.ts +0 -365
  398. package/src/core/renderers/webgl/shaders/DefaultShader.ts +0 -93
  399. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -132
  400. package/src/core/renderers/webgl/shaders/DynamicShader.ts +0 -580
  401. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +0 -167
  402. package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -204
  403. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +0 -101
  404. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +0 -87
  405. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +0 -101
  406. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +0 -101
  407. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +0 -101
  408. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +0 -159
  409. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +0 -127
  410. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +0 -148
  411. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +0 -67
  412. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +0 -157
  413. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +0 -171
  414. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +0 -168
  415. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +0 -187
  416. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +0 -110
  417. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +0 -196
  418. package/src/core/text-rendering/TextRenderingUtils.ts +0 -36
  419. package/src/core/text-rendering/TrFontManager.ts +0 -183
  420. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
  421. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
  422. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
  423. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
  424. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
  425. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
  426. package/src/core/text-rendering/font-face-types/utils.ts +0 -39
  427. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -509
  428. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -808
  429. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -853
  430. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
  431. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
  432. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
  433. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
  434. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
  435. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -408
  436. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
  437. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
  438. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
  439. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
  440. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +0 -40
  441. package/src/core/text-rendering/renderers/TextRenderer.ts +0 -557
  442. package/src/main-api/DynamicShaderController.ts +0 -104
  443. package/src/main-api/ShaderController.ts +0 -80
@@ -41,6 +41,7 @@ export class WebGlContextWrapper {
41
41
  boundArrayBuffer;
42
42
  boundElementArrayBuffer;
43
43
  curProgram;
44
+ curUniformLocations = {};
44
45
  //#endregion Cached WebGL State
45
46
  //#region Canvas
46
47
  canvas;
@@ -176,9 +177,8 @@ export class WebGlContextWrapper {
176
177
  * @param textureUnit
177
178
  */
178
179
  activeTexture(textureUnit) {
179
- const { gl } = this;
180
180
  if (this.activeTextureUnit !== textureUnit) {
181
- gl.activeTexture(textureUnit + gl.TEXTURE0);
181
+ this.gl.activeTexture(textureUnit + this.gl.TEXTURE0);
182
182
  this.activeTextureUnit = textureUnit;
183
183
  }
184
184
  }
@@ -192,16 +192,14 @@ export class WebGlContextWrapper {
192
192
  * @param texture
193
193
  */
194
194
  bindTexture(texture) {
195
- const { gl, activeTextureUnit, texture2dUnits } = this;
196
- if (texture2dUnits[activeTextureUnit] === texture) {
195
+ if (this.texture2dUnits[this.activeTextureUnit] === texture) {
197
196
  return;
198
197
  }
199
- texture2dUnits[activeTextureUnit] = texture;
200
- gl.bindTexture(this.gl.TEXTURE_2D, texture);
198
+ this.texture2dUnits[this.activeTextureUnit] = texture;
199
+ this.gl.bindTexture(this.gl.TEXTURE_2D, texture);
201
200
  }
202
201
  _getActiveTexture() {
203
- const { activeTextureUnit, texture2dUnits } = this;
204
- return texture2dUnits[activeTextureUnit];
202
+ return this.texture2dUnits[this.activeTextureUnit];
205
203
  }
206
204
  /**
207
205
  * ```
@@ -215,29 +213,27 @@ export class WebGlContextWrapper {
215
213
  * @returns
216
214
  */
217
215
  texParameteri(pname, param) {
218
- const { gl, texture2dParams } = this;
219
216
  const activeTexture = this._getActiveTexture();
220
217
  if (!activeTexture) {
221
218
  throw new Error('No active texture');
222
219
  }
223
- let textureParams = texture2dParams.get(activeTexture);
220
+ let textureParams = this.texture2dParams.get(activeTexture);
224
221
  if (!textureParams) {
225
222
  textureParams = {};
226
- texture2dParams.set(activeTexture, textureParams);
223
+ this.texture2dParams.set(activeTexture, textureParams);
227
224
  }
228
225
  if (textureParams[pname] === param) {
229
226
  return;
230
227
  }
231
228
  textureParams[pname] = param;
232
- gl.texParameteri(gl.TEXTURE_2D, pname, param);
229
+ this.gl.texParameteri(this.gl.TEXTURE_2D, pname, param);
233
230
  }
234
231
  texImage2D(level, internalFormat, widthOrFormat, heightOrType, borderOrSource, format, type, pixels) {
235
- const { gl } = this;
236
232
  if (format) {
237
- gl.texImage2D(gl.TEXTURE_2D, level, internalFormat, widthOrFormat, heightOrType, borderOrSource, format, type, pixels);
233
+ this.gl.texImage2D(this.gl.TEXTURE_2D, level, internalFormat, widthOrFormat, heightOrType, borderOrSource, format, type, pixels);
238
234
  }
239
235
  else {
240
- gl.texImage2D(gl.TEXTURE_2D, level, internalFormat, widthOrFormat, heightOrType, borderOrSource);
236
+ this.gl.texImage2D(this.gl.TEXTURE_2D, level, internalFormat, widthOrFormat, heightOrType, borderOrSource);
241
237
  }
242
238
  }
243
239
  /**
@@ -249,8 +245,7 @@ export class WebGlContextWrapper {
249
245
  * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
250
246
  */
251
247
  compressedTexImage2D(level, internalformat, width, height, border, data) {
252
- const { gl } = this;
253
- gl.compressedTexImage2D(gl.TEXTURE_2D, level, internalformat, width, height, border, data);
248
+ this.gl.compressedTexImage2D(this.gl.TEXTURE_2D, level, internalformat, width, height, border, data);
254
249
  }
255
250
  /**
256
251
  * ```
@@ -261,8 +256,7 @@ export class WebGlContextWrapper {
261
256
  * @param param
262
257
  */
263
258
  pixelStorei(pname, param) {
264
- const { gl } = this;
265
- gl.pixelStorei(pname, param);
259
+ this.gl.pixelStorei(pname, param);
266
260
  }
267
261
  /**
268
262
  * ```
@@ -273,8 +267,7 @@ export class WebGlContextWrapper {
273
267
  * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
274
268
  */
275
269
  generateMipmap() {
276
- const { gl } = this;
277
- gl.generateMipmap(gl.TEXTURE_2D);
270
+ this.gl.generateMipmap(this.gl.TEXTURE_2D);
278
271
  }
279
272
  /**
280
273
  * ```
@@ -284,8 +277,7 @@ export class WebGlContextWrapper {
284
277
  * @returns
285
278
  */
286
279
  createTexture() {
287
- const { gl } = this;
288
- return gl.createTexture();
280
+ return this.gl.createTexture();
289
281
  }
290
282
  /**
291
283
  * ```
@@ -295,11 +287,10 @@ export class WebGlContextWrapper {
295
287
  * @param texture
296
288
  */
297
289
  deleteTexture(texture) {
298
- const { gl } = this;
299
290
  if (texture) {
300
291
  this.texture2dParams.delete(texture);
301
292
  }
302
- gl.deleteTexture(texture);
293
+ this.gl.deleteTexture(texture);
303
294
  }
304
295
  /**
305
296
  * ```
@@ -316,8 +307,7 @@ export class WebGlContextWrapper {
316
307
  * ```
317
308
  */
318
309
  viewport(x, y, width, height) {
319
- const { gl } = this;
320
- gl.viewport(x, y, width, height);
310
+ this.gl.viewport(x, y, width, height);
321
311
  }
322
312
  /**
323
313
  * ```
@@ -330,8 +320,7 @@ export class WebGlContextWrapper {
330
320
  * @param alpha
331
321
  */
332
322
  clearColor(red, green, blue, alpha) {
333
- const { gl } = this;
334
- gl.clearColor(red, green, blue, alpha);
323
+ this.gl.clearColor(red, green, blue, alpha);
335
324
  }
336
325
  /**
337
326
  * ```
@@ -340,15 +329,14 @@ export class WebGlContextWrapper {
340
329
  * @param enable
341
330
  */
342
331
  setScissorTest(enable) {
343
- const { gl, scissorEnabled } = this;
344
- if (enable === scissorEnabled) {
332
+ if (enable === this.scissorEnabled) {
345
333
  return;
346
334
  }
347
335
  if (enable) {
348
- gl.enable(gl.SCISSOR_TEST);
336
+ this.gl.enable(this.gl.SCISSOR_TEST);
349
337
  }
350
338
  else {
351
- gl.disable(gl.SCISSOR_TEST);
339
+ this.gl.disable(this.gl.SCISSOR_TEST);
352
340
  }
353
341
  this.scissorEnabled = enable;
354
342
  }
@@ -363,12 +351,11 @@ export class WebGlContextWrapper {
363
351
  * @param height
364
352
  */
365
353
  scissor(x, y, width, height) {
366
- const { gl, scissorX, scissorY, scissorWidth, scissorHeight } = this;
367
- if (x !== scissorX ||
368
- y !== scissorY ||
369
- width !== scissorWidth ||
370
- height !== scissorHeight) {
371
- gl.scissor(x, y, width, height);
354
+ if (x !== this.scissorX ||
355
+ y !== this.scissorY ||
356
+ width !== this.scissorWidth ||
357
+ height !== this.scissorHeight) {
358
+ this.gl.scissor(x, y, width, height);
372
359
  this.scissorX = x;
373
360
  this.scissorY = y;
374
361
  this.scissorWidth = width;
@@ -384,15 +371,14 @@ export class WebGlContextWrapper {
384
371
  * @returns
385
372
  */
386
373
  setBlend(blend) {
387
- const { gl, blendEnabled } = this;
388
- if (blend === blendEnabled) {
374
+ if (blend === this.blendEnabled) {
389
375
  return;
390
376
  }
391
377
  if (blend) {
392
- gl.enable(gl.BLEND);
378
+ this.gl.enable(this.gl.BLEND);
393
379
  }
394
380
  else {
395
- gl.disable(gl.BLEND);
381
+ this.gl.disable(this.gl.BLEND);
396
382
  }
397
383
  this.blendEnabled = blend;
398
384
  }
@@ -405,12 +391,11 @@ export class WebGlContextWrapper {
405
391
  * @param dst
406
392
  */
407
393
  blendFunc(src, dst) {
408
- const { gl, blendSrcRgb, blendDstRgb, blendSrcAlpha, blendDstAlpha } = this;
409
- if (src !== blendSrcRgb ||
410
- dst !== blendDstRgb ||
411
- src !== blendSrcAlpha ||
412
- dst !== blendDstAlpha) {
413
- gl.blendFunc(src, dst);
394
+ if (src !== this.blendSrcRgb ||
395
+ dst !== this.blendDstRgb ||
396
+ src !== this.blendSrcAlpha ||
397
+ dst !== this.blendDstAlpha) {
398
+ this.gl.blendFunc(src, dst);
414
399
  this.blendSrcRgb = src;
415
400
  this.blendDstRgb = dst;
416
401
  this.blendSrcAlpha = src;
@@ -425,8 +410,7 @@ export class WebGlContextWrapper {
425
410
  * @returns
426
411
  */
427
412
  createBuffer() {
428
- const { gl } = this;
429
- return gl.createBuffer();
413
+ return this.gl.createBuffer();
430
414
  }
431
415
  /**
432
416
  * ```
@@ -435,8 +419,7 @@ export class WebGlContextWrapper {
435
419
  * @returns
436
420
  */
437
421
  createFramebuffer() {
438
- const { gl } = this;
439
- return gl.createFramebuffer();
422
+ return this.gl.createFramebuffer();
440
423
  }
441
424
  /**
442
425
  * ```
@@ -446,8 +429,7 @@ export class WebGlContextWrapper {
446
429
  * @param framebuffer
447
430
  */
448
431
  bindFramebuffer(framebuffer) {
449
- const { gl } = this;
450
- gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
432
+ this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, framebuffer);
451
433
  }
452
434
  /**
453
435
  * ```
@@ -457,7 +439,7 @@ export class WebGlContextWrapper {
457
439
  * **WebGL Difference**: Bind target is always `gl.FRAMEBUFFER` and textarget is always `gl.TEXTURE_2D`
458
440
  */
459
441
  framebufferTexture2D(attachment, texture, level) {
460
- const { gl } = this;
442
+ const gl = this.gl;
461
443
  gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, gl.TEXTURE_2D, texture, level);
462
444
  }
463
445
  /**
@@ -469,8 +451,7 @@ export class WebGlContextWrapper {
469
451
  * **WebGL Difference**: Clear mask is always `gl.COLOR_BUFFER_BIT`
470
452
  */
471
453
  clear() {
472
- const { gl } = this;
473
- gl.clear(gl.COLOR_BUFFER_BIT);
454
+ this.gl.clear(this.gl.COLOR_BUFFER_BIT);
474
455
  }
475
456
  /**
476
457
  * ```
@@ -486,12 +467,11 @@ export class WebGlContextWrapper {
486
467
  * @param usage
487
468
  */
488
469
  arrayBufferData(buffer, data, usage) {
489
- const { gl, boundArrayBuffer } = this;
490
- if (boundArrayBuffer !== buffer) {
491
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
470
+ if (this.boundArrayBuffer !== buffer) {
471
+ this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
492
472
  this.boundArrayBuffer = buffer;
493
473
  }
494
- gl.bufferData(gl.ARRAY_BUFFER, data, usage);
474
+ this.gl.bufferData(this.gl.ARRAY_BUFFER, data, usage);
495
475
  }
496
476
  /**
497
477
  * ```
@@ -506,12 +486,11 @@ export class WebGlContextWrapper {
506
486
  * @param usage
507
487
  */
508
488
  elementArrayBufferData(buffer, data, usage) {
509
- const { gl, boundElementArrayBuffer } = this;
510
- if (boundElementArrayBuffer !== buffer) {
511
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
489
+ if (this.boundElementArrayBuffer !== buffer) {
490
+ this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, buffer);
512
491
  this.boundElementArrayBuffer = buffer;
513
492
  }
514
- gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, usage);
493
+ this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER, data, usage);
515
494
  }
516
495
  /**
517
496
  * ```
@@ -531,12 +510,44 @@ export class WebGlContextWrapper {
531
510
  * @param offset
532
511
  */
533
512
  vertexAttribPointer(buffer, index, size, type, normalized, stride, offset) {
534
- const { gl, boundArrayBuffer } = this;
535
- if (boundArrayBuffer !== buffer) {
536
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
513
+ if (this.boundArrayBuffer !== buffer) {
514
+ this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
537
515
  this.boundArrayBuffer = buffer;
538
516
  }
539
- gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
517
+ this.gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
518
+ }
519
+ /**
520
+ * Returns object with Attribute names as key and numbers as location values
521
+ *
522
+ * @param program
523
+ * @returns object with numbers
524
+ */
525
+ getUniformLocations(program) {
526
+ const gl = this.gl;
527
+ const length = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
528
+ const result = {};
529
+ for (let i = 0; i < length; i++) {
530
+ const info = gl.getActiveUniform(program, i);
531
+ //remove bracket + value from uniform name;
532
+ let name = info.name.replace(/\[.*?\]/g, '');
533
+ result[name] = gl.getUniformLocation(program, name);
534
+ }
535
+ return result;
536
+ }
537
+ /**
538
+ * Returns object with Attribute names as key and numbers as location values
539
+ * @param program
540
+ * @returns object with numbers
541
+ */
542
+ getAttributeLocations(program) {
543
+ const gl = this.gl;
544
+ const length = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
545
+ const result = {};
546
+ for (let i = 0; i < length; i++) {
547
+ const { name } = gl.getActiveAttrib(program, i);
548
+ result[name] = i;
549
+ }
550
+ return result;
540
551
  }
541
552
  /**
542
553
  * ```
@@ -546,13 +557,13 @@ export class WebGlContextWrapper {
546
557
  * @param program
547
558
  * @returns
548
559
  */
549
- useProgram(program) {
550
- const { gl, curProgram } = this;
551
- if (curProgram === program) {
560
+ useProgram(program, uniformLocations) {
561
+ if (this.curProgram === program) {
552
562
  return;
553
563
  }
554
- gl.useProgram(program);
564
+ this.gl.useProgram(program);
555
565
  this.curProgram = program;
566
+ this.curUniformLocations = uniformLocations;
556
567
  }
557
568
  /**
558
569
  * Sets the value of a single float uniform variable.
@@ -561,8 +572,7 @@ export class WebGlContextWrapper {
561
572
  * @param v0 - The value to set.
562
573
  */
563
574
  uniform1f(location, v0) {
564
- const { gl } = this;
565
- gl.uniform1f(location, v0);
575
+ this.gl.uniform1f(this.curUniformLocations[location] || null, v0);
566
576
  }
567
577
  /**
568
578
  * Sets the value of a float array uniform variable.
@@ -571,8 +581,7 @@ export class WebGlContextWrapper {
571
581
  * @param value - The array of values to set.
572
582
  */
573
583
  uniform1fv(location, value) {
574
- const { gl } = this;
575
- gl.uniform1fv(location, value);
584
+ this.gl.uniform1fv(this.curUniformLocations[location] || null, value);
576
585
  }
577
586
  /**
578
587
  * Sets the value of a single integer uniform variable.
@@ -581,8 +590,7 @@ export class WebGlContextWrapper {
581
590
  * @param v0 - The value to set.
582
591
  */
583
592
  uniform1i(location, v0) {
584
- const { gl } = this;
585
- gl.uniform1i(location, v0);
593
+ this.gl.uniform1i(this.curUniformLocations[location] || null, v0);
586
594
  }
587
595
  /**
588
596
  * Sets the value of an integer array uniform variable.
@@ -591,8 +599,7 @@ export class WebGlContextWrapper {
591
599
  * @param value - The array of values to set.
592
600
  */
593
601
  uniform1iv(location, value) {
594
- const { gl } = this;
595
- gl.uniform1iv(location, value);
602
+ this.gl.uniform1iv(this.curUniformLocations[location] || null, value);
596
603
  }
597
604
  /**
598
605
  * Sets the value of a vec2 uniform variable.
@@ -602,8 +609,16 @@ export class WebGlContextWrapper {
602
609
  * @param v1 - The second component of the vector.
603
610
  */
604
611
  uniform2f(location, v0, v1) {
605
- const { gl } = this;
606
- gl.uniform2f(location, v0, v1);
612
+ this.gl.uniform2f(this.curUniformLocations[location] || null, v0, v1);
613
+ }
614
+ /**
615
+ * Sets the value of a vec3 uniform variable.
616
+ *
617
+ * @param location - The location of the uniform variable.
618
+ * @param v - array of 4 numbers.
619
+ */
620
+ uniform2fa(location, value) {
621
+ this.gl.uniform2f(this.curUniformLocations[location] || null, value[0], value[1]);
607
622
  }
608
623
  /**
609
624
  * Sets the value of a vec2 array uniform variable.
@@ -612,8 +627,7 @@ export class WebGlContextWrapper {
612
627
  * @param value - The array of vec2 values to set.
613
628
  */
614
629
  uniform2fv(location, value) {
615
- const { gl } = this;
616
- gl.uniform2fv(location, value);
630
+ this.gl.uniform2fv(this.curUniformLocations[location] || null, value);
617
631
  }
618
632
  /**
619
633
  * Sets the value of a ivec2 uniform variable.
@@ -623,8 +637,7 @@ export class WebGlContextWrapper {
623
637
  * @param v1 - The second component of the vector.
624
638
  */
625
639
  uniform2i(location, v0, v1) {
626
- const { gl } = this;
627
- gl.uniform2i(location, v0, v1);
640
+ this.gl.uniform2i(this.curUniformLocations[location] || null, v0, v1);
628
641
  }
629
642
  /**
630
643
  * Sets the value of an ivec2 array uniform variable.
@@ -633,8 +646,7 @@ export class WebGlContextWrapper {
633
646
  * @param value - The array of ivec2 values to set.
634
647
  */
635
648
  uniform2iv(location, value) {
636
- const { gl } = this;
637
- gl.uniform2iv(location, value);
649
+ this.gl.uniform2iv(this.curUniformLocations[location] || null, value);
638
650
  }
639
651
  /**
640
652
  * Sets the value of a vec3 uniform variable.
@@ -645,8 +657,16 @@ export class WebGlContextWrapper {
645
657
  * @param v2 - The third component of the vector.
646
658
  */
647
659
  uniform3f(location, v0, v1, v2) {
648
- const { gl } = this;
649
- gl.uniform3f(location, v0, v1, v2);
660
+ this.gl.uniform3f(this.curUniformLocations[location] || null, v0, v1, v2);
661
+ }
662
+ /**
663
+ * Sets the value of a vec3 uniform variable.
664
+ *
665
+ * @param location - The location of the uniform variable.
666
+ * @param v - array of 4 numbers.
667
+ */
668
+ uniform3fa(location, value) {
669
+ this.gl.uniform3f(this.curUniformLocations[location] || null, value[0], value[1], value[2]);
650
670
  }
651
671
  /**
652
672
  * Sets the value of a vec3 array uniform variable.
@@ -655,8 +675,7 @@ export class WebGlContextWrapper {
655
675
  * @param value - The array of vec3 values to set.
656
676
  */
657
677
  uniform3fv(location, value) {
658
- const { gl } = this;
659
- gl.uniform3fv(location, value);
678
+ this.gl.uniform3fv(this.curUniformLocations[location] || null, value);
660
679
  }
661
680
  /**
662
681
  * Sets the value of a ivec3 uniform variable.
@@ -667,8 +686,7 @@ export class WebGlContextWrapper {
667
686
  * @param v2 - The third component of the vector.
668
687
  */
669
688
  uniform3i(location, v0, v1, v2) {
670
- const { gl } = this;
671
- gl.uniform3i(location, v0, v1, v2);
689
+ this.gl.uniform3i(this.curUniformLocations[location] || null, v0, v1, v2);
672
690
  }
673
691
  /**
674
692
  * Sets the value of an ivec3 array uniform variable.
@@ -677,8 +695,7 @@ export class WebGlContextWrapper {
677
695
  * @param value - The array of ivec3 values to set.
678
696
  */
679
697
  uniform3iv(location, value) {
680
- const { gl } = this;
681
- gl.uniform3iv(location, value);
698
+ this.gl.uniform3iv(this.curUniformLocations[location] || null, value);
682
699
  }
683
700
  /**
684
701
  * Sets the value of a vec4 uniform variable.
@@ -690,8 +707,16 @@ export class WebGlContextWrapper {
690
707
  * @param v3 - The fourth component of the vector.
691
708
  */
692
709
  uniform4f(location, v0, v1, v2, v3) {
693
- const { gl } = this;
694
- gl.uniform4f(location, v0, v1, v2, v3);
710
+ this.gl.uniform4f(this.curUniformLocations[location] || null, v0, v1, v2, v3);
711
+ }
712
+ /**
713
+ * Sets the value of a vec4 uniform variable.
714
+ *
715
+ * @param location - The location of the uniform variable.
716
+ * @param v - array of 4 numbers.
717
+ */
718
+ uniform4fa(location, value) {
719
+ this.gl.uniform4f(this.curUniformLocations[location] || null, value[0], value[1], value[2], value[3]);
695
720
  }
696
721
  /**
697
722
  * Sets the value of a vec4 array uniform variable.
@@ -700,8 +725,7 @@ export class WebGlContextWrapper {
700
725
  * @param value - The array of vec4 values to set.
701
726
  */
702
727
  uniform4fv(location, value) {
703
- const { gl } = this;
704
- gl.uniform4fv(location, value);
728
+ this.gl.uniform4fv(this.curUniformLocations[location] || null, value);
705
729
  }
706
730
  /**
707
731
  * Sets the value of a ivec4 uniform variable.
@@ -713,8 +737,7 @@ export class WebGlContextWrapper {
713
737
  * @param v3 - The fourth component of the vector.
714
738
  */
715
739
  uniform4i(location, v0, v1, v2, v3) {
716
- const { gl } = this;
717
- gl.uniform4i(location, v0, v1, v2, v3);
740
+ this.gl.uniform4i(this.curUniformLocations[location] || null, v0, v1, v2, v3);
718
741
  }
719
742
  /**
720
743
  * Sets the value of an ivec4 array uniform variable.
@@ -723,8 +746,7 @@ export class WebGlContextWrapper {
723
746
  * @param value - The array of ivec4 values to set.
724
747
  */
725
748
  uniform4iv(location, value) {
726
- const { gl } = this;
727
- gl.uniform4iv(location, value);
749
+ this.gl.uniform4iv(this.curUniformLocations[location] || null, value);
728
750
  }
729
751
  /**
730
752
  * Sets the value of a mat2 uniform variable.
@@ -734,8 +756,7 @@ export class WebGlContextWrapper {
734
756
  * @param value - The array of mat2 values to set.
735
757
  */
736
758
  uniformMatrix2fv(location, value) {
737
- const { gl } = this;
738
- gl.uniformMatrix2fv(location, false, value);
759
+ this.gl.uniformMatrix2fv(this.curUniformLocations[location] || null, false, value);
739
760
  }
740
761
  /**
741
762
  * Sets the value of a mat2 uniform variable.
@@ -743,8 +764,7 @@ export class WebGlContextWrapper {
743
764
  * @param value - The array of mat2 values to set.
744
765
  */
745
766
  uniformMatrix3fv(location, value) {
746
- const { gl } = this;
747
- gl.uniformMatrix3fv(location, false, value);
767
+ this.gl.uniformMatrix3fv(this.curUniformLocations[location] || null, false, value);
748
768
  }
749
769
  /**
750
770
  * Sets the value of a mat4 uniform variable.
@@ -752,8 +772,7 @@ export class WebGlContextWrapper {
752
772
  * @param value - The array of mat4 values to set.
753
773
  */
754
774
  uniformMatrix4fv(location, value) {
755
- const { gl } = this;
756
- gl.uniformMatrix4fv(location, false, value);
775
+ this.gl.uniformMatrix4fv(this.curUniformLocations[location] || null, false, value);
757
776
  }
758
777
  /**
759
778
  * ```
@@ -764,8 +783,7 @@ export class WebGlContextWrapper {
764
783
  * @returns
765
784
  */
766
785
  getParameter(pname) {
767
- const { gl } = this;
768
- return gl.getParameter(pname);
786
+ return this.gl.getParameter(pname);
769
787
  }
770
788
  /**
771
789
  * ```
@@ -778,8 +796,19 @@ export class WebGlContextWrapper {
778
796
  * @param offset
779
797
  */
780
798
  drawElements(mode, count, type, offset) {
781
- const { gl } = this;
782
- gl.drawElements(mode, count, type, offset);
799
+ this.gl.drawElements(mode, count, type, offset);
800
+ }
801
+ /**
802
+ * ```
803
+ * gl.drawArrays(mode, first, count);
804
+ * ```
805
+ *
806
+ * @param mode
807
+ * @param first
808
+ * @param count
809
+ */
810
+ drawArrays(mode, first, count) {
811
+ this.gl.drawArrays(mode, first, count);
783
812
  }
784
813
  /**
785
814
  * ```
@@ -790,8 +819,7 @@ export class WebGlContextWrapper {
790
819
  * @returns
791
820
  */
792
821
  getExtension(name) {
793
- const { gl } = this;
794
- return gl.getExtension(name);
822
+ return this.gl.getExtension(name);
795
823
  }
796
824
  /**
797
825
  * ```
@@ -801,8 +829,7 @@ export class WebGlContextWrapper {
801
829
  * @returns
802
830
  */
803
831
  getError() {
804
- const { gl } = this;
805
- return gl.getError();
832
+ return this.gl.getError();
806
833
  }
807
834
  /**
808
835
  * ```
@@ -812,9 +839,10 @@ export class WebGlContextWrapper {
812
839
  * @returns
813
840
  */
814
841
  createVertexArray() {
815
- const { gl } = this;
816
- assertTruthy(gl instanceof WebGL2RenderingContext);
817
- return gl.createVertexArray();
842
+ if (this.gl instanceof WebGL2RenderingContext) {
843
+ return this.gl.createVertexArray();
844
+ }
845
+ return undefined;
818
846
  }
819
847
  /**
820
848
  * ```
@@ -824,9 +852,9 @@ export class WebGlContextWrapper {
824
852
  * @param vertexArray
825
853
  */
826
854
  bindVertexArray(vertexArray) {
827
- const { gl } = this;
828
- assertTruthy(gl instanceof WebGL2RenderingContext);
829
- gl.bindVertexArray(vertexArray);
855
+ if (this.gl instanceof WebGL2RenderingContext) {
856
+ this.gl.bindVertexArray(vertexArray);
857
+ }
830
858
  }
831
859
  /**
832
860
  * ```
@@ -838,8 +866,7 @@ export class WebGlContextWrapper {
838
866
  * @returns
839
867
  */
840
868
  getAttribLocation(program, name) {
841
- const { gl } = this;
842
- return gl.getAttribLocation(program, name);
869
+ return this.gl.getAttribLocation(program, name);
843
870
  }
844
871
  /**
845
872
  * ```
@@ -851,8 +878,7 @@ export class WebGlContextWrapper {
851
878
  * @returns
852
879
  */
853
880
  getUniformLocation(program, name) {
854
- const { gl } = this;
855
- return gl.getUniformLocation(program, name);
881
+ return this.gl.getUniformLocation(program, name);
856
882
  }
857
883
  /**
858
884
  * ```
@@ -862,8 +888,7 @@ export class WebGlContextWrapper {
862
888
  * @param index
863
889
  */
864
890
  enableVertexAttribArray(index) {
865
- const { gl } = this;
866
- gl.enableVertexAttribArray(index);
891
+ this.gl.enableVertexAttribArray(index);
867
892
  }
868
893
  /**
869
894
  * ```
@@ -873,8 +898,7 @@ export class WebGlContextWrapper {
873
898
  * @param index
874
899
  */
875
900
  disableVertexAttribArray(index) {
876
- const { gl } = this;
877
- gl.disableVertexAttribArray(index);
901
+ this.gl.disableVertexAttribArray(index);
878
902
  }
879
903
  /**
880
904
  * ```
@@ -885,8 +909,7 @@ export class WebGlContextWrapper {
885
909
  * @returns
886
910
  */
887
911
  createShader(type) {
888
- const { gl } = this;
889
- return gl.createShader(type);
912
+ return this.gl.createShader(type);
890
913
  }
891
914
  /**
892
915
  * ```
@@ -897,8 +920,7 @@ export class WebGlContextWrapper {
897
920
  * @returns
898
921
  */
899
922
  compileShader(shader) {
900
- const { gl } = this;
901
- gl.compileShader(shader);
923
+ this.gl.compileShader(shader);
902
924
  }
903
925
  /**
904
926
  * ```
@@ -909,8 +931,7 @@ export class WebGlContextWrapper {
909
931
  * @param shader
910
932
  */
911
933
  attachShader(program, shader) {
912
- const { gl } = this;
913
- gl.attachShader(program, shader);
934
+ this.gl.attachShader(program, shader);
914
935
  }
915
936
  /**
916
937
  * ```
@@ -920,8 +941,7 @@ export class WebGlContextWrapper {
920
941
  * @param program
921
942
  */
922
943
  linkProgram(program) {
923
- const { gl } = this;
924
- gl.linkProgram(program);
944
+ this.gl.linkProgram(program);
925
945
  }
926
946
  /**
927
947
  * ```
@@ -931,8 +951,7 @@ export class WebGlContextWrapper {
931
951
  * @param shader
932
952
  */
933
953
  deleteProgram(shader) {
934
- const { gl } = this;
935
- gl.deleteProgram(shader);
954
+ this.gl.deleteProgram(shader);
936
955
  }
937
956
  /**
938
957
  * ```
@@ -943,8 +962,7 @@ export class WebGlContextWrapper {
943
962
  * @param pname
944
963
  */
945
964
  getShaderParameter(shader, pname) {
946
- const { gl } = this;
947
- return gl.getShaderParameter(shader, pname);
965
+ return this.gl.getShaderParameter(shader, pname);
948
966
  }
949
967
  /**
950
968
  * ```
@@ -954,8 +972,7 @@ export class WebGlContextWrapper {
954
972
  * @param shader
955
973
  */
956
974
  getShaderInfoLog(shader) {
957
- const { gl } = this;
958
- return gl.getShaderInfoLog(shader);
975
+ return this.gl.getShaderInfoLog(shader);
959
976
  }
960
977
  /**
961
978
  * ```
@@ -965,8 +982,7 @@ export class WebGlContextWrapper {
965
982
  * @returns
966
983
  */
967
984
  createProgram() {
968
- const { gl } = this;
969
- return gl.createProgram();
985
+ return this.gl.createProgram();
970
986
  }
971
987
  /**
972
988
  * ```
@@ -978,8 +994,7 @@ export class WebGlContextWrapper {
978
994
  * @returns
979
995
  */
980
996
  getProgramParameter(program, pname) {
981
- const { gl } = this;
982
- return gl.getProgramParameter(program, pname);
997
+ return this.gl.getProgramParameter(program, pname);
983
998
  }
984
999
  /**
985
1000
  * ```
@@ -990,8 +1005,7 @@ export class WebGlContextWrapper {
990
1005
  * @returns
991
1006
  */
992
1007
  getProgramInfoLog(program) {
993
- const { gl } = this;
994
- return gl.getProgramInfoLog(program);
1008
+ return this.gl.getProgramInfoLog(program);
995
1009
  }
996
1010
  /**
997
1011
  * ```
@@ -1002,8 +1016,7 @@ export class WebGlContextWrapper {
1002
1016
  * @param source
1003
1017
  */
1004
1018
  shaderSource(shader, source) {
1005
- const { gl } = this;
1006
- gl.shaderSource(shader, source);
1019
+ this.gl.shaderSource(shader, source);
1007
1020
  }
1008
1021
  /**
1009
1022
  * ```
@@ -1013,8 +1026,34 @@ export class WebGlContextWrapper {
1013
1026
  * @param shader
1014
1027
  */
1015
1028
  deleteShader(shader) {
1029
+ this.gl.deleteShader(shader);
1030
+ }
1031
+ /**
1032
+ * ```
1033
+ * gl.deleteBuffer(buffer);
1034
+ * ```
1035
+ *
1036
+ * @param buffer - The buffer to delete
1037
+ */
1038
+ deleteBuffer(buffer) {
1016
1039
  const { gl } = this;
1017
- gl.deleteShader(shader);
1040
+ gl.deleteBuffer(buffer);
1041
+ // Reset bound buffers if they match the deleted buffer
1042
+ if (this.boundArrayBuffer === buffer) {
1043
+ this.boundArrayBuffer = null;
1044
+ }
1045
+ }
1046
+ /**
1047
+ * ```
1048
+ * gl.deleteVertexArray(vertexArray);
1049
+ * ```
1050
+ *
1051
+ * @param vertexArray - The vertex array object to delete
1052
+ */
1053
+ deleteVertexArray(vertexArray) {
1054
+ if (this.isWebGl2()) {
1055
+ this.gl.deleteVertexArray(vertexArray);
1056
+ }
1018
1057
  }
1019
1058
  }
1020
1059
  /**