@lightningjs/renderer 2.13.1 → 3.0.0-beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/dist/exports/canvas-shaders.d.ts +10 -0
  2. package/dist/exports/canvas-shaders.js +27 -0
  3. package/dist/exports/canvas-shaders.js.map +1 -0
  4. package/dist/exports/canvas.d.ts +7 -1
  5. package/dist/exports/canvas.js +7 -1
  6. package/dist/exports/canvas.js.map +1 -1
  7. package/dist/exports/index.d.ts +15 -8
  8. package/dist/exports/index.js +7 -4
  9. package/dist/exports/index.js.map +1 -1
  10. package/dist/exports/webgl-shaders.d.ts +11 -0
  11. package/dist/exports/webgl-shaders.js +28 -0
  12. package/dist/exports/webgl-shaders.js.map +1 -0
  13. package/dist/exports/webgl.d.ts +9 -1
  14. package/dist/exports/webgl.js +9 -1
  15. package/dist/exports/webgl.js.map +1 -1
  16. package/dist/src/core/CoreNode.d.ts +10 -5
  17. package/dist/src/core/CoreNode.js +34 -13
  18. package/dist/src/core/CoreNode.js.map +1 -1
  19. package/dist/src/core/CoreShaderManager.d.ts +29 -71
  20. package/dist/src/core/CoreShaderManager.js +110 -97
  21. package/dist/src/core/CoreShaderManager.js.map +1 -1
  22. package/dist/src/core/CoreStuff.d.ts +1 -0
  23. package/dist/src/core/CoreStuff.js +138 -0
  24. package/dist/src/core/CoreStuff.js.map +1 -0
  25. package/dist/src/core/CoreTextNode.js +1 -8
  26. package/dist/src/core/CoreTextNode.js.map +1 -1
  27. package/dist/src/core/CoreTexturizer.d.ts +14 -0
  28. package/dist/src/core/CoreTexturizer.js +47 -0
  29. package/dist/src/core/CoreTexturizer.js.map +1 -0
  30. package/dist/src/core/LngNode.d.ts +736 -0
  31. package/dist/src/core/LngNode.js +1174 -0
  32. package/dist/src/core/LngNode.js.map +1 -0
  33. package/dist/src/core/Matrix2DContext.d.ts +15 -0
  34. package/dist/src/core/Matrix2DContext.js +45 -0
  35. package/dist/src/core/Matrix2DContext.js.map +1 -0
  36. package/dist/src/core/ShaderNode.d.ts +10 -0
  37. package/dist/src/core/ShaderNode.js +30 -0
  38. package/dist/src/core/ShaderNode.js.map +1 -0
  39. package/dist/src/core/Stage.d.ts +11 -14
  40. package/dist/src/core/Stage.js +24 -29
  41. package/dist/src/core/Stage.js.map +1 -1
  42. package/dist/src/core/TextNode.d.ts +103 -0
  43. package/dist/src/core/TextNode.js +331 -0
  44. package/dist/src/core/TextNode.js.map +1 -0
  45. package/dist/src/core/animations/CoreAnimation.d.ts +0 -1
  46. package/dist/src/core/animations/CoreAnimation.js +6 -52
  47. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  48. package/dist/src/core/lib/Coords.d.ts +14 -0
  49. package/dist/src/core/lib/Coords.js +55 -0
  50. package/dist/src/core/lib/Coords.js.map +1 -0
  51. package/dist/src/core/lib/RenderCoords.d.ts +9 -10
  52. package/dist/src/core/lib/RenderCoords.js +43 -55
  53. package/dist/src/core/lib/RenderCoords.js.map +1 -1
  54. package/dist/src/core/lib/WebGlContextWrapper.d.ts +89 -54
  55. package/dist/src/core/lib/WebGlContextWrapper.js +153 -157
  56. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  57. package/dist/src/core/lib/glm/common.d.ts +162 -0
  58. package/dist/src/core/lib/glm/common.js +81 -0
  59. package/dist/src/core/lib/glm/common.js.map +1 -0
  60. package/dist/src/core/lib/glm/index.d.ts +11 -0
  61. package/{src/core/renderers/CoreShader.ts → dist/src/core/lib/glm/index.js} +12 -23
  62. package/dist/src/core/lib/glm/index.js.map +1 -0
  63. package/dist/src/core/lib/glm/mat2.d.ts +219 -0
  64. package/dist/src/core/lib/glm/mat2.js +396 -0
  65. package/dist/src/core/lib/glm/mat2.js.map +1 -0
  66. package/dist/src/core/lib/glm/mat2d.d.ts +237 -0
  67. package/dist/src/core/lib/glm/mat2d.js +442 -0
  68. package/dist/src/core/lib/glm/mat2d.js.map +1 -0
  69. package/dist/src/core/lib/glm/mat3.d.ts +283 -0
  70. package/dist/src/core/lib/glm/mat3.js +680 -0
  71. package/dist/src/core/lib/glm/mat3.js.map +1 -0
  72. package/dist/src/core/lib/glm/mat4.d.ts +550 -0
  73. package/dist/src/core/lib/glm/mat4.js +1802 -0
  74. package/dist/src/core/lib/glm/mat4.js.map +1 -0
  75. package/dist/src/core/lib/glm/quat.d.ts +363 -0
  76. package/dist/src/core/lib/glm/quat.js +693 -0
  77. package/dist/src/core/lib/glm/quat.js.map +1 -0
  78. package/dist/src/core/lib/glm/quat2.d.ts +356 -0
  79. package/dist/src/core/lib/glm/quat2.js +754 -0
  80. package/dist/src/core/lib/glm/quat2.js.map +1 -0
  81. package/dist/src/core/lib/glm/vec2.d.ts +365 -0
  82. package/dist/src/core/lib/glm/vec2.js +569 -0
  83. package/dist/src/core/lib/glm/vec2.js.map +1 -0
  84. package/dist/src/core/lib/glm/vec3.d.ts +406 -0
  85. package/dist/src/core/lib/glm/vec3.js +720 -0
  86. package/dist/src/core/lib/glm/vec3.js.map +1 -0
  87. package/dist/src/core/lib/glm/vec4.d.ts +330 -0
  88. package/dist/src/core/lib/glm/vec4.js +608 -0
  89. package/dist/src/core/lib/glm/vec4.js.map +1 -0
  90. package/dist/src/core/lib/textureCompression.js +0 -1
  91. package/dist/src/core/lib/textureCompression.js.map +1 -1
  92. package/dist/src/core/lib/utils.d.ts +2 -1
  93. package/dist/src/core/lib/utils.js.map +1 -1
  94. package/dist/src/core/platform.js +1 -0
  95. package/dist/src/core/platform.js.map +1 -1
  96. package/dist/src/core/renderers/CoreRenderer.d.ts +11 -21
  97. package/dist/src/core/renderers/CoreRenderer.js +0 -6
  98. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  99. package/dist/src/core/renderers/CoreShaderManager.d.ts +19 -0
  100. package/dist/src/core/renderers/CoreShaderManager.js +33 -0
  101. package/dist/src/core/renderers/CoreShaderManager.js.map +1 -0
  102. package/dist/src/core/renderers/CoreShaderNode.d.ts +58 -0
  103. package/dist/src/core/renderers/CoreShaderNode.js +104 -0
  104. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
  105. package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
  106. package/dist/src/core/renderers/CoreShaderProgram.js +20 -0
  107. package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
  108. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +36 -0
  109. package/dist/src/core/renderers/canvas/CanvasRenderer.js +212 -0
  110. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
  111. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
  112. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +60 -0
  113. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
  114. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +16 -0
  115. package/dist/src/core/renderers/canvas/CanvasTexture.js +124 -0
  116. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
  117. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -13
  118. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +192 -113
  119. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  120. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +2 -0
  121. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +14 -0
  122. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  123. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +27 -0
  124. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +82 -0
  125. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +1 -0
  126. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +11 -0
  127. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +34 -0
  128. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +1 -0
  129. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +12 -0
  130. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +55 -0
  131. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
  132. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +9 -0
  133. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +38 -0
  134. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
  135. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +57 -0
  136. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +227 -0
  137. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
  138. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +44 -0
  139. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +118 -0
  140. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
  141. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +134 -0
  142. package/dist/src/core/renderers/webgl/WebGlRenderer.js +547 -0
  143. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
  144. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +222 -0
  145. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +334 -0
  146. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
  147. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +35 -0
  148. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +201 -0
  149. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
  150. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +32 -5
  151. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +50 -0
  152. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  153. package/dist/src/core/scene/Scene.d.ts +59 -0
  154. package/dist/src/core/scene/Scene.js +106 -0
  155. package/dist/src/core/scene/Scene.js.map +1 -0
  156. package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
  157. package/dist/src/core/shaders/canvas/Border.js +57 -0
  158. package/dist/src/core/shaders/canvas/Border.js.map +1 -0
  159. package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
  160. package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
  161. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
  162. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
  163. package/dist/src/core/shaders/canvas/LinearGradient.js +46 -0
  164. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
  165. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
  166. package/dist/src/core/shaders/canvas/RadialGradient.js +68 -0
  167. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
  168. package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
  169. package/dist/src/core/shaders/canvas/Rounded.js +33 -0
  170. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
  171. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
  172. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +35 -0
  173. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
  174. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
  175. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +39 -0
  176. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
  177. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
  178. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +38 -0
  179. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
  180. package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
  181. package/dist/src/core/shaders/canvas/Shadow.js +31 -0
  182. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
  183. package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
  184. package/dist/src/core/shaders/canvas/utils/render.js +84 -0
  185. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
  186. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +37 -0
  187. package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
  188. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
  189. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
  190. package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
  191. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
  192. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
  193. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
  194. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
  195. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +31 -0
  196. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
  197. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
  198. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
  199. package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
  200. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
  201. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
  202. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
  203. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
  204. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +6 -0
  205. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
  206. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
  207. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
  208. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
  209. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
  210. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
  211. package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
  212. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
  213. package/dist/src/core/shaders/templates/shaderUtils.d.ts +5 -0
  214. package/dist/src/core/shaders/templates/shaderUtils.js +41 -0
  215. package/dist/src/core/shaders/templates/shaderUtils.js.map +1 -0
  216. package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
  217. package/dist/src/core/shaders/webgl/Border.js +87 -0
  218. package/dist/src/core/shaders/webgl/Border.js.map +1 -0
  219. package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
  220. package/dist/src/core/shaders/webgl/Default.js +86 -0
  221. package/dist/src/core/shaders/webgl/Default.js.map +1 -0
  222. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
  223. package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
  224. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
  225. package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
  226. package/dist/src/core/shaders/webgl/HolePunch.js +64 -0
  227. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
  228. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
  229. package/dist/src/core/shaders/webgl/LinearGradient.js +75 -0
  230. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
  231. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
  232. package/dist/src/core/shaders/webgl/RadialGradient.js +73 -0
  233. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
  234. package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
  235. package/dist/src/core/shaders/webgl/Rounded.js +86 -0
  236. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
  237. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
  238. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +97 -0
  239. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
  240. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
  241. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +112 -0
  242. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
  243. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
  244. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +84 -0
  245. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
  246. package/dist/src/core/shaders/webgl/SdfShader.d.ts +32 -0
  247. package/dist/src/core/shaders/webgl/SdfShader.js +116 -0
  248. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
  249. package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
  250. package/dist/src/core/shaders/webgl/Shadow.js +110 -0
  251. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
  252. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  253. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  254. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  255. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +6 -0
  256. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  257. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +2 -3
  258. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +34 -31
  259. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  260. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
  261. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
  262. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
  263. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +1 -4
  264. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  265. package/dist/src/core/textures/Texture.d.ts +1 -1
  266. package/dist/src/main-api/ICoreDriver.d.ts +4 -1
  267. package/dist/src/main-api/INode.d.ts +9 -9
  268. package/dist/src/main-api/IRenderDriver.d.ts +20 -0
  269. package/dist/src/main-api/IRenderDriver.js +20 -0
  270. package/dist/src/main-api/IRenderDriver.js.map +1 -0
  271. package/dist/src/main-api/IShaderController.d.ts +14 -0
  272. package/dist/src/main-api/IShaderController.js +30 -0
  273. package/dist/src/main-api/IShaderController.js.map +1 -0
  274. package/dist/src/main-api/IShaderNode.d.ts +17 -0
  275. package/dist/src/main-api/IShaderNode.js +19 -0
  276. package/dist/src/main-api/IShaderNode.js.map +1 -0
  277. package/dist/src/main-api/Renderer.d.ts +8 -91
  278. package/dist/src/main-api/Renderer.js +3 -54
  279. package/dist/src/main-api/Renderer.js.map +1 -1
  280. package/dist/src/main-api/RendererMain.d.ts +2 -5
  281. package/dist/src/main-api/RendererMain.js +4 -6
  282. package/dist/src/main-api/RendererMain.js.map +1 -1
  283. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -1
  284. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +4 -1
  285. package/dist/src/render-drivers/main/MainCoreDriver.js +4 -1
  286. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  287. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +6 -8
  288. package/dist/src/render-drivers/main/MainOnlyNode.js +1 -30
  289. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -1
  290. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +6 -0
  291. package/dist/src/render-drivers/main/MainOnlyShaderController.js +15 -0
  292. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +1 -0
  293. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +7 -0
  294. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +34 -0
  295. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +1 -0
  296. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +1 -1
  297. package/dist/src/render-drivers/main/MainOnlyTextNode.js +3 -2
  298. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
  299. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +17 -0
  300. package/dist/src/render-drivers/main/MainRenderDriver.js +88 -0
  301. package/dist/src/render-drivers/main/MainRenderDriver.js.map +1 -0
  302. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -3
  303. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -9
  304. package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -1
  305. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -1
  306. package/dist/src/render-drivers/threadx/SharedNode.js +0 -1
  307. package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -1
  308. package/dist/src/render-drivers/threadx/TextNodeStruct.js +1 -3
  309. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
  310. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +4 -1
  311. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +4 -2
  312. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  313. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +4 -8
  314. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +24 -53
  315. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -1
  316. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +5 -7
  317. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +2 -8
  318. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -1
  319. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +6 -0
  320. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +16 -0
  321. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +1 -0
  322. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +7 -0
  323. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +15 -0
  324. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +1 -0
  325. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
  326. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +21 -0
  327. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +198 -0
  328. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +1 -0
  329. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -7
  330. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
  331. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -1
  332. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -1
  333. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -2
  334. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  335. package/dist/src/render-drivers/utils.js +1 -6
  336. package/dist/src/render-drivers/utils.js.map +1 -1
  337. package/dist/src/utils.d.ts +6 -0
  338. package/dist/src/utils.js +18 -0
  339. package/dist/src/utils.js.map +1 -1
  340. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  341. package/exports/canvas-shaders.ts +28 -0
  342. package/exports/canvas.ts +7 -1
  343. package/exports/index.ts +17 -17
  344. package/exports/webgl-shaders.ts +28 -0
  345. package/exports/webgl.ts +13 -1
  346. package/package.json +3 -1
  347. package/src/core/CoreNode.test.ts +3 -2
  348. package/src/core/CoreNode.ts +50 -19
  349. package/src/core/CoreShaderManager.ts +127 -226
  350. package/src/core/CoreTextNode.ts +1 -17
  351. package/src/core/Stage.ts +36 -41
  352. package/src/core/animations/CoreAnimation.ts +8 -64
  353. package/src/core/lib/RenderCoords.ts +52 -67
  354. package/src/core/lib/WebGlContextWrapper.ts +278 -236
  355. package/src/core/lib/textureCompression.ts +3 -3
  356. package/src/core/lib/utils.ts +3 -1
  357. package/src/core/platform.ts +1 -0
  358. package/src/core/renderers/CoreRenderer.ts +19 -27
  359. package/src/core/renderers/CoreShaderNode.ts +167 -0
  360. package/src/core/renderers/{canvas/shaders/UnsupportedShader.ts → CoreShaderProgram.ts} +3 -28
  361. package/src/core/renderers/canvas/CanvasRenderer.ts +298 -0
  362. package/src/core/renderers/canvas/CanvasShaderNode.ts +99 -0
  363. package/src/core/renderers/canvas/{CanvasCoreTexture.ts → CanvasTexture.ts} +6 -3
  364. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +2 -13
  365. package/src/core/renderers/canvas/internal/ColorUtils.ts +16 -0
  366. package/src/core/renderers/webgl/{WebGlCoreCtxRenderTexture.ts → WebGlCtxRenderTexture.ts} +2 -2
  367. package/src/core/renderers/webgl/{WebGlCoreCtxSubTexture.ts → WebGlCtxSubTexture.ts} +2 -2
  368. package/src/core/renderers/webgl/{WebGlCoreCtxTexture.ts → WebGlCtxTexture.ts} +1 -1
  369. package/src/core/renderers/webgl/WebGlRenderOp.ts +161 -0
  370. package/src/core/renderers/webgl/{WebGlCoreRenderer.ts → WebGlRenderer.ts} +155 -250
  371. package/src/core/renderers/webgl/WebGlShaderNode.ts +437 -0
  372. package/src/core/renderers/webgl/WebGlShaderProgram.ts +318 -0
  373. package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -5
  374. package/src/core/shaders/canvas/Border.ts +78 -0
  375. package/src/core/shaders/canvas/HolePunch.ts +62 -0
  376. package/src/core/shaders/canvas/LinearGradient.ts +69 -0
  377. package/src/core/shaders/canvas/RadialGradient.ts +113 -0
  378. package/src/core/shaders/canvas/Rounded.ts +55 -0
  379. package/src/core/shaders/canvas/RoundedWithBorder.ts +68 -0
  380. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -0
  381. package/src/core/shaders/canvas/RoundedWithShadow.ts +69 -0
  382. package/src/core/shaders/canvas/Shadow.ts +52 -0
  383. package/src/core/shaders/canvas/utils/render.ts +151 -0
  384. package/src/core/shaders/templates/BorderTemplate.ts +115 -0
  385. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -0
  386. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -0
  387. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -0
  388. package/src/core/shaders/templates/RoundedTemplate.ts +98 -0
  389. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -0
  390. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -0
  391. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -0
  392. package/src/core/shaders/templates/ShadowTemplate.ts +106 -0
  393. package/src/core/shaders/templates/shaderUtils.ts +47 -0
  394. package/src/core/shaders/webgl/Border.ts +96 -0
  395. package/src/core/shaders/webgl/Default.ts +89 -0
  396. package/src/core/shaders/webgl/DefaultBatched.ts +129 -0
  397. package/src/core/shaders/webgl/HolePunch.ts +78 -0
  398. package/src/core/shaders/webgl/LinearGradient.ts +81 -0
  399. package/src/core/shaders/webgl/RadialGradient.ts +84 -0
  400. package/src/core/shaders/webgl/Rounded.ts +117 -0
  401. package/src/core/shaders/webgl/RoundedWithBorder.ts +114 -0
  402. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +133 -0
  403. package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -0
  404. package/src/core/shaders/webgl/SdfShader.ts +134 -0
  405. package/src/core/shaders/webgl/Shadow.ts +115 -0
  406. package/src/core/text-rendering/TextTextureRendererUtils.ts +1 -1
  407. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +2 -2
  408. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +12 -5
  409. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +44 -57
  410. package/src/core/text-rendering/renderers/TextRenderer.ts +2 -9
  411. package/src/core/textures/Texture.ts +1 -1
  412. package/src/main-api/INode.ts +11 -13
  413. package/src/main-api/Renderer.ts +25 -127
  414. package/src/utils.ts +19 -0
  415. package/dist/tsconfig.tsbuildinfo +0 -1
  416. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +0 -375
  417. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +0 -125
  418. package/src/core/renderers/webgl/WebGlCoreShader.ts +0 -362
  419. package/src/core/renderers/webgl/shaders/DefaultShader.ts +0 -93
  420. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -132
  421. package/src/core/renderers/webgl/shaders/DynamicShader.ts +0 -580
  422. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +0 -167
  423. package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -204
  424. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +0 -101
  425. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +0 -87
  426. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +0 -101
  427. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +0 -101
  428. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +0 -101
  429. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +0 -159
  430. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +0 -127
  431. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +0 -148
  432. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +0 -67
  433. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +0 -157
  434. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +0 -171
  435. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +0 -168
  436. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +0 -187
  437. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +0 -110
  438. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +0 -196
  439. package/src/main-api/DynamicShaderController.ts +0 -104
  440. package/src/main-api/ShaderController.ts +0 -80
@@ -3,6 +3,11 @@
3
3
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
4
4
 
5
5
  import { assertTruthy } from '../../utils.js';
6
+ import type {
7
+ Vec2,
8
+ Vec3,
9
+ Vec4,
10
+ } from '../renderers/webgl/internal/ShaderUtils.js';
6
11
  import { isWebGl2 } from '../renderers/webgl/internal/WebGlUtils.js';
7
12
 
8
13
  /**
@@ -202,9 +207,8 @@ export class WebGlContextWrapper {
202
207
  * @param textureUnit
203
208
  */
204
209
  activeTexture(textureUnit: number) {
205
- const { gl } = this;
206
210
  if (this.activeTextureUnit !== textureUnit) {
207
- gl.activeTexture(textureUnit + gl.TEXTURE0);
211
+ this.gl.activeTexture(textureUnit + this.gl.TEXTURE0);
208
212
  this.activeTextureUnit = textureUnit;
209
213
  }
210
214
  }
@@ -219,19 +223,16 @@ export class WebGlContextWrapper {
219
223
  * @param texture
220
224
  */
221
225
  bindTexture(texture: WebGLTexture | null) {
222
- const { gl, activeTextureUnit, texture2dUnits } = this;
223
-
224
- if (texture2dUnits[activeTextureUnit] === texture) {
226
+ if (this.texture2dUnits[this.activeTextureUnit] === texture) {
225
227
  return;
226
228
  }
227
- texture2dUnits[activeTextureUnit] = texture;
229
+ this.texture2dUnits[this.activeTextureUnit] = texture;
228
230
 
229
- gl.bindTexture(this.gl.TEXTURE_2D, texture);
231
+ this.gl.bindTexture(this.gl.TEXTURE_2D, texture);
230
232
  }
231
233
 
232
234
  private _getActiveTexture(): WebGLTexture | null {
233
- const { activeTextureUnit, texture2dUnits } = this;
234
- return texture2dUnits[activeTextureUnit]!;
235
+ return this.texture2dUnits[this.activeTextureUnit]!;
235
236
  }
236
237
 
237
238
  /**
@@ -246,22 +247,20 @@ export class WebGlContextWrapper {
246
247
  * @returns
247
248
  */
248
249
  texParameteri(pname: number, param: number) {
249
- const { gl, texture2dParams } = this;
250
-
251
250
  const activeTexture = this._getActiveTexture();
252
251
  if (!activeTexture) {
253
252
  throw new Error('No active texture');
254
253
  }
255
- let textureParams = texture2dParams.get(activeTexture);
254
+ let textureParams = this.texture2dParams.get(activeTexture);
256
255
  if (!textureParams) {
257
256
  textureParams = {};
258
- texture2dParams.set(activeTexture, textureParams);
257
+ this.texture2dParams.set(activeTexture, textureParams);
259
258
  }
260
259
  if (textureParams[pname] === param) {
261
260
  return;
262
261
  }
263
262
  textureParams[pname] = param;
264
- gl.texParameteri(gl.TEXTURE_2D, pname, param);
263
+ this.gl.texParameteri(this.gl.TEXTURE_2D, pname, param);
265
264
  }
266
265
 
267
266
  /**
@@ -317,10 +316,9 @@ export class WebGlContextWrapper {
317
316
  type?: any,
318
317
  pixels?: any,
319
318
  ) {
320
- const { gl } = this;
321
319
  if (format) {
322
- gl.texImage2D(
323
- gl.TEXTURE_2D,
320
+ this.gl.texImage2D(
321
+ this.gl.TEXTURE_2D,
324
322
  level,
325
323
  internalFormat,
326
324
  widthOrFormat,
@@ -331,8 +329,8 @@ export class WebGlContextWrapper {
331
329
  pixels,
332
330
  );
333
331
  } else {
334
- gl.texImage2D(
335
- gl.TEXTURE_2D,
332
+ this.gl.texImage2D(
333
+ this.gl.TEXTURE_2D,
336
334
  level,
337
335
  internalFormat,
338
336
  widthOrFormat,
@@ -358,9 +356,8 @@ export class WebGlContextWrapper {
358
356
  border: GLint,
359
357
  data?: ArrayBufferView,
360
358
  ): void {
361
- const { gl } = this;
362
- gl.compressedTexImage2D(
363
- gl.TEXTURE_2D,
359
+ this.gl.compressedTexImage2D(
360
+ this.gl.TEXTURE_2D,
364
361
  level,
365
362
  internalformat,
366
363
  width,
@@ -378,8 +375,7 @@ export class WebGlContextWrapper {
378
375
  * @param param
379
376
  */
380
377
  pixelStorei(pname: GLenum, param: GLint | GLboolean) {
381
- const { gl } = this;
382
- gl.pixelStorei(pname, param);
378
+ this.gl.pixelStorei(pname, param);
383
379
  }
384
380
 
385
381
  /**
@@ -391,8 +387,7 @@ export class WebGlContextWrapper {
391
387
  * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
392
388
  */
393
389
  generateMipmap() {
394
- const { gl } = this;
395
- gl.generateMipmap(gl.TEXTURE_2D);
390
+ this.gl.generateMipmap(this.gl.TEXTURE_2D);
396
391
  }
397
392
 
398
393
  /**
@@ -403,8 +398,7 @@ export class WebGlContextWrapper {
403
398
  * @returns
404
399
  */
405
400
  createTexture() {
406
- const { gl } = this;
407
- return gl.createTexture();
401
+ return this.gl.createTexture();
408
402
  }
409
403
 
410
404
  /**
@@ -415,11 +409,10 @@ export class WebGlContextWrapper {
415
409
  * @param texture
416
410
  */
417
411
  deleteTexture(texture: WebGLTexture | null) {
418
- const { gl } = this;
419
412
  if (texture) {
420
413
  this.texture2dParams.delete(texture);
421
414
  }
422
- gl.deleteTexture(texture);
415
+ this.gl.deleteTexture(texture);
423
416
  }
424
417
 
425
418
  /**
@@ -438,8 +431,7 @@ export class WebGlContextWrapper {
438
431
  * ```
439
432
  */
440
433
  viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
441
- const { gl } = this;
442
- gl.viewport(x, y, width, height);
434
+ this.gl.viewport(x, y, width, height);
443
435
  }
444
436
 
445
437
  /**
@@ -453,8 +445,7 @@ export class WebGlContextWrapper {
453
445
  * @param alpha
454
446
  */
455
447
  clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf) {
456
- const { gl } = this;
457
- gl.clearColor(red, green, blue, alpha);
448
+ this.gl.clearColor(red, green, blue, alpha);
458
449
  }
459
450
 
460
451
  /**
@@ -464,14 +455,13 @@ export class WebGlContextWrapper {
464
455
  * @param enable
465
456
  */
466
457
  setScissorTest(enable: boolean) {
467
- const { gl, scissorEnabled } = this;
468
- if (enable === scissorEnabled) {
458
+ if (enable === this.scissorEnabled) {
469
459
  return;
470
460
  }
471
461
  if (enable) {
472
- gl.enable(gl.SCISSOR_TEST);
462
+ this.gl.enable(this.gl.SCISSOR_TEST);
473
463
  } else {
474
- gl.disable(gl.SCISSOR_TEST);
464
+ this.gl.disable(this.gl.SCISSOR_TEST);
475
465
  }
476
466
  this.scissorEnabled = enable;
477
467
  }
@@ -487,14 +477,13 @@ export class WebGlContextWrapper {
487
477
  * @param height
488
478
  */
489
479
  scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
490
- const { gl, scissorX, scissorY, scissorWidth, scissorHeight } = this;
491
480
  if (
492
- x !== scissorX ||
493
- y !== scissorY ||
494
- width !== scissorWidth ||
495
- height !== scissorHeight
481
+ x !== this.scissorX ||
482
+ y !== this.scissorY ||
483
+ width !== this.scissorWidth ||
484
+ height !== this.scissorHeight
496
485
  ) {
497
- gl.scissor(x, y, width, height);
486
+ this.gl.scissor(x, y, width, height);
498
487
  this.scissorX = x;
499
488
  this.scissorY = y;
500
489
  this.scissorWidth = width;
@@ -511,14 +500,13 @@ export class WebGlContextWrapper {
511
500
  * @returns
512
501
  */
513
502
  setBlend(blend: boolean) {
514
- const { gl, blendEnabled } = this;
515
- if (blend === blendEnabled) {
503
+ if (blend === this.blendEnabled) {
516
504
  return;
517
505
  }
518
506
  if (blend) {
519
- gl.enable(gl.BLEND);
507
+ this.gl.enable(this.gl.BLEND);
520
508
  } else {
521
- gl.disable(gl.BLEND);
509
+ this.gl.disable(this.gl.BLEND);
522
510
  }
523
511
  this.blendEnabled = blend;
524
512
  }
@@ -532,14 +520,13 @@ export class WebGlContextWrapper {
532
520
  * @param dst
533
521
  */
534
522
  blendFunc(src: GLenum, dst: GLenum) {
535
- const { gl, blendSrcRgb, blendDstRgb, blendSrcAlpha, blendDstAlpha } = this;
536
523
  if (
537
- src !== blendSrcRgb ||
538
- dst !== blendDstRgb ||
539
- src !== blendSrcAlpha ||
540
- dst !== blendDstAlpha
524
+ src !== this.blendSrcRgb ||
525
+ dst !== this.blendDstRgb ||
526
+ src !== this.blendSrcAlpha ||
527
+ dst !== this.blendDstAlpha
541
528
  ) {
542
- gl.blendFunc(src, dst);
529
+ this.gl.blendFunc(src, dst);
543
530
  this.blendSrcRgb = src;
544
531
  this.blendDstRgb = dst;
545
532
  this.blendSrcAlpha = src;
@@ -555,8 +542,7 @@ export class WebGlContextWrapper {
555
542
  * @returns
556
543
  */
557
544
  createBuffer() {
558
- const { gl } = this;
559
- return gl.createBuffer();
545
+ return this.gl.createBuffer();
560
546
  }
561
547
 
562
548
  /**
@@ -566,8 +552,7 @@ export class WebGlContextWrapper {
566
552
  * @returns
567
553
  */
568
554
  createFramebuffer() {
569
- const { gl } = this;
570
- return gl.createFramebuffer();
555
+ return this.gl.createFramebuffer();
571
556
  }
572
557
 
573
558
  /**
@@ -578,8 +563,7 @@ export class WebGlContextWrapper {
578
563
  * @param framebuffer
579
564
  */
580
565
  bindFramebuffer(framebuffer: WebGLFramebuffer | null) {
581
- const { gl } = this;
582
- gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
566
+ this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, framebuffer);
583
567
  }
584
568
 
585
569
  /**
@@ -595,7 +579,7 @@ export class WebGlContextWrapper {
595
579
  texture: WebGLTexture | null,
596
580
  level: GLint,
597
581
  ) {
598
- const { gl } = this;
582
+ const gl = this.gl;
599
583
  gl.framebufferTexture2D(
600
584
  gl.FRAMEBUFFER,
601
585
  attachment,
@@ -614,8 +598,7 @@ export class WebGlContextWrapper {
614
598
  * **WebGL Difference**: Clear mask is always `gl.COLOR_BUFFER_BIT`
615
599
  */
616
600
  clear() {
617
- const { gl } = this;
618
- gl.clear(gl.COLOR_BUFFER_BIT);
601
+ this.gl.clear(this.gl.COLOR_BUFFER_BIT);
619
602
  }
620
603
 
621
604
  /**
@@ -636,12 +619,11 @@ export class WebGlContextWrapper {
636
619
  data: ArrayBufferView,
637
620
  usage: GLenum,
638
621
  ) {
639
- const { gl, boundArrayBuffer } = this;
640
- if (boundArrayBuffer !== buffer) {
641
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
622
+ if (this.boundArrayBuffer !== buffer) {
623
+ this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
642
624
  this.boundArrayBuffer = buffer;
643
625
  }
644
- gl.bufferData(gl.ARRAY_BUFFER, data, usage);
626
+ this.gl.bufferData(this.gl.ARRAY_BUFFER, data, usage);
645
627
  }
646
628
 
647
629
  /**
@@ -661,12 +643,11 @@ export class WebGlContextWrapper {
661
643
  data: ArrayBufferView,
662
644
  usage: GLenum,
663
645
  ) {
664
- const { gl, boundElementArrayBuffer } = this;
665
- if (boundElementArrayBuffer !== buffer) {
666
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
646
+ if (this.boundElementArrayBuffer !== buffer) {
647
+ this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, buffer);
667
648
  this.boundElementArrayBuffer = buffer;
668
649
  }
669
- gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, usage);
650
+ this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER, data, usage);
670
651
  }
671
652
 
672
653
  /**
@@ -695,12 +676,50 @@ export class WebGlContextWrapper {
695
676
  stride: GLsizei,
696
677
  offset: GLintptr,
697
678
  ) {
698
- const { gl, boundArrayBuffer } = this;
699
- if (boundArrayBuffer !== buffer) {
700
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
679
+ if (this.boundArrayBuffer !== buffer) {
680
+ this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
701
681
  this.boundArrayBuffer = buffer;
702
682
  }
703
- gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
683
+ this.gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
684
+ }
685
+
686
+ /**
687
+ * Returns object with Attribute names as key and numbers as location values
688
+ *
689
+ * @param program
690
+ * @returns object with numbers
691
+ */
692
+ getUniformLocations(program: WebGLProgram): Record<string, number> {
693
+ const gl = this.gl;
694
+ const length = gl.getProgramParameter(
695
+ program,
696
+ gl.ACTIVE_UNIFORMS,
697
+ ) as number;
698
+ const result = {} as Record<string, number>;
699
+ for (let i = 0; i < length; i++) {
700
+ const { name } = gl.getActiveUniform(program, i) as WebGLActiveInfo;
701
+ result[name] = i;
702
+ }
703
+ return result;
704
+ }
705
+
706
+ /**
707
+ * Returns object with Attribute names as key and numbers as location values
708
+ * @param program
709
+ * @returns object with numbers
710
+ */
711
+ getAttributeLocations(program: WebGLProgram): Record<string, number> {
712
+ const gl = this.gl;
713
+ const length = gl.getProgramParameter(
714
+ program,
715
+ gl.ACTIVE_ATTRIBUTES,
716
+ ) as number;
717
+ const result = {} as Record<string, number>;
718
+ for (let i = 0; i < length; i++) {
719
+ const { name } = gl.getActiveAttrib(program, i) as WebGLActiveInfo;
720
+ result[name] = i;
721
+ }
722
+ return result;
704
723
  }
705
724
 
706
725
  /**
@@ -712,11 +731,10 @@ export class WebGlContextWrapper {
712
731
  * @returns
713
732
  */
714
733
  useProgram(program: WebGLProgram | null) {
715
- const { gl, curProgram } = this;
716
- if (curProgram === program) {
734
+ if (this.curProgram === program) {
717
735
  return;
718
736
  }
719
- gl.useProgram(program);
737
+ this.gl.useProgram(program);
720
738
  this.curProgram = program;
721
739
  }
722
740
 
@@ -726,9 +744,11 @@ export class WebGlContextWrapper {
726
744
  * @param location - The location of the uniform variable.
727
745
  * @param v0 - The value to set.
728
746
  */
729
- uniform1f(location: WebGLUniformLocation | null, v0: number) {
730
- const { gl } = this;
731
- gl.uniform1f(location, v0);
747
+ uniform1f(location: string, v0: number) {
748
+ this.gl.uniform1f(
749
+ this.gl.getUniformLocation(this.curProgram!, location),
750
+ v0,
751
+ );
732
752
  }
733
753
 
734
754
  /**
@@ -737,12 +757,11 @@ export class WebGlContextWrapper {
737
757
  * @param location - The location of the uniform variable.
738
758
  * @param value - The array of values to set.
739
759
  */
740
- uniform1fv(
741
- location: WebGLUniformLocation | null,
742
- value: Float32Array | number[],
743
- ) {
744
- const { gl } = this;
745
- gl.uniform1fv(location, value);
760
+ uniform1fv(location: string, value: Float32Array) {
761
+ this.gl.uniform1fv(
762
+ this.gl.getUniformLocation(this.curProgram!, location),
763
+ value,
764
+ );
746
765
  }
747
766
 
748
767
  /**
@@ -751,9 +770,11 @@ export class WebGlContextWrapper {
751
770
  * @param location - The location of the uniform variable.
752
771
  * @param v0 - The value to set.
753
772
  */
754
- uniform1i(location: WebGLUniformLocation | null, v0: number) {
755
- const { gl } = this;
756
- gl.uniform1i(location, v0);
773
+ uniform1i(location: string, v0: number) {
774
+ this.gl.uniform1i(
775
+ this.gl.getUniformLocation(this.curProgram!, location),
776
+ v0,
777
+ );
757
778
  }
758
779
 
759
780
  /**
@@ -762,12 +783,11 @@ export class WebGlContextWrapper {
762
783
  * @param location - The location of the uniform variable.
763
784
  * @param value - The array of values to set.
764
785
  */
765
- uniform1iv(
766
- location: WebGLUniformLocation | null,
767
- value: Int32Array | number[],
768
- ) {
769
- const { gl } = this;
770
- gl.uniform1iv(location, value);
786
+ uniform1iv(location: string, value: Int32Array) {
787
+ this.gl.uniform1iv(
788
+ this.gl.getUniformLocation(this.curProgram!, location),
789
+ value,
790
+ );
771
791
  }
772
792
 
773
793
  /**
@@ -777,9 +797,26 @@ export class WebGlContextWrapper {
777
797
  * @param v0 - The first component of the vector.
778
798
  * @param v1 - The second component of the vector.
779
799
  */
780
- uniform2f(location: WebGLUniformLocation | null, v0: number, v1: number) {
781
- const { gl } = this;
782
- gl.uniform2f(location, v0, v1);
800
+ uniform2f(location: string, v0: number, v1: number) {
801
+ this.gl.uniform2f(
802
+ this.gl.getUniformLocation(this.curProgram!, location),
803
+ v0,
804
+ v1,
805
+ );
806
+ }
807
+
808
+ /**
809
+ * Sets the value of a vec3 uniform variable.
810
+ *
811
+ * @param location - The location of the uniform variable.
812
+ * @param v - array of 4 numbers.
813
+ */
814
+ uniform2fa(location: string, value: Vec2) {
815
+ this.gl.uniform2f(
816
+ this.gl.getUniformLocation(this.curProgram!, location),
817
+ value[0],
818
+ value[1],
819
+ );
783
820
  }
784
821
 
785
822
  /**
@@ -788,12 +825,11 @@ export class WebGlContextWrapper {
788
825
  * @param location - The location of the uniform variable.
789
826
  * @param value - The array of vec2 values to set.
790
827
  */
791
- uniform2fv(
792
- location: WebGLUniformLocation | null,
793
- value: Float32Array | number[],
794
- ) {
795
- const { gl } = this;
796
- gl.uniform2fv(location, value);
828
+ uniform2fv(location: string, value: Float32Array) {
829
+ this.gl.uniform2fv(
830
+ this.gl.getUniformLocation(this.curProgram!, location),
831
+ value,
832
+ );
797
833
  }
798
834
 
799
835
  /**
@@ -803,9 +839,12 @@ export class WebGlContextWrapper {
803
839
  * @param v0 - The first component of the vector.
804
840
  * @param v1 - The second component of the vector.
805
841
  */
806
- uniform2i(location: WebGLUniformLocation | null, v0: number, v1: number) {
807
- const { gl } = this;
808
- gl.uniform2i(location, v0, v1);
842
+ uniform2i(location: string, v0: number, v1: number) {
843
+ this.gl.uniform2i(
844
+ this.gl.getUniformLocation(this.curProgram!, location),
845
+ v0,
846
+ v1,
847
+ );
809
848
  }
810
849
 
811
850
  /**
@@ -814,12 +853,11 @@ export class WebGlContextWrapper {
814
853
  * @param location - The location of the uniform variable.
815
854
  * @param value - The array of ivec2 values to set.
816
855
  */
817
- uniform2iv(
818
- location: WebGLUniformLocation | null,
819
- value: Int32Array | number[],
820
- ) {
821
- const { gl } = this;
822
- gl.uniform2iv(location, value);
856
+ uniform2iv(location: string, value: Int32Array) {
857
+ this.gl.uniform2iv(
858
+ this.gl.getUniformLocation(this.curProgram!, location),
859
+ value,
860
+ );
823
861
  }
824
862
 
825
863
  /**
@@ -830,14 +868,28 @@ export class WebGlContextWrapper {
830
868
  * @param v1 - The second component of the vector.
831
869
  * @param v2 - The third component of the vector.
832
870
  */
833
- uniform3f(
834
- location: WebGLUniformLocation | null,
835
- v0: number,
836
- v1: number,
837
- v2: number,
838
- ) {
839
- const { gl } = this;
840
- gl.uniform3f(location, v0, v1, v2);
871
+ uniform3f(location: string, v0: number, v1: number, v2: number) {
872
+ this.gl.uniform3f(
873
+ this.gl.getUniformLocation(this.curProgram!, location),
874
+ v0,
875
+ v1,
876
+ v2,
877
+ );
878
+ }
879
+
880
+ /**
881
+ * Sets the value of a vec3 uniform variable.
882
+ *
883
+ * @param location - The location of the uniform variable.
884
+ * @param v - array of 4 numbers.
885
+ */
886
+ uniform3fa(location: string, value: Vec3) {
887
+ this.gl.uniform3f(
888
+ this.gl.getUniformLocation(this.curProgram!, location),
889
+ value[0],
890
+ value[1],
891
+ value[2],
892
+ );
841
893
  }
842
894
 
843
895
  /**
@@ -846,12 +898,11 @@ export class WebGlContextWrapper {
846
898
  * @param location - The location of the uniform variable.
847
899
  * @param value - The array of vec3 values to set.
848
900
  */
849
- uniform3fv(
850
- location: WebGLUniformLocation | null,
851
- value: Float32Array | number[],
852
- ) {
853
- const { gl } = this;
854
- gl.uniform3fv(location, value);
901
+ uniform3fv(location: string, value: Float32Array) {
902
+ this.gl.uniform3fv(
903
+ this.gl.getUniformLocation(this.curProgram!, location),
904
+ value,
905
+ );
855
906
  }
856
907
 
857
908
  /**
@@ -862,14 +913,13 @@ export class WebGlContextWrapper {
862
913
  * @param v1 - The second component of the vector.
863
914
  * @param v2 - The third component of the vector.
864
915
  */
865
- uniform3i(
866
- location: WebGLUniformLocation | null,
867
- v0: number,
868
- v1: number,
869
- v2: number,
870
- ) {
871
- const { gl } = this;
872
- gl.uniform3i(location, v0, v1, v2);
916
+ uniform3i(location: string, v0: number, v1: number, v2: number) {
917
+ this.gl.uniform3i(
918
+ this.gl.getUniformLocation(this.curProgram!, location),
919
+ v0,
920
+ v1,
921
+ v2,
922
+ );
873
923
  }
874
924
 
875
925
  /**
@@ -878,12 +928,11 @@ export class WebGlContextWrapper {
878
928
  * @param location - The location of the uniform variable.
879
929
  * @param value - The array of ivec3 values to set.
880
930
  */
881
- uniform3iv(
882
- location: WebGLUniformLocation | null,
883
- value: Int32Array | number[],
884
- ) {
885
- const { gl } = this;
886
- gl.uniform3iv(location, value);
931
+ uniform3iv(location: string, value: Int32Array) {
932
+ this.gl.uniform3iv(
933
+ this.gl.getUniformLocation(this.curProgram!, location),
934
+ value,
935
+ );
887
936
  }
888
937
 
889
938
  /**
@@ -895,15 +944,30 @@ export class WebGlContextWrapper {
895
944
  * @param v2 - The third component of the vector.
896
945
  * @param v3 - The fourth component of the vector.
897
946
  */
898
- uniform4f(
899
- location: WebGLUniformLocation | null,
900
- v0: number,
901
- v1: number,
902
- v2: number,
903
- v3: number,
904
- ) {
905
- const { gl } = this;
906
- gl.uniform4f(location, v0, v1, v2, v3);
947
+ uniform4f(location: string, v0: number, v1: number, v2: number, v3: number) {
948
+ this.gl.uniform4f(
949
+ this.gl.getUniformLocation(this.curProgram!, location),
950
+ v0,
951
+ v1,
952
+ v2,
953
+ v3,
954
+ );
955
+ }
956
+
957
+ /**
958
+ * Sets the value of a vec4 uniform variable.
959
+ *
960
+ * @param location - The location of the uniform variable.
961
+ * @param v - array of 4 numbers.
962
+ */
963
+ uniform4fa(location: string, value: Vec4) {
964
+ this.gl.uniform4f(
965
+ this.gl.getUniformLocation(this.curProgram!, location),
966
+ value[0],
967
+ value[1],
968
+ value[2],
969
+ value[3],
970
+ );
907
971
  }
908
972
 
909
973
  /**
@@ -912,12 +976,11 @@ export class WebGlContextWrapper {
912
976
  * @param location - The location of the uniform variable.
913
977
  * @param value - The array of vec4 values to set.
914
978
  */
915
- uniform4fv(
916
- location: WebGLUniformLocation | null,
917
- value: Float32Array | number[],
918
- ) {
919
- const { gl } = this;
920
- gl.uniform4fv(location, value);
979
+ uniform4fv(location: string, value: Float32Array) {
980
+ this.gl.uniform4fv(
981
+ this.gl.getUniformLocation(this.curProgram!, location),
982
+ value,
983
+ );
921
984
  }
922
985
 
923
986
  /**
@@ -929,15 +992,14 @@ export class WebGlContextWrapper {
929
992
  * @param v2 - The third component of the vector.
930
993
  * @param v3 - The fourth component of the vector.
931
994
  */
932
- uniform4i(
933
- location: WebGLUniformLocation | null,
934
- v0: number,
935
- v1: number,
936
- v2: number,
937
- v3: number,
938
- ) {
939
- const { gl } = this;
940
- gl.uniform4i(location, v0, v1, v2, v3);
995
+ uniform4i(location: string, v0: number, v1: number, v2: number, v3: number) {
996
+ this.gl.uniform4i(
997
+ this.gl.getUniformLocation(this.curProgram!, location),
998
+ v0,
999
+ v1,
1000
+ v2,
1001
+ v3,
1002
+ );
941
1003
  }
942
1004
 
943
1005
  /**
@@ -946,12 +1008,11 @@ export class WebGlContextWrapper {
946
1008
  * @param location - The location of the uniform variable.
947
1009
  * @param value - The array of ivec4 values to set.
948
1010
  */
949
- uniform4iv(
950
- location: WebGLUniformLocation | null,
951
- value: Int32Array | number[],
952
- ) {
953
- const { gl } = this;
954
- gl.uniform4iv(location, value);
1011
+ uniform4iv(location: string, value: Int32Array) {
1012
+ this.gl.uniform4iv(
1013
+ this.gl.getUniformLocation(this.curProgram!, location),
1014
+ value,
1015
+ );
955
1016
  }
956
1017
 
957
1018
  /**
@@ -961,12 +1022,12 @@ export class WebGlContextWrapper {
961
1022
  * @param transpose - Whether to transpose the matrix.
962
1023
  * @param value - The array of mat2 values to set.
963
1024
  */
964
- uniformMatrix2fv(
965
- location: WebGLUniformLocation | null,
966
- value: Float32Array | number[],
967
- ) {
968
- const { gl } = this;
969
- gl.uniformMatrix2fv(location, false, value);
1025
+ uniformMatrix2fv(location: string, value: Float32Array) {
1026
+ this.gl.uniformMatrix2fv(
1027
+ this.gl.getUniformLocation(this.curProgram!, location),
1028
+ false,
1029
+ value,
1030
+ );
970
1031
  }
971
1032
 
972
1033
  /**
@@ -974,12 +1035,12 @@ export class WebGlContextWrapper {
974
1035
  * @param location - The location of the uniform variable.
975
1036
  * @param value - The array of mat2 values to set.
976
1037
  */
977
- uniformMatrix3fv(
978
- location: WebGLUniformLocation | null,
979
- value: Float32Array | number[],
980
- ) {
981
- const { gl } = this;
982
- gl.uniformMatrix3fv(location, false, value);
1038
+ uniformMatrix3fv(location: string, value: Float32Array) {
1039
+ this.gl.uniformMatrix3fv(
1040
+ this.gl.getUniformLocation(this.curProgram!, location),
1041
+ false,
1042
+ value,
1043
+ );
983
1044
  }
984
1045
 
985
1046
  /**
@@ -987,12 +1048,12 @@ export class WebGlContextWrapper {
987
1048
  * @param location - The location of the uniform variable.
988
1049
  * @param value - The array of mat4 values to set.
989
1050
  */
990
- uniformMatrix4fv(
991
- location: WebGLUniformLocation | null,
992
- value: Float32Array | number[],
993
- ) {
994
- const { gl } = this;
995
- gl.uniformMatrix4fv(location, false, value);
1051
+ uniformMatrix4fv(location: string, value: Float32Array) {
1052
+ this.gl.uniformMatrix4fv(
1053
+ this.gl.getUniformLocation(this.curProgram!, location),
1054
+ false,
1055
+ value,
1056
+ );
996
1057
  }
997
1058
 
998
1059
  /**
@@ -1004,8 +1065,7 @@ export class WebGlContextWrapper {
1004
1065
  * @returns
1005
1066
  */
1006
1067
  getParameter(pname: GLenum): any {
1007
- const { gl } = this;
1008
- return gl.getParameter(pname);
1068
+ return this.gl.getParameter(pname);
1009
1069
  }
1010
1070
 
1011
1071
  /**
@@ -1019,8 +1079,7 @@ export class WebGlContextWrapper {
1019
1079
  * @param offset
1020
1080
  */
1021
1081
  drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr) {
1022
- const { gl } = this;
1023
- gl.drawElements(mode, count, type, offset);
1082
+ this.gl.drawElements(mode, count, type, offset);
1024
1083
  }
1025
1084
 
1026
1085
  /**
@@ -1032,8 +1091,7 @@ export class WebGlContextWrapper {
1032
1091
  * @returns
1033
1092
  */
1034
1093
  getExtension(name: string) {
1035
- const { gl } = this;
1036
- return gl.getExtension(name);
1094
+ return this.gl.getExtension(name);
1037
1095
  }
1038
1096
 
1039
1097
  /**
@@ -1044,8 +1102,7 @@ export class WebGlContextWrapper {
1044
1102
  * @returns
1045
1103
  */
1046
1104
  getError() {
1047
- const { gl } = this;
1048
- return gl.getError();
1105
+ return this.gl.getError();
1049
1106
  }
1050
1107
 
1051
1108
  /**
@@ -1056,9 +1113,10 @@ export class WebGlContextWrapper {
1056
1113
  * @returns
1057
1114
  */
1058
1115
  createVertexArray() {
1059
- const { gl } = this;
1060
- assertTruthy(gl instanceof WebGL2RenderingContext);
1061
- return gl.createVertexArray();
1116
+ if (this.gl instanceof WebGL2RenderingContext) {
1117
+ return this.gl.createVertexArray();
1118
+ }
1119
+ return undefined;
1062
1120
  }
1063
1121
 
1064
1122
  /**
@@ -1069,9 +1127,9 @@ export class WebGlContextWrapper {
1069
1127
  * @param vertexArray
1070
1128
  */
1071
1129
  bindVertexArray(vertexArray: WebGLVertexArrayObject | null) {
1072
- const { gl } = this;
1073
- assertTruthy(gl instanceof WebGL2RenderingContext);
1074
- gl.bindVertexArray(vertexArray);
1130
+ if (this.gl instanceof WebGL2RenderingContext) {
1131
+ this.gl.bindVertexArray(vertexArray);
1132
+ }
1075
1133
  }
1076
1134
 
1077
1135
  /**
@@ -1084,8 +1142,7 @@ export class WebGlContextWrapper {
1084
1142
  * @returns
1085
1143
  */
1086
1144
  getAttribLocation(program: WebGLProgram, name: string) {
1087
- const { gl } = this;
1088
- return gl.getAttribLocation(program, name);
1145
+ return this.gl.getAttribLocation(program, name);
1089
1146
  }
1090
1147
 
1091
1148
  /**
@@ -1098,8 +1155,7 @@ export class WebGlContextWrapper {
1098
1155
  * @returns
1099
1156
  */
1100
1157
  getUniformLocation(program: WebGLProgram, name: string) {
1101
- const { gl } = this;
1102
- return gl.getUniformLocation(program, name);
1158
+ return this.gl.getUniformLocation(program, name);
1103
1159
  }
1104
1160
 
1105
1161
  /**
@@ -1110,8 +1166,7 @@ export class WebGlContextWrapper {
1110
1166
  * @param index
1111
1167
  */
1112
1168
  enableVertexAttribArray(index: number) {
1113
- const { gl } = this;
1114
- gl.enableVertexAttribArray(index);
1169
+ this.gl.enableVertexAttribArray(index);
1115
1170
  }
1116
1171
 
1117
1172
  /**
@@ -1122,8 +1177,7 @@ export class WebGlContextWrapper {
1122
1177
  * @param index
1123
1178
  */
1124
1179
  disableVertexAttribArray(index: number) {
1125
- const { gl } = this;
1126
- gl.disableVertexAttribArray(index);
1180
+ this.gl.disableVertexAttribArray(index);
1127
1181
  }
1128
1182
 
1129
1183
  /**
@@ -1135,8 +1189,7 @@ export class WebGlContextWrapper {
1135
1189
  * @returns
1136
1190
  */
1137
1191
  createShader(type: number) {
1138
- const { gl } = this;
1139
- return gl.createShader(type);
1192
+ return this.gl.createShader(type);
1140
1193
  }
1141
1194
 
1142
1195
  /**
@@ -1148,8 +1201,7 @@ export class WebGlContextWrapper {
1148
1201
  * @returns
1149
1202
  */
1150
1203
  compileShader(shader: WebGLShader) {
1151
- const { gl } = this;
1152
- gl.compileShader(shader);
1204
+ this.gl.compileShader(shader);
1153
1205
  }
1154
1206
 
1155
1207
  /**
@@ -1161,8 +1213,7 @@ export class WebGlContextWrapper {
1161
1213
  * @param shader
1162
1214
  */
1163
1215
  attachShader(program: WebGLProgram, shader: WebGLShader) {
1164
- const { gl } = this;
1165
- gl.attachShader(program, shader);
1216
+ this.gl.attachShader(program, shader);
1166
1217
  }
1167
1218
 
1168
1219
  /**
@@ -1173,8 +1224,7 @@ export class WebGlContextWrapper {
1173
1224
  * @param program
1174
1225
  */
1175
1226
  linkProgram(program: WebGLProgram) {
1176
- const { gl } = this;
1177
- gl.linkProgram(program);
1227
+ this.gl.linkProgram(program);
1178
1228
  }
1179
1229
 
1180
1230
  /**
@@ -1185,8 +1235,7 @@ export class WebGlContextWrapper {
1185
1235
  * @param shader
1186
1236
  */
1187
1237
  deleteProgram(shader: WebGLProgram) {
1188
- const { gl } = this;
1189
- gl.deleteProgram(shader);
1238
+ this.gl.deleteProgram(shader);
1190
1239
  }
1191
1240
 
1192
1241
  /**
@@ -1198,8 +1247,7 @@ export class WebGlContextWrapper {
1198
1247
  * @param pname
1199
1248
  */
1200
1249
  getShaderParameter(shader: WebGLShader, pname: GLenum) {
1201
- const { gl } = this;
1202
- return gl.getShaderParameter(shader, pname);
1250
+ return this.gl.getShaderParameter(shader, pname);
1203
1251
  }
1204
1252
 
1205
1253
  /**
@@ -1210,8 +1258,7 @@ export class WebGlContextWrapper {
1210
1258
  * @param shader
1211
1259
  */
1212
1260
  getShaderInfoLog(shader: WebGLShader) {
1213
- const { gl } = this;
1214
- return gl.getShaderInfoLog(shader);
1261
+ return this.gl.getShaderInfoLog(shader);
1215
1262
  }
1216
1263
 
1217
1264
  /**
@@ -1222,8 +1269,7 @@ export class WebGlContextWrapper {
1222
1269
  * @returns
1223
1270
  */
1224
1271
  createProgram() {
1225
- const { gl } = this;
1226
- return gl.createProgram();
1272
+ return this.gl.createProgram();
1227
1273
  }
1228
1274
 
1229
1275
  /**
@@ -1236,8 +1282,7 @@ export class WebGlContextWrapper {
1236
1282
  * @returns
1237
1283
  */
1238
1284
  getProgramParameter(program: WebGLProgram, pname: GLenum) {
1239
- const { gl } = this;
1240
- return gl.getProgramParameter(program, pname);
1285
+ return this.gl.getProgramParameter(program, pname);
1241
1286
  }
1242
1287
 
1243
1288
  /**
@@ -1249,8 +1294,7 @@ export class WebGlContextWrapper {
1249
1294
  * @returns
1250
1295
  */
1251
1296
  getProgramInfoLog(program: WebGLProgram) {
1252
- const { gl } = this;
1253
- return gl.getProgramInfoLog(program);
1297
+ return this.gl.getProgramInfoLog(program);
1254
1298
  }
1255
1299
 
1256
1300
  /**
@@ -1262,8 +1306,7 @@ export class WebGlContextWrapper {
1262
1306
  * @param source
1263
1307
  */
1264
1308
  shaderSource(shader: WebGLShader, source: string) {
1265
- const { gl } = this;
1266
- gl.shaderSource(shader, source);
1309
+ this.gl.shaderSource(shader, source);
1267
1310
  }
1268
1311
 
1269
1312
  /**
@@ -1274,8 +1317,7 @@ export class WebGlContextWrapper {
1274
1317
  * @param shader
1275
1318
  */
1276
1319
  deleteShader(shader: WebGLShader) {
1277
- const { gl } = this;
1278
- gl.deleteShader(shader);
1320
+ this.gl.deleteShader(shader);
1279
1321
  }
1280
1322
  }
1281
1323