@lightningjs/renderer 3.0.0-beta9 → 3.0.1

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 (541) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +230 -147
  4. package/dist/exports/canvas.d.ts +1 -1
  5. package/dist/exports/canvas.js +1 -1
  6. package/dist/exports/canvas.js.map +1 -1
  7. package/dist/exports/index.d.ts +5 -6
  8. package/dist/exports/index.js +3 -5
  9. package/dist/exports/index.js.map +1 -1
  10. package/dist/exports/platform.d.ts +7 -0
  11. package/dist/exports/platform.js +27 -0
  12. package/dist/exports/platform.js.map +1 -0
  13. package/dist/exports/webgl.d.ts +2 -1
  14. package/dist/exports/webgl.js +2 -1
  15. package/dist/exports/webgl.js.map +1 -1
  16. package/dist/src/common/CommonTypes.d.ts +15 -3
  17. package/dist/src/core/Autosizer.d.ts +35 -0
  18. package/dist/src/core/Autosizer.js +196 -0
  19. package/dist/src/core/Autosizer.js.map +1 -0
  20. package/dist/src/core/CoreNode.d.ts +107 -59
  21. package/dist/src/core/CoreNode.js +524 -282
  22. package/dist/src/core/CoreNode.js.map +1 -1
  23. package/dist/src/core/CoreTextNode.d.ts +73 -88
  24. package/dist/src/core/CoreTextNode.js +383 -236
  25. package/dist/src/core/CoreTextNode.js.map +1 -1
  26. package/dist/src/core/CoreTextureManager.d.ts +19 -17
  27. package/dist/src/core/CoreTextureManager.js +52 -120
  28. package/dist/src/core/CoreTextureManager.js.map +1 -1
  29. package/dist/src/core/Stage.d.ts +63 -9
  30. package/dist/src/core/Stage.js +233 -133
  31. package/dist/src/core/Stage.js.map +1 -1
  32. package/dist/src/core/TextureError.d.ts +11 -0
  33. package/dist/src/core/TextureError.js +37 -0
  34. package/dist/src/core/TextureError.js.map +1 -0
  35. package/dist/src/core/TextureMemoryManager.d.ts +2 -4
  36. package/dist/src/core/TextureMemoryManager.js +80 -113
  37. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  38. package/dist/src/core/animations/CoreAnimation.d.ts +3 -3
  39. package/dist/src/core/animations/CoreAnimation.js +3 -3
  40. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  41. package/dist/src/core/animations/CoreAnimationController.d.ts +1 -1
  42. package/dist/src/core/animations/CoreAnimationController.js +4 -2
  43. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  44. package/dist/src/core/lib/ImageWorker.js +1 -1
  45. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  46. package/dist/src/core/lib/WebGlContextWrapper.d.ts +69 -97
  47. package/dist/src/core/lib/WebGlContextWrapper.js +192 -152
  48. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  49. package/dist/src/core/lib/collectionUtils.d.ts +4 -0
  50. package/dist/src/core/lib/collectionUtils.js +72 -0
  51. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  52. package/dist/src/core/lib/colorCache.d.ts +1 -0
  53. package/dist/src/core/lib/colorCache.js +19 -0
  54. package/dist/src/core/lib/colorCache.js.map +1 -0
  55. package/dist/src/core/lib/colorParser.d.ts +21 -0
  56. package/dist/src/core/lib/colorParser.js +72 -0
  57. package/dist/src/core/lib/colorParser.js.map +1 -0
  58. package/dist/src/core/lib/textureCompression.d.ts +14 -2
  59. package/dist/src/core/lib/textureCompression.js +311 -67
  60. package/dist/src/core/lib/textureCompression.js.map +1 -1
  61. package/dist/src/core/lib/utils.d.ts +6 -6
  62. package/dist/src/core/lib/utils.js +21 -65
  63. package/dist/src/core/lib/utils.js.map +1 -1
  64. package/dist/src/core/lib/validateImageBitmap.d.ts +1 -2
  65. package/dist/src/core/lib/validateImageBitmap.js +4 -4
  66. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  67. package/dist/src/core/platform.d.ts +10 -0
  68. package/dist/src/core/platform.js +84 -0
  69. package/dist/src/core/platform.js.map +1 -0
  70. package/dist/src/core/platforms/GlContextWrapper.d.ts +136 -0
  71. package/{src/core/text-rendering/TextRenderingUtils.ts → dist/src/core/platforms/GlContextWrapper.js} +32 -36
  72. package/dist/src/core/platforms/GlContextWrapper.js.map +1 -0
  73. package/dist/src/core/platforms/Platform.d.ts +78 -12
  74. package/dist/src/core/platforms/Platform.js +18 -0
  75. package/dist/src/core/platforms/Platform.js.map +1 -1
  76. package/dist/src/core/platforms/web/WebGlContextWrapper.d.ts +776 -0
  77. package/dist/src/core/platforms/web/WebGlContextWrapper.js +1208 -0
  78. package/dist/src/core/platforms/web/WebGlContextWrapper.js.map +1 -0
  79. package/dist/src/core/platforms/web/WebPlatform.d.ts +17 -2
  80. package/dist/src/core/platforms/web/WebPlatform.js +158 -13
  81. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
  82. package/dist/src/core/platforms/web/WebPlatformChrome50.d.ts +19 -0
  83. package/dist/src/core/platforms/web/WebPlatformChrome50.js +54 -0
  84. package/dist/src/core/platforms/web/WebPlatformChrome50.js.map +1 -0
  85. package/dist/src/core/platforms/web/WebPlatformLegacy.d.ts +20 -0
  86. package/dist/src/core/platforms/web/WebPlatformLegacy.js +105 -0
  87. package/dist/src/core/platforms/web/WebPlatformLegacy.js.map +1 -0
  88. package/dist/src/core/platforms/web/WebPlatformNext.d.ts +21 -0
  89. package/dist/src/core/platforms/web/WebPlatformNext.js +52 -0
  90. package/dist/src/core/platforms/web/WebPlatformNext.js.map +1 -0
  91. package/dist/src/core/platforms/web/lib/ImageWorker.d.ts +21 -0
  92. package/dist/src/core/platforms/web/lib/ImageWorker.js +136 -0
  93. package/dist/src/core/platforms/web/lib/ImageWorker.js.map +1 -0
  94. package/dist/src/core/platforms/web/lib/ImageWorkerDefault.d.ts +6 -0
  95. package/dist/src/core/platforms/web/lib/ImageWorkerDefault.js +92 -0
  96. package/dist/src/core/platforms/web/lib/ImageWorkerDefault.js.map +1 -0
  97. package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.d.ts +1 -0
  98. package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.js +63 -0
  99. package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.js.map +1 -0
  100. package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.d.ts +7 -0
  101. package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.js +75 -0
  102. package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.js.map +1 -0
  103. package/dist/src/core/platforms/web/lib/createImageBitmap.d.ts +1 -0
  104. package/dist/src/core/platforms/web/lib/createImageBitmap.js +27 -0
  105. package/dist/src/core/platforms/web/lib/createImageBitmap.js.map +1 -0
  106. package/dist/src/core/platforms/web/lib/textureCompression.d.ts +26 -0
  107. package/dist/src/core/platforms/web/lib/textureCompression.js +301 -0
  108. package/dist/src/core/platforms/web/lib/textureCompression.js.map +1 -0
  109. package/dist/src/core/platforms/web/lib/textureSvg.d.ts +7 -0
  110. package/dist/src/core/platforms/web/lib/textureSvg.js +51 -0
  111. package/dist/src/core/platforms/web/lib/textureSvg.js.map +1 -0
  112. package/dist/src/core/platforms/web/lib/utils.d.ts +5 -0
  113. package/dist/src/core/platforms/web/lib/utils.js +86 -0
  114. package/dist/src/core/platforms/web/lib/utils.js.map +1 -0
  115. package/dist/src/core/renderers/CoreContextTexture.d.ts +2 -1
  116. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
  117. package/dist/src/core/renderers/CoreRenderer.d.ts +4 -40
  118. package/dist/src/core/renderers/CoreRenderer.js +3 -4
  119. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  120. package/dist/src/core/renderers/CoreShader.d.ts +9 -0
  121. package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts → dist/src/core/renderers/CoreShader.js} +28 -32
  122. package/dist/src/core/renderers/CoreShader.js.map +1 -0
  123. package/dist/src/core/renderers/CoreShaderNode.d.ts +10 -0
  124. package/dist/src/core/renderers/CoreShaderNode.js +19 -2
  125. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
  126. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +33 -0
  127. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +250 -0
  128. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -0
  129. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +17 -0
  130. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +125 -0
  131. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -0
  132. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +5 -6
  133. package/dist/src/core/renderers/canvas/CanvasRenderer.js +67 -91
  134. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  135. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +1 -2
  136. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +5 -4
  137. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
  138. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +3 -2
  139. package/dist/src/core/renderers/canvas/CanvasTexture.js +17 -13
  140. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  141. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +13 -0
  142. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +113 -192
  143. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  144. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -2
  145. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -14
  146. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  147. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +10 -0
  148. package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts → dist/src/core/renderers/canvas/shaders/UnsupportedShader.js} +43 -40
  149. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +1 -0
  150. package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +33 -0
  151. package/dist/src/core/renderers/webgl/SdfRenderOp.js +98 -0
  152. package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -0
  153. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +12 -0
  154. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +58 -0
  155. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -0
  156. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +9 -0
  157. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +38 -0
  158. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
  159. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +69 -0
  160. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +272 -0
  161. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
  162. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +34 -0
  163. package/dist/src/core/renderers/webgl/{WebGlRenderOp.js → WebGlCoreRenderOp.js} +43 -47
  164. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
  165. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +133 -0
  166. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +649 -0
  167. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
  168. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +78 -0
  169. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.d.ts +1 -0
  170. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js +2 -0
  171. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js.map +1 -0
  172. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +202 -0
  173. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
  174. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +4 -2
  175. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +14 -6
  176. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  177. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +15 -2
  178. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -5
  179. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
  180. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +19 -9
  181. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +101 -49
  182. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  183. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +11 -23
  184. package/dist/src/core/renderers/webgl/WebGlRenderer.js +124 -133
  185. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  186. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +4 -6
  187. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +3 -3
  188. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  189. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +7 -7
  190. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +60 -38
  191. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  192. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +4 -4
  193. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +1 -2
  194. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  195. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +3 -3
  196. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +38 -37
  197. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  198. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
  199. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +84 -0
  200. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
  201. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
  202. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +108 -0
  203. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
  204. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +29 -0
  205. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +408 -0
  206. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
  207. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +28 -0
  208. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +126 -0
  209. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
  210. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +47 -0
  211. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +148 -0
  212. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
  213. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +31 -0
  214. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +71 -0
  215. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
  216. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +30 -0
  217. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +58 -0
  218. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
  219. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +31 -0
  220. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +71 -0
  221. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
  222. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +31 -0
  223. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +71 -0
  224. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
  225. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +31 -0
  226. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +71 -0
  227. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
  228. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +9 -0
  229. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +136 -0
  230. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
  231. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +36 -0
  232. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +85 -0
  233. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -0
  234. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +45 -0
  235. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +104 -0
  236. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
  237. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +22 -0
  238. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +45 -0
  239. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
  240. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +58 -0
  241. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +80 -0
  242. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -0
  243. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +34 -0
  244. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +113 -0
  245. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
  246. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +40 -0
  247. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +126 -0
  248. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -0
  249. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
  250. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +127 -0
  251. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
  252. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +40 -0
  253. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +71 -0
  254. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
  255. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +115 -0
  256. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
  257. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
  258. package/dist/src/core/shaders/canvas/Border.d.ts +8 -2
  259. package/dist/src/core/shaders/canvas/Border.js +64 -25
  260. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  261. package/dist/src/core/shaders/canvas/HolePunch.js +4 -3
  262. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
  263. package/dist/src/core/shaders/canvas/LinearGradient.js +7 -5
  264. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  265. package/dist/src/core/shaders/canvas/RadialGradient.js +12 -10
  266. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  267. package/dist/src/core/shaders/canvas/Rounded.js +3 -3
  268. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
  269. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +6 -3
  270. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +41 -11
  271. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  272. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +2 -3
  273. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +46 -9
  274. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  275. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +6 -5
  276. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  277. package/dist/src/core/shaders/canvas/Shadow.js +4 -2
  278. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -1
  279. package/dist/src/core/shaders/canvas/utils/render.d.ts +1 -1
  280. package/dist/src/core/shaders/canvas/utils/render.js +31 -18
  281. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
  282. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +11 -1
  283. package/dist/src/core/shaders/templates/BorderTemplate.js +30 -10
  284. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  285. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
  286. package/dist/src/core/shaders/templates/HolePunchTemplate.js +2 -2
  287. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
  288. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +8 -6
  289. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -2
  290. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
  291. package/dist/src/core/shaders/webgl/Border.js +138 -84
  292. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  293. package/dist/src/core/shaders/webgl/Default.js +46 -47
  294. package/dist/src/core/shaders/webgl/Default.js.map +1 -1
  295. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  296. package/dist/src/core/shaders/webgl/HolePunch.js +34 -34
  297. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  298. package/dist/src/core/shaders/webgl/LinearGradient.js +60 -36
  299. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  300. package/dist/src/core/shaders/webgl/RadialGradient.js +60 -37
  301. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  302. package/dist/src/core/shaders/webgl/Rounded.js +74 -72
  303. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
  304. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +172 -113
  305. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  306. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +191 -132
  307. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  308. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +57 -55
  309. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
  310. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
  311. package/dist/src/core/shaders/webgl/SdfShader.js +56 -66
  312. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
  313. package/dist/src/core/shaders/webgl/Shadow.js +89 -83
  314. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -1
  315. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
  316. package/dist/src/core/text-rendering/CanvasFontHandler.js +224 -0
  317. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  318. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
  319. package/dist/src/core/text-rendering/CanvasTextRenderer.js +157 -0
  320. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  321. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +182 -0
  322. package/dist/src/core/text-rendering/SdfFontHandler.js +379 -0
  323. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  324. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
  325. package/dist/src/core/text-rendering/SdfTextRenderer.js +301 -0
  326. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  327. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
  328. package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
  329. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
  330. package/dist/src/core/text-rendering/TextRenderer.d.ts +383 -0
  331. package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts → dist/src/core/text-rendering/TextRenderer.js} +20 -38
  332. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  333. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  334. package/dist/src/core/text-rendering/Utils.d.ts +30 -0
  335. package/dist/src/core/text-rendering/Utils.js +84 -0
  336. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  337. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  338. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  339. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -5
  340. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  341. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -7
  342. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +2 -50
  343. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  344. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
  345. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +87 -46
  346. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  347. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +1 -1
  348. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +8 -66
  349. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  350. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +4 -14
  351. package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -3
  352. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  353. package/dist/src/core/textures/ColorTexture.d.ts +1 -1
  354. package/dist/src/core/textures/ColorTexture.js +3 -4
  355. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  356. package/dist/src/core/textures/ImageTexture.d.ts +33 -14
  357. package/dist/src/core/textures/ImageTexture.js +46 -125
  358. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  359. package/dist/src/core/textures/NoiseTexture.d.ts +3 -3
  360. package/dist/src/core/textures/NoiseTexture.js +8 -8
  361. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  362. package/dist/src/core/textures/RenderTexture.d.ts +7 -7
  363. package/dist/src/core/textures/RenderTexture.js +12 -12
  364. package/dist/src/core/textures/RenderTexture.js.map +1 -1
  365. package/dist/src/core/textures/SubTexture.d.ts +6 -8
  366. package/dist/src/core/textures/SubTexture.js +22 -40
  367. package/dist/src/core/textures/SubTexture.js.map +1 -1
  368. package/dist/src/core/textures/Texture.d.ts +74 -15
  369. package/dist/src/core/textures/Texture.js +131 -19
  370. package/dist/src/core/textures/Texture.js.map +1 -1
  371. package/dist/src/core/utils.d.ts +2 -1
  372. package/dist/src/core/utils.js +1 -1
  373. package/dist/src/core/utils.js.map +1 -1
  374. package/dist/src/main-api/DynamicShaderController.d.ts +29 -0
  375. package/dist/src/main-api/DynamicShaderController.js +58 -0
  376. package/dist/src/main-api/DynamicShaderController.js.map +1 -0
  377. package/dist/src/main-api/Inspector.d.ts +129 -1
  378. package/dist/src/main-api/Inspector.js +462 -23
  379. package/dist/src/main-api/Inspector.js.map +1 -1
  380. package/dist/src/main-api/Renderer.d.ts +223 -41
  381. package/dist/src/main-api/Renderer.js +107 -62
  382. package/dist/src/main-api/Renderer.js.map +1 -1
  383. package/dist/src/main-api/ShaderController.d.ts +31 -0
  384. package/dist/src/main-api/ShaderController.js +37 -0
  385. package/dist/src/main-api/ShaderController.js.map +1 -0
  386. package/dist/src/utils.d.ts +0 -2
  387. package/dist/src/utils.js +0 -36
  388. package/dist/src/utils.js.map +1 -1
  389. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  390. package/exports/canvas-shaders.ts +28 -28
  391. package/exports/canvas.ts +45 -45
  392. package/exports/index.ts +90 -90
  393. package/exports/inspector.ts +24 -24
  394. package/exports/platform.ts +31 -0
  395. package/exports/utils.ts +50 -50
  396. package/exports/webgl-shaders.ts +28 -28
  397. package/exports/webgl.ts +52 -50
  398. package/package.json +16 -15
  399. package/src/common/CommonTypes.ts +163 -146
  400. package/src/common/EventEmitter.ts +77 -77
  401. package/src/common/IAnimationController.ts +92 -92
  402. package/src/common/IEventEmitter.ts +28 -28
  403. package/src/core/Autosizer.ts +224 -0
  404. package/src/core/CoreNode.test.ts +365 -202
  405. package/src/core/CoreNode.ts +2785 -2489
  406. package/src/core/CoreShaderManager.ts +188 -188
  407. package/src/core/CoreTextNode.test.ts +311 -0
  408. package/src/core/CoreTextNode.ts +607 -451
  409. package/src/core/CoreTextureManager.ts +484 -548
  410. package/src/core/Stage.ts +927 -800
  411. package/src/core/TextureError.ts +46 -0
  412. package/src/core/TextureMemoryManager.ts +418 -462
  413. package/src/core/animations/AnimationManager.ts +38 -38
  414. package/src/core/animations/CoreAnimation.ts +290 -291
  415. package/src/core/animations/CoreAnimationController.ts +169 -166
  416. package/src/core/lib/ContextSpy.ts +41 -41
  417. package/src/core/lib/Matrix3d.ts +244 -244
  418. package/src/core/lib/RenderCoords.ts +71 -71
  419. package/src/core/lib/collectionUtils.ts +83 -0
  420. package/src/core/lib/colorCache.ts +20 -0
  421. package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +85 -85
  422. package/src/core/lib/utils.ts +337 -390
  423. package/src/core/platforms/GlContextWrapper.ts +291 -0
  424. package/src/core/platforms/Platform.ts +176 -77
  425. package/src/core/{lib → platforms/web}/WebGlContextWrapper.ts +1547 -1368
  426. package/src/core/platforms/web/WebPlatform.ts +306 -84
  427. package/src/core/platforms/web/WebPlatformChrome50.ts +63 -0
  428. package/src/core/platforms/web/WebPlatformLegacy.ts +150 -0
  429. package/src/core/platforms/web/WebPlatformNext.ts +57 -0
  430. package/src/core/platforms/web/lib/ImageWorker.ts +192 -0
  431. package/src/core/platforms/web/lib/ImageWorkerDefault.ts +117 -0
  432. package/src/core/platforms/web/lib/ImageWorkerLegacy.ts +87 -0
  433. package/src/core/platforms/web/lib/ImageWorkerNoOptions.ts +99 -0
  434. package/src/core/platforms/web/lib/createImageBitmap.ts +40 -0
  435. package/src/core/platforms/web/lib/textureCompression.ts +391 -0
  436. package/src/core/{lib → platforms/web/lib}/textureSvg.ts +66 -78
  437. package/src/core/platforms/web/lib/utils.ts +105 -0
  438. package/src/core/renderers/CoreContextTexture.ts +44 -43
  439. package/src/core/renderers/CoreRenderOp.ts +22 -22
  440. package/src/core/renderers/CoreRenderer.ts +71 -110
  441. package/src/core/renderers/CoreShaderNode.ts +202 -175
  442. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  443. package/src/core/renderers/canvas/CanvasRenderer.ts +258 -302
  444. package/src/core/renderers/canvas/CanvasShaderNode.ts +95 -96
  445. package/src/core/renderers/canvas/CanvasTexture.ts +160 -156
  446. package/src/core/renderers/webgl/SdfRenderOp.ts +106 -0
  447. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +89 -86
  448. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +95 -50
  449. package/src/core/renderers/webgl/WebGlCtxTexture.test.ts +113 -0
  450. package/src/core/renderers/webgl/WebGlCtxTexture.ts +350 -298
  451. package/src/core/renderers/webgl/WebGlRenderer.ts +727 -747
  452. package/src/core/renderers/webgl/WebGlShaderNode.ts +430 -435
  453. package/src/core/renderers/webgl/WebGlShaderProgram.ts +364 -341
  454. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  455. package/src/core/renderers/webgl/internal/RendererUtils.ts +150 -155
  456. package/src/core/renderers/webgl/internal/ShaderUtils.ts +283 -281
  457. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  458. package/src/core/shaders/canvas/Border.ts +132 -78
  459. package/src/core/shaders/canvas/HolePunch.ts +56 -62
  460. package/src/core/shaders/canvas/LinearGradient.ts +73 -71
  461. package/src/core/shaders/canvas/RadialGradient.ts +96 -99
  462. package/src/core/shaders/canvas/Rounded.ts +55 -55
  463. package/src/core/shaders/canvas/RoundedWithBorder.ts +122 -74
  464. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +136 -90
  465. package/src/core/shaders/canvas/RoundedWithShadow.ts +71 -70
  466. package/src/core/shaders/canvas/Shadow.ts +54 -52
  467. package/src/core/shaders/canvas/utils/render.ts +160 -151
  468. package/src/core/shaders/templates/BorderTemplate.ts +145 -115
  469. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  470. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  471. package/src/core/shaders/templates/RadialGradientTemplate.ts +83 -81
  472. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  473. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  474. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  475. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  476. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  477. package/src/core/shaders/utils.ts +46 -46
  478. package/src/core/shaders/webgl/Border.ts +169 -116
  479. package/src/core/shaders/webgl/Default.ts +88 -89
  480. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  481. package/src/core/shaders/webgl/HolePunch.ts +75 -75
  482. package/src/core/shaders/webgl/LinearGradient.ts +106 -82
  483. package/src/core/shaders/webgl/RadialGradient.ts +108 -85
  484. package/src/core/shaders/webgl/Rounded.ts +115 -117
  485. package/src/core/shaders/webgl/RoundedWithBorder.ts +210 -155
  486. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +234 -175
  487. package/src/core/shaders/webgl/RoundedWithShadow.ts +96 -98
  488. package/src/core/shaders/webgl/SdfShader.ts +122 -134
  489. package/src/core/shaders/webgl/Shadow.ts +121 -115
  490. package/src/core/text-rendering/CanvasFontHandler.ts +304 -0
  491. package/src/core/text-rendering/CanvasTextRenderer.ts +255 -0
  492. package/src/core/text-rendering/SdfFontHandler.ts +581 -0
  493. package/src/core/text-rendering/SdfTextRenderer.ts +403 -0
  494. package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
  495. package/src/core/text-rendering/TextRenderer.ts +444 -0
  496. package/src/core/text-rendering/Utils.ts +99 -0
  497. package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +453 -0
  498. package/src/core/textures/ColorTexture.ts +104 -102
  499. package/src/core/textures/ImageTexture.ts +292 -418
  500. package/src/core/textures/NoiseTexture.ts +106 -104
  501. package/src/core/textures/RenderTexture.ts +87 -85
  502. package/src/core/textures/SubTexture.ts +184 -205
  503. package/src/core/textures/Texture.ts +524 -381
  504. package/src/core/utils.ts +229 -227
  505. package/src/env.d.ts +7 -7
  506. package/src/main-api/INode.ts +100 -100
  507. package/src/main-api/Inspector.ts +1278 -569
  508. package/src/main-api/Renderer.ts +1030 -818
  509. package/src/main-api/utils.ts +45 -45
  510. package/src/utils.ts +220 -267
  511. package/COPYING +0 -1
  512. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
  513. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
  514. package/src/core/lib/ImageWorker.ts +0 -286
  515. package/src/core/lib/textureCompression.ts +0 -152
  516. package/src/core/lib/validateImageBitmap.ts +0 -87
  517. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
  518. package/src/core/renderers/webgl/WebGlRenderOp.ts +0 -161
  519. package/src/core/text-rendering/TextTextureRendererUtils.ts +0 -263
  520. package/src/core/text-rendering/TrFontManager.ts +0 -183
  521. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
  522. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
  523. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
  524. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
  525. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
  526. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
  527. package/src/core/text-rendering/font-face-types/utils.ts +0 -39
  528. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -514
  529. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -863
  530. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -793
  531. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
  532. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
  533. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
  534. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
  535. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
  536. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -497
  537. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
  538. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
  539. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
  540. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
  541. package/src/core/text-rendering/renderers/TextRenderer.ts +0 -567
@@ -0,0 +1,776 @@
1
+ import type { Vec2, Vec3, Vec4 } from '../../renderers/webgl/internal/ShaderUtils.js';
2
+ import { GlContextWrapper } from '../GlContextWrapper.js';
3
+ import type { CompressedData } from '../../textures/Texture.js';
4
+ /**
5
+ * Optimized WebGL Context Wrapper
6
+ *
7
+ * @remarks
8
+ * This class contains the subset of the WebGLRenderingContext & WebGL2RenderingContext
9
+ * API that is used by the renderer. Select high volume WebGL methods include
10
+ * caching optimizations to avoid making WebGL calls if the state is already set
11
+ * to the desired value.
12
+ *
13
+ * While most methods contained are direct passthroughs to the WebGL context,
14
+ * some methods combine multiple WebGL calls into one for convenience, modify
15
+ * arguments to be more convenient, or are replaced by more specific methods.
16
+ *
17
+ * Not all methods are optimized. Only methods that are called frequently
18
+ * and/or have a high cost are optimized.
19
+ *
20
+ * A subset of GLenum constants are also exposed as properties on this class
21
+ * for convenience.
22
+ */
23
+ export declare class WebGlContextWrapper extends GlContextWrapper {
24
+ private gl;
25
+ private activeTextureUnit;
26
+ private texture2dUnits;
27
+ private texture2dParams;
28
+ private scissorEnabled;
29
+ private scissorX;
30
+ private scissorY;
31
+ private scissorWidth;
32
+ private scissorHeight;
33
+ private blendEnabled;
34
+ private blendSrcRgb;
35
+ private blendDstRgb;
36
+ private blendSrcAlpha;
37
+ private blendDstAlpha;
38
+ private boundArrayBuffer;
39
+ private boundElementArrayBuffer;
40
+ private curProgram;
41
+ private curUniformLocations;
42
+ readonly canvas: any;
43
+ readonly MAX_RENDERBUFFER_SIZE: any;
44
+ readonly MAX_TEXTURE_SIZE: any;
45
+ readonly MAX_VIEWPORT_DIMS: any;
46
+ readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: any;
47
+ readonly MAX_TEXTURE_IMAGE_UNITS: any;
48
+ readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: any;
49
+ readonly MAX_VERTEX_ATTRIBS: any;
50
+ readonly MAX_VARYING_VECTORS: any;
51
+ readonly MAX_VERTEX_UNIFORM_VECTORS: any;
52
+ readonly MAX_FRAGMENT_UNIFORM_VECTORS: any;
53
+ readonly TEXTURE_MAG_FILTER: any;
54
+ readonly TEXTURE_MIN_FILTER: any;
55
+ readonly TEXTURE_WRAP_S: any;
56
+ readonly TEXTURE_WRAP_T: any;
57
+ readonly LINEAR: any;
58
+ readonly LINEAR_MIPMAP_LINEAR: any;
59
+ readonly CLAMP_TO_EDGE: any;
60
+ readonly RGB: any;
61
+ readonly RGBA: any;
62
+ readonly UNSIGNED_BYTE: any;
63
+ readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: any;
64
+ readonly UNPACK_FLIP_Y_WEBGL: any;
65
+ readonly FLOAT: any;
66
+ readonly TRIANGLES: any;
67
+ readonly UNSIGNED_SHORT: any;
68
+ readonly ONE: any;
69
+ readonly ONE_MINUS_SRC_ALPHA: any;
70
+ readonly VERTEX_SHADER: any;
71
+ readonly FRAGMENT_SHADER: any;
72
+ readonly STATIC_DRAW: any;
73
+ readonly COMPILE_STATUS: any;
74
+ readonly LINK_STATUS: any;
75
+ readonly DYNAMIC_DRAW: any;
76
+ readonly COLOR_ATTACHMENT0: any;
77
+ readonly INVALID_ENUM: number;
78
+ readonly INVALID_OPERATION: number;
79
+ constructor(gl: WebGLRenderingContext | WebGL2RenderingContext);
80
+ /**
81
+ * Returns true if the WebGL context is WebGL2
82
+ *
83
+ * @returns
84
+ */
85
+ isWebGl2(): boolean;
86
+ /**
87
+ * ```
88
+ * gl.activeTexture(textureUnit + gl.TEXTURE0);
89
+ * ```
90
+ *
91
+ * @remarks
92
+ * **WebGL Difference**: `textureUnit` is based from 0, not `gl.TEXTURE0`.
93
+ *
94
+ * @param textureUnit
95
+ */
96
+ activeTexture(textureUnit: number): void;
97
+ /**
98
+ * ```
99
+ * gl.bindTexture(gl.TEXTURE_2D, texture);
100
+ * ```
101
+ * @remarks
102
+ * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
103
+ *
104
+ * @param texture
105
+ */
106
+ bindTexture(texture: WebGLTexture | null): void;
107
+ private _getActiveTexture;
108
+ /**
109
+ * ```
110
+ * gl.texParameteri(gl.TEXTURE_2D, pname, param);
111
+ * ```
112
+ * @remarks
113
+ * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
114
+ *
115
+ * @param pname
116
+ * @param param
117
+ * @returns
118
+ */
119
+ texParameteri(pname: number, param: number): void;
120
+ /**
121
+ * ```
122
+ * gl.texImage2D(
123
+ * gl.TEXTURE_2D,
124
+ * level,
125
+ * internalFormat,
126
+ * width,
127
+ * height,
128
+ * border,
129
+ * format,
130
+ * type,
131
+ * pixels,
132
+ * );
133
+ * ```
134
+ * @remarks
135
+ * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
136
+ *
137
+ * @param level
138
+ * @param internalFormat
139
+ * @param width
140
+ * @param height
141
+ * @param border
142
+ * @param format
143
+ * @param type
144
+ * @param pixels
145
+ */
146
+ texImage2D(level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
147
+ texImage2D(level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource | Uint8Array): void;
148
+ /**
149
+ * ```
150
+ * gl.compressedTexImage2D(gl.TEXTURE_2D, level, internalFormat, width, height, border, data);
151
+ * ```
152
+ *
153
+ * @remarks
154
+ * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
155
+ */
156
+ compressedTexImage2D(level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data?: ArrayBufferView): void;
157
+ /**
158
+ * ```
159
+ * gl.pixelStorei(pname, param);
160
+ * ```
161
+ *
162
+ * @param pname
163
+ * @param param
164
+ */
165
+ pixelStorei(pname: GLenum, param: GLint | GLboolean): void;
166
+ /**
167
+ * ```
168
+ * gl.generateMipmap(gl.TEXTURE_2D);
169
+ * ```
170
+ *
171
+ * @remarks
172
+ * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
173
+ */
174
+ generateMipmap(): void;
175
+ /**
176
+ * ```
177
+ * gl.createTexture();
178
+ * ```
179
+ *
180
+ * @returns
181
+ */
182
+ createTexture(): WebGLTexture;
183
+ /**
184
+ * ```
185
+ * gl.deleteTexture(texture);
186
+ * ```
187
+ *
188
+ * @param texture
189
+ */
190
+ deleteTexture(texture: WebGLTexture | null): void;
191
+ /**
192
+ * ```
193
+ * gl.deleteFramebuffer(framebuffer);
194
+ *
195
+ * @param framebuffer
196
+ */
197
+ deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;
198
+ /**
199
+ * ```
200
+ * gl.viewport(x, y, width, height);
201
+ * ```
202
+ */
203
+ viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
204
+ /**
205
+ * ```
206
+ * gl.clearColor(red, green, blue, alpha);
207
+ * ```
208
+ *
209
+ * @param red
210
+ * @param green
211
+ * @param blue
212
+ * @param alpha
213
+ */
214
+ clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;
215
+ /**
216
+ * ```
217
+ * gl["enable"|"disable"](gl.SCISSOR_TEST);
218
+ * ```
219
+ * @param enable
220
+ */
221
+ setScissorTest(enable: boolean): void;
222
+ /**
223
+ * ```
224
+ * gl.scissor(x, y, width, height);
225
+ * ```
226
+ *
227
+ * @param x
228
+ * @param y
229
+ * @param width
230
+ * @param height
231
+ */
232
+ scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
233
+ /**
234
+ * ```
235
+ * gl["enable"|"disable"](gl.BLEND);
236
+ * ```
237
+ *
238
+ * @param blend
239
+ * @returns
240
+ */
241
+ setBlend(blend: boolean): void;
242
+ /**
243
+ * ```
244
+ * gl.blendFunc(src, dst);
245
+ * ```
246
+ *
247
+ * @param src
248
+ * @param dst
249
+ */
250
+ blendFunc(src: GLenum, dst: GLenum): void;
251
+ /**
252
+ * ```
253
+ * gl.createBuffer();
254
+ * ```
255
+ *
256
+ * @returns
257
+ */
258
+ createBuffer(): WebGLBuffer;
259
+ /**
260
+ * ```
261
+ * gl.createFramebuffer();
262
+ * ```
263
+ * @returns
264
+ */
265
+ createFramebuffer(): WebGLFramebuffer;
266
+ /**
267
+ * ```
268
+ * gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
269
+ * ```
270
+ *
271
+ * @param framebuffer
272
+ */
273
+ bindFramebuffer(framebuffer: WebGLFramebuffer | null): void;
274
+ /**
275
+ * ```
276
+ * gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
277
+ * ```
278
+ * @remarks
279
+ * **WebGL Difference**: Bind target is always `gl.FRAMEBUFFER` and textarget is always `gl.TEXTURE_2D`
280
+ */
281
+ framebufferTexture2D(attachment: GLenum, texture: WebGLTexture | null, level: GLint): void;
282
+ /**
283
+ * ```
284
+ * gl.clear(gl.COLOR_BUFFER_BIT);
285
+ * ```
286
+ *
287
+ * @remarks
288
+ * **WebGL Difference**: Clear mask is always `gl.COLOR_BUFFER_BIT`
289
+ */
290
+ clear(): void;
291
+ /**
292
+ * ```
293
+ * gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
294
+ * gl.bufferData(gl.ARRAY_BUFFER, data, usage);
295
+ * ```
296
+ *
297
+ * @remarks
298
+ * **WebGL Combo**: `gl.bindBuffer` and `gl.bufferData` are combined into one function.
299
+ *
300
+ * @param buffer
301
+ * @param data
302
+ * @param usage
303
+ */
304
+ arrayBufferData(buffer: WebGLBuffer | null, data: ArrayBufferView, usage: GLenum): void;
305
+ /**
306
+ * ```
307
+ * gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
308
+ * gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, usage);
309
+ * ```
310
+ * @remarks
311
+ * **WebGL Combo**: `gl.bindBuffer` and `gl.bufferData` are combined into one function.
312
+ *
313
+ * @param buffer
314
+ * @param data
315
+ * @param usage
316
+ */
317
+ elementArrayBufferData(buffer: WebGLBuffer | null, data: ArrayBufferView, usage: GLenum): void;
318
+ /**
319
+ * ```
320
+ * gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
321
+ * gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
322
+ * ```
323
+ *
324
+ * @remarks
325
+ * **WebGL Combo**: `gl.bindBuffer` and `gl.vertexAttribPointer` are combined into one function.
326
+ *
327
+ * @param buffer
328
+ * @param index
329
+ * @param size
330
+ * @param type
331
+ * @param normalized
332
+ * @param stride
333
+ * @param offset
334
+ */
335
+ vertexAttribPointer(buffer: WebGLBuffer, index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;
336
+ /**
337
+ * Returns object with Attribute names as key and numbers as location values
338
+ *
339
+ * @param program
340
+ * @returns object with numbers
341
+ */
342
+ getUniformLocations(program: WebGLProgram): Record<string, WebGLUniformLocation>;
343
+ /**
344
+ * Returns object with Attribute names as key and numbers as location values
345
+ * @param program
346
+ * @returns object with numbers
347
+ */
348
+ getAttributeLocations(program: WebGLProgram): string[];
349
+ /**
350
+ * ```
351
+ * gl.useProgram(program);
352
+ * ```
353
+ *
354
+ * @param program
355
+ * @returns
356
+ */
357
+ useProgram(program: WebGLProgram | null, uniformLocations: Record<string, WebGLUniformLocation>): void;
358
+ /**
359
+ * Sets the value of a single float uniform variable.
360
+ *
361
+ * @param location - The location of the uniform variable.
362
+ * @param v0 - The value to set.
363
+ */
364
+ uniform1f(location: string, v0: number): void;
365
+ /**
366
+ * Sets the value of a float array uniform variable.
367
+ *
368
+ * @param location - The location of the uniform variable.
369
+ * @param value - The array of values to set.
370
+ */
371
+ uniform1fv(location: string, value: Float32Array): void;
372
+ /**
373
+ * Sets the value of a single integer uniform variable.
374
+ *
375
+ * @param location - The location of the uniform variable.
376
+ * @param v0 - The value to set.
377
+ */
378
+ uniform1i(location: string, v0: number): void;
379
+ /**
380
+ * Sets the value of an integer array uniform variable.
381
+ *
382
+ * @param location - The location of the uniform variable.
383
+ * @param value - The array of values to set.
384
+ */
385
+ uniform1iv(location: string, value: Int32Array): void;
386
+ /**
387
+ * Sets the value of a vec2 uniform variable.
388
+ *
389
+ * @param location - The location of the uniform variable.
390
+ * @param v0 - The first component of the vector.
391
+ * @param v1 - The second component of the vector.
392
+ */
393
+ uniform2f(location: string, v0: number, v1: number): void;
394
+ /**
395
+ * Sets the value of a vec3 uniform variable.
396
+ *
397
+ * @param location - The location of the uniform variable.
398
+ * @param v - array of 4 numbers.
399
+ */
400
+ uniform2fa(location: string, value: Vec2): void;
401
+ /**
402
+ * Sets the value of a vec2 array uniform variable.
403
+ *
404
+ * @param location - The location of the uniform variable.
405
+ * @param value - The array of vec2 values to set.
406
+ */
407
+ uniform2fv(location: string, value: Float32Array): void;
408
+ /**
409
+ * Sets the value of a ivec2 uniform variable.
410
+ *
411
+ * @param location - The location of the uniform variable.
412
+ * @param v0 - The first component of the vector.
413
+ * @param v1 - The second component of the vector.
414
+ */
415
+ uniform2i(location: string, v0: number, v1: number): void;
416
+ /**
417
+ * Sets the value of an ivec2 array uniform variable.
418
+ *
419
+ * @param location - The location of the uniform variable.
420
+ * @param value - The array of ivec2 values to set.
421
+ */
422
+ uniform2iv(location: string, value: Int32Array): void;
423
+ /**
424
+ * Sets the value of a vec3 uniform variable.
425
+ *
426
+ * @param location - The location of the uniform variable.
427
+ * @param v0 - The first component of the vector.
428
+ * @param v1 - The second component of the vector.
429
+ * @param v2 - The third component of the vector.
430
+ */
431
+ uniform3f(location: string, v0: number, v1: number, v2: number): void;
432
+ /**
433
+ * Sets the value of a vec3 uniform variable.
434
+ *
435
+ * @param location - The location of the uniform variable.
436
+ * @param v - array of 4 numbers.
437
+ */
438
+ uniform3fa(location: string, value: Vec3): void;
439
+ /**
440
+ * Sets the value of a vec3 array uniform variable.
441
+ *
442
+ * @param location - The location of the uniform variable.
443
+ * @param value - The array of vec3 values to set.
444
+ */
445
+ uniform3fv(location: string, value: Float32Array): void;
446
+ /**
447
+ * Sets the value of a ivec3 uniform variable.
448
+ *
449
+ * @param location - The location of the uniform variable.
450
+ * @param v0 - The first component of the vector.
451
+ * @param v1 - The second component of the vector.
452
+ * @param v2 - The third component of the vector.
453
+ */
454
+ uniform3i(location: string, v0: number, v1: number, v2: number): void;
455
+ /**
456
+ * Sets the value of an ivec3 array uniform variable.
457
+ *
458
+ * @param location - The location of the uniform variable.
459
+ * @param value - The array of ivec3 values to set.
460
+ */
461
+ uniform3iv(location: string, value: Int32Array): void;
462
+ /**
463
+ * Sets the value of a vec4 uniform variable.
464
+ *
465
+ * @param location - The location of the uniform variable.
466
+ * @param v0 - The first component of the vector.
467
+ * @param v1 - The second component of the vector.
468
+ * @param v2 - The third component of the vector.
469
+ * @param v3 - The fourth component of the vector.
470
+ */
471
+ uniform4f(location: string, v0: number, v1: number, v2: number, v3: number): void;
472
+ /**
473
+ * Sets the value of a vec4 uniform variable.
474
+ *
475
+ * @param location - The location of the uniform variable.
476
+ * @param v - array of 4 numbers.
477
+ */
478
+ uniform4fa(location: string, value: Vec4): void;
479
+ /**
480
+ * Sets the value of a vec4 array uniform variable.
481
+ *
482
+ * @param location - The location of the uniform variable.
483
+ * @param value - The array of vec4 values to set.
484
+ */
485
+ uniform4fv(location: string, value: Float32Array): void;
486
+ /**
487
+ * Sets the value of a ivec4 uniform variable.
488
+ *
489
+ * @param location - The location of the uniform variable.
490
+ * @param v0 - The first component of the vector.
491
+ * @param v1 - The second component of the vector.
492
+ * @param v2 - The third component of the vector.
493
+ * @param v3 - The fourth component of the vector.
494
+ */
495
+ uniform4i(location: string, v0: number, v1: number, v2: number, v3: number): void;
496
+ /**
497
+ * Sets the value of an ivec4 array uniform variable.
498
+ *
499
+ * @param location - The location of the uniform variable.
500
+ * @param value - The array of ivec4 values to set.
501
+ */
502
+ uniform4iv(location: string, value: Int32Array): void;
503
+ /**
504
+ * Sets the value of a mat2 uniform variable.
505
+ *
506
+ * @param location - The location of the uniform variable.
507
+ * @param transpose - Whether to transpose the matrix.
508
+ * @param value - The array of mat2 values to set.
509
+ */
510
+ uniformMatrix2fv(location: string, value: Float32Array): void;
511
+ /**
512
+ * Sets the value of a mat2 uniform variable.
513
+ * @param location - The location of the uniform variable.
514
+ * @param value - The array of mat2 values to set.
515
+ */
516
+ uniformMatrix3fv(location: string, value: Float32Array): void;
517
+ /**
518
+ * Sets the value of a mat4 uniform variable.
519
+ * @param location - The location of the uniform variable.
520
+ * @param value - The array of mat4 values to set.
521
+ */
522
+ uniformMatrix4fv(location: string, value: Float32Array): void;
523
+ /**
524
+ * ```
525
+ * gl.getParameter(pname);
526
+ * ```
527
+ *
528
+ * @param pname
529
+ * @returns
530
+ */
531
+ getParameter(pname: GLenum): any;
532
+ /**
533
+ * ```
534
+ * gl.drawElements(mode, count, type, offset);
535
+ * ```
536
+ *
537
+ * @param mode
538
+ * @param count
539
+ * @param type
540
+ * @param offset
541
+ */
542
+ drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;
543
+ /**
544
+ * ```
545
+ * gl.drawArrays(mode, first, count);
546
+ * ```
547
+ *
548
+ * @param mode
549
+ * @param first
550
+ * @param count
551
+ */
552
+ drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;
553
+ /**
554
+ * ```
555
+ * gl.drawArrays(mode, first, count);
556
+ * ```
557
+ *
558
+ * @param name
559
+ * @returns
560
+ */
561
+ getExtension(name: string): any;
562
+ /**
563
+ * ```
564
+ * gl.getError(type);
565
+ * ```
566
+ *
567
+ * @returns
568
+ */
569
+ getError(): number;
570
+ /**
571
+ * ```
572
+ * gl.createVertexArray();
573
+ * ```
574
+ *
575
+ * @returns
576
+ */
577
+ createVertexArray(): WebGLVertexArrayObject | undefined;
578
+ /**
579
+ * ```
580
+ * gl.bindVertexArray(vertexArray);
581
+ * ```
582
+ *
583
+ * @param vertexArray
584
+ */
585
+ bindVertexArray(vertexArray: WebGLVertexArrayObject | null): void;
586
+ /**
587
+ * ```
588
+ * gl.getAttribLocation(program, name);
589
+ * ```
590
+ *
591
+ * @param program
592
+ * @param name
593
+ * @returns
594
+ */
595
+ getAttribLocation(program: WebGLProgram, name: string): number;
596
+ /**
597
+ * ```
598
+ * gl.getUniformLocation(program, name);
599
+ * ```
600
+ *
601
+ * @param program
602
+ * @param name
603
+ * @returns
604
+ */
605
+ getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;
606
+ /**
607
+ * ```
608
+ * gl.enableVertexAttribArray(index);
609
+ * ```
610
+ *
611
+ * @param index
612
+ */
613
+ enableVertexAttribArray(index: number): void;
614
+ /**
615
+ * ```
616
+ * gl.disableVertexAttribArray(index);
617
+ * ```
618
+ *
619
+ * @param index
620
+ */
621
+ disableVertexAttribArray(index: number): void;
622
+ /**
623
+ * ```
624
+ * gl.createShader(type);
625
+ * ```
626
+ *
627
+ * @param type
628
+ * @returns
629
+ */
630
+ createShader(type: number): WebGLShader | null;
631
+ /**
632
+ * ```
633
+ * gl.compileShader(shader);
634
+ * ```
635
+ *
636
+ * @param shader
637
+ * @returns
638
+ */
639
+ compileShader(shader: WebGLShader): void;
640
+ /**
641
+ * ```
642
+ * gl.attachShader(program, shader);
643
+ * ```
644
+ *
645
+ * @param program
646
+ * @param shader
647
+ */
648
+ attachShader(program: WebGLProgram, shader: WebGLShader): void;
649
+ /**
650
+ * ```
651
+ * gl.linkProgram(program);
652
+ * ```
653
+ *
654
+ * @param program
655
+ */
656
+ linkProgram(program: WebGLProgram): void;
657
+ /**
658
+ * ```
659
+ * gl.deleteProgram(shader);
660
+ * ```
661
+ *
662
+ * @param shader
663
+ */
664
+ deleteProgram(shader: WebGLProgram): void;
665
+ /**
666
+ * ```
667
+ * gl.getShaderParameter(shader, pname);
668
+ * ```
669
+ *
670
+ * @param shader
671
+ * @param pname
672
+ */
673
+ getShaderParameter(shader: WebGLShader, pname: GLenum): any;
674
+ /**
675
+ * ```
676
+ * gl.getShaderInfoLog(shader);
677
+ * ```
678
+ *
679
+ * @param shader
680
+ */
681
+ getShaderInfoLog(shader: WebGLShader): string | null;
682
+ /**
683
+ * ```
684
+ * gl.createProgram();
685
+ * ```
686
+ *
687
+ * @returns
688
+ */
689
+ createProgram(): WebGLProgram;
690
+ /**
691
+ * ```
692
+ * gl.getProgramParameter(program, pname);
693
+ * ```
694
+ *
695
+ * @param program
696
+ * @param pname
697
+ * @returns
698
+ */
699
+ getProgramParameter(program: WebGLProgram, pname: GLenum): any;
700
+ /**
701
+ * ```
702
+ * gl.getProgramInfoLog(program);
703
+ * ```
704
+ *
705
+ * @param program
706
+ * @returns
707
+ */
708
+ getProgramInfoLog(program: WebGLProgram): string | null;
709
+ /**
710
+ * ```
711
+ * gl.shaderSource(shader, source);
712
+ * ```
713
+ *
714
+ * @param shader
715
+ * @param source
716
+ */
717
+ shaderSource(shader: WebGLShader, source: string): void;
718
+ /**
719
+ * ```
720
+ * gl.deleteShader(shader);
721
+ * ```
722
+ *
723
+ * @param shader
724
+ */
725
+ deleteShader(shader: WebGLShader): void;
726
+ /**
727
+ * ```
728
+ * gl.deleteBuffer(buffer);
729
+ * ```
730
+ *
731
+ * @param buffer - The buffer to delete
732
+ */
733
+ deleteBuffer(buffer: WebGLBuffer): void;
734
+ /**
735
+ * ```
736
+ * gl.deleteVertexArray(vertexArray);
737
+ * ```
738
+ *
739
+ * @param vertexArray - The vertex array object to delete
740
+ */
741
+ deleteVertexArray(vertexArray: WebGLVertexArrayObject): void;
742
+ /**
743
+ * Check for WebGL errors and return error information
744
+ * @param operation Description of the operation for error reporting
745
+ * @returns Object with error information or null if no error
746
+ */
747
+ checkError(operation: string): {
748
+ error: number;
749
+ errorName: string;
750
+ message: string;
751
+ } | null;
752
+ /**
753
+ *
754
+ * Compressed Textures support
755
+ */
756
+ uploadKTX(texture: WebGLTexture, data: CompressedData): void;
757
+ uploadPVR(texture: WebGLTexture, data: CompressedData): void;
758
+ uploadASTC(texture: WebGLTexture, data: CompressedData): void;
759
+ }
760
+ type IsUniformMethod<MethodName, MethodType> = MethodName extends `uniform${string}` ? MethodType extends (location: WebGLUniformLocation | null, ...args: any[]) => void ? true : false : false;
761
+ export type UniformMethodMap = {
762
+ [Key in keyof WebGLRenderingContext as IsUniformMethod<Key, WebGLRenderingContext[Key]> extends true ? Key : never]: WebGLRenderingContext[Key] extends (location: WebGLUniformLocation | null, ...args: infer T) => void ? T : never;
763
+ };
764
+ /**
765
+ * Compare two arrays for equality.
766
+ *
767
+ * @remarks
768
+ * This function will not try to compare nested arrays or Float32Arrays and
769
+ * instead will always return false when they are encountered.
770
+ *
771
+ * @param a
772
+ * @param b
773
+ * @returns
774
+ */
775
+ export declare function compareArrays<T>(a: T[], b: T[]): boolean;
776
+ export {};