@lightningjs/renderer 2.13.0 → 3.0.0-beta1

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