@lightningjs/renderer 0.7.5 → 0.8.0

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 (252) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +233 -221
  4. package/dist/src/common/CommonTypes.d.ts +12 -0
  5. package/dist/src/core/CoreNode.d.ts +83 -9
  6. package/dist/src/core/CoreNode.js +232 -44
  7. package/dist/src/core/CoreNode.js.map +1 -1
  8. package/dist/src/core/CoreTextNode.d.ts +6 -1
  9. package/dist/src/core/CoreTextNode.js +33 -20
  10. package/dist/src/core/CoreTextNode.js.map +1 -1
  11. package/dist/src/core/CoreTextureManager.d.ts +3 -1
  12. package/dist/src/core/CoreTextureManager.js +11 -2
  13. package/dist/src/core/CoreTextureManager.js.map +1 -1
  14. package/dist/src/core/Stage.d.ts +6 -0
  15. package/dist/src/core/Stage.js +16 -1
  16. package/dist/src/core/Stage.js.map +1 -1
  17. package/dist/src/core/TextureMemoryManager.d.ts +12 -0
  18. package/dist/src/core/TextureMemoryManager.js +42 -0
  19. package/dist/src/core/TextureMemoryManager.js.map +1 -0
  20. package/dist/src/core/lib/ImageWorker.d.ts +0 -1
  21. package/dist/src/core/lib/ImageWorker.js +55 -40
  22. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  23. package/dist/src/core/lib/RenderCoords.d.ts +13 -0
  24. package/dist/src/core/lib/RenderCoords.js +63 -0
  25. package/dist/src/core/lib/RenderCoords.js.map +1 -0
  26. package/dist/src/core/lib/WebGlContext.d.ts +414 -0
  27. package/dist/src/core/lib/WebGlContext.js +640 -0
  28. package/dist/src/core/lib/WebGlContext.js.map +1 -0
  29. package/dist/src/core/lib/utils.d.ts +1 -0
  30. package/dist/src/core/lib/utils.js +6 -0
  31. package/dist/src/core/lib/utils.js.map +1 -1
  32. package/dist/src/core/platform.js +8 -0
  33. package/dist/src/core/platform.js.map +1 -1
  34. package/dist/src/core/renderers/CoreContextTexture.d.ts +5 -1
  35. package/dist/src/core/renderers/CoreContextTexture.js +3 -1
  36. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
  37. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +2 -1
  38. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +2 -2
  39. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
  40. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +3 -1
  41. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +26 -6
  42. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  43. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +3 -0
  44. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +4 -2
  45. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  46. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +9 -0
  47. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +14 -0
  48. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  49. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +47 -47
  50. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  51. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  52. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  53. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +49 -49
  54. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  55. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +5 -5
  56. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  57. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  58. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  59. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  60. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  61. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  62. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +44 -57
  63. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  64. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +1 -0
  65. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +33 -39
  66. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  67. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  68. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  69. package/dist/src/core/scene/Scene.d.ts +59 -0
  70. package/dist/src/core/scene/Scene.js +106 -0
  71. package/dist/src/core/scene/Scene.js.map +1 -0
  72. package/dist/src/core/text-rendering/TrFontManager.js +30 -25
  73. package/dist/src/core/text-rendering/TrFontManager.js.map +1 -1
  74. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +2 -0
  75. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +26 -2
  76. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  77. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +8 -0
  78. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +34 -6
  79. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  80. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +8 -0
  81. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +29 -0
  82. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +1 -0
  83. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +1 -3
  84. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  85. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +19 -0
  86. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +84 -0
  87. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +1 -0
  88. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +8 -0
  89. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +40 -0
  90. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +1 -0
  91. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +2 -0
  92. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +41 -0
  93. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +1 -0
  94. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +1 -0
  95. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +4 -0
  96. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +1 -0
  97. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +1 -0
  98. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +2 -0
  99. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +1 -0
  100. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
  101. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
  102. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
  103. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +9 -0
  104. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +32 -0
  105. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +1 -0
  106. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +31 -0
  107. package/dist/src/core/text-rendering/renderers/TextRenderer.js +26 -0
  108. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  109. package/dist/src/core/textures/ImageTexture.js +16 -2
  110. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  111. package/dist/src/core/textures/Texture.d.ts +27 -2
  112. package/dist/src/core/textures/Texture.js +30 -1
  113. package/dist/src/core/textures/Texture.js.map +1 -1
  114. package/dist/src/core/utils.d.ts +1 -1
  115. package/dist/src/main-api/ICoreDriver.d.ts +1 -0
  116. package/dist/src/main-api/Inspector.js +2 -1
  117. package/dist/src/main-api/Inspector.js.map +1 -1
  118. package/dist/src/main-api/RendererMain.d.ts +15 -0
  119. package/dist/src/main-api/RendererMain.js +7 -1
  120. package/dist/src/main-api/RendererMain.js.map +1 -1
  121. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +1 -0
  122. package/dist/src/render-drivers/main/MainCoreDriver.js +8 -0
  123. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  124. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +5 -0
  125. package/dist/src/render-drivers/main/MainOnlyNode.js +26 -0
  126. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -1
  127. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +2 -0
  128. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  129. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +2 -0
  130. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
  131. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +3 -0
  132. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
  133. package/dist/src/render-drivers/threadx/worker/renderer.js +2 -0
  134. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  135. package/dist/src/utils.d.ts +6 -0
  136. package/dist/src/utils.js +9 -1
  137. package/dist/src/utils.js.map +1 -1
  138. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  139. package/exports/core-api.ts +102 -102
  140. package/exports/main-api.ts +60 -60
  141. package/exports/utils.ts +41 -41
  142. package/package.json +1 -1
  143. package/scripts/please-use-pnpm.js +13 -13
  144. package/src/common/CommonTypes.ts +132 -113
  145. package/src/common/EventEmitter.ts +77 -77
  146. package/src/common/IAnimationController.ts +29 -29
  147. package/src/core/CoreExtension.ts +32 -32
  148. package/src/core/CoreNode.ts +1199 -955
  149. package/src/core/CoreShaderManager.ts +243 -243
  150. package/src/core/CoreTextNode.ts +400 -391
  151. package/src/core/CoreTextureManager.ts +339 -326
  152. package/src/core/Stage.ts +375 -354
  153. package/src/core/TextureMemoryManager.ts +66 -0
  154. package/src/core/animations/AnimationManager.ts +38 -38
  155. package/src/core/animations/CoreAnimation.ts +181 -181
  156. package/src/core/animations/CoreAnimationController.ts +148 -148
  157. package/src/core/lib/ContextSpy.ts +41 -41
  158. package/src/core/lib/ImageWorker.ts +149 -135
  159. package/src/core/lib/Matrix3d.ts +290 -290
  160. package/src/core/lib/RenderCoords.ts +86 -0
  161. package/src/core/lib/WebGlContextWrapper.ts +992 -992
  162. package/src/core/lib/textureCompression.ts +152 -152
  163. package/src/core/lib/utils.ts +250 -241
  164. package/src/core/platform.ts +54 -46
  165. package/src/core/renderers/CoreContextTexture.ts +35 -30
  166. package/src/core/renderers/CoreRenderOp.ts +22 -22
  167. package/src/core/renderers/CoreRenderer.ts +63 -63
  168. package/src/core/renderers/CoreShader.ts +41 -41
  169. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +42 -37
  170. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +261 -230
  171. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +107 -107
  172. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +528 -520
  173. package/src/core/renderers/webgl/WebGlCoreShader.ts +337 -337
  174. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  175. package/src/core/renderers/webgl/internal/RendererUtils.ts +148 -131
  176. package/src/core/renderers/webgl/internal/ShaderUtils.ts +136 -136
  177. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  178. package/src/core/renderers/webgl/shaders/DefaultShader.ts +95 -95
  179. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
  180. package/src/core/renderers/webgl/shaders/DynamicShader.ts +474 -474
  181. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +161 -161
  182. package/src/core/renderers/webgl/shaders/SdfShader.ts +174 -174
  183. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
  184. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +86 -86
  185. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
  186. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
  187. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
  188. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +33 -33
  189. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +135 -135
  190. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +145 -145
  191. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
  192. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +160 -176
  193. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +153 -159
  194. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +186 -186
  195. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +121 -121
  196. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +114 -114
  197. package/src/core/text-rendering/TextTextureRendererUtils.ts +189 -189
  198. package/src/core/text-rendering/TrFontManager.ts +170 -166
  199. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +141 -141
  200. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  201. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  202. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +169 -169
  203. package/src/core/text-rendering/font-face-types/TrFontFace.ts +105 -105
  204. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +77 -77
  205. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +780 -751
  206. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +741 -741
  207. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +812 -778
  208. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  209. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  210. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  211. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  212. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +84 -84
  213. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  214. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  215. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +391 -393
  216. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  217. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +51 -51
  218. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  219. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  220. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  221. package/src/core/text-rendering/renderers/TextRenderer.ts +548 -504
  222. package/src/core/textures/ColorTexture.ts +86 -86
  223. package/src/core/textures/ImageTexture.ts +154 -140
  224. package/src/core/textures/NoiseTexture.ts +96 -96
  225. package/src/core/textures/SubTexture.ts +143 -143
  226. package/src/core/textures/Texture.ts +261 -218
  227. package/src/core/utils.ts +224 -224
  228. package/src/env.d.ts +7 -7
  229. package/src/main-api/ICoreDriver.ts +68 -66
  230. package/src/main-api/INode.ts +499 -499
  231. package/src/main-api/Inspector.ts +440 -439
  232. package/src/main-api/RendererMain.ts +676 -652
  233. package/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.ts +45 -45
  234. package/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.ts +154 -154
  235. package/src/main-api/texture-usage-trackers/TextureUsageTracker.ts +54 -54
  236. package/src/render-drivers/main/MainCoreDriver.ts +158 -148
  237. package/src/render-drivers/main/MainOnlyNode.ts +500 -466
  238. package/src/render-drivers/main/MainOnlyTextNode.ts +261 -261
  239. package/src/render-drivers/threadx/NodeStruct.ts +300 -300
  240. package/src/render-drivers/threadx/SharedNode.ts +97 -97
  241. package/src/render-drivers/threadx/TextNodeStruct.ts +211 -211
  242. package/src/render-drivers/threadx/ThreadXCoreDriver.ts +287 -285
  243. package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +99 -99
  244. package/src/render-drivers/threadx/ThreadXMainNode.ts +192 -192
  245. package/src/render-drivers/threadx/ThreadXMainTextNode.ts +85 -85
  246. package/src/render-drivers/threadx/ThreadXRendererMessage.ts +112 -110
  247. package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +245 -238
  248. package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +149 -149
  249. package/src/render-drivers/threadx/worker/renderer.ts +153 -151
  250. package/src/render-drivers/utils.ts +97 -97
  251. package/src/utils.ts +216 -207
  252. package/COPYING +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderCoords.js","sourceRoot":"","sources":["../../../../src/core/lib/RenderCoords.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,414 @@
1
+ export declare class WebGlContext {
2
+ private gl;
3
+ private activeTextureUnit;
4
+ private texture2dUnits;
5
+ private texture2dParams;
6
+ private scissorEnabled;
7
+ private scissorX;
8
+ private scissorY;
9
+ private scissorWidth;
10
+ private scissorHeight;
11
+ private blendEnabled;
12
+ private blendSrcRgb;
13
+ private blendDstRgb;
14
+ private blendSrcAlpha;
15
+ private blendDstAlpha;
16
+ private boundArrayBuffer;
17
+ private boundElementArrayBuffer;
18
+ private curProgram;
19
+ private programUniforms;
20
+ constructor(gl: WebGLRenderingContext | WebGL2RenderingContext);
21
+ /**
22
+ * ```
23
+ * gl.activeTexture(textureUnit + gl.TEXTURE0);
24
+ * ```
25
+ *
26
+ * @remarks
27
+ * **WebGL Difference**: `textureUnit` is based from 0, not `gl.TEXTURE0`.
28
+ *
29
+ * @param textureUnit
30
+ */
31
+ activeTexture(textureUnit: number): void;
32
+ /**
33
+ * ```
34
+ * gl.bindTexture(gl.TEXTURE_2D, texture);
35
+ * ```
36
+ * @remarks
37
+ * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
38
+ *
39
+ * @param texture
40
+ */
41
+ bindTexture(texture: WebGLTexture | null): void;
42
+ private _getActiveTexture;
43
+ /**
44
+ * ```
45
+ * gl.texParameteri(gl.TEXTURE_2D, pname, param)
46
+ * ```
47
+ * @remarks
48
+ * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
49
+ *
50
+ * @param pname
51
+ * @param param
52
+ * @returns
53
+ */
54
+ texParameteri(pname: number, param: number): void;
55
+ /**
56
+ * ```
57
+ * gl.texImage2D(
58
+ * gl.TEXTURE_2D,
59
+ * level,
60
+ * internalFormat,
61
+ * width,
62
+ * height,
63
+ * border,
64
+ * format,
65
+ * type,
66
+ * pixels,
67
+ * );
68
+ * ```
69
+ * @remarks
70
+ * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
71
+ *
72
+ * @param level
73
+ * @param internalFormat
74
+ * @param width
75
+ * @param height
76
+ * @param border
77
+ * @param format
78
+ * @param type
79
+ * @param pixels
80
+ */
81
+ texImage2D(level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
82
+ texImage2D(level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
83
+ /**
84
+ * ```
85
+ * gl.pixelStorei(pname, param);
86
+ * ```
87
+ *
88
+ * @param pname
89
+ * @param param
90
+ */
91
+ pixelStorei(pname: GLenum, param: GLint | GLboolean): void;
92
+ /**
93
+ * ```
94
+ * gl.generateMipmap(gl.TEXTURE_2D);
95
+ * ```
96
+ *
97
+ * @remarks
98
+ * **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
99
+ */
100
+ generateMipmap(): void;
101
+ /**
102
+ * ```
103
+ * gl.createTexture();
104
+ * ```
105
+ *
106
+ * @returns
107
+ */
108
+ createTexture(): WebGLTexture | null;
109
+ /**
110
+ * ```
111
+ * gl.deleteTexture(texture);
112
+ * ```
113
+ *
114
+ * @param texture
115
+ */
116
+ deleteTexture(texture: WebGLTexture | null): void;
117
+ /**
118
+ * ```
119
+ * gl.viewport(x, y, width, height);
120
+ * ```
121
+ */
122
+ viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
123
+ /**
124
+ * ```
125
+ * gl.clearColor(red, green, blue, alpha);
126
+ * ```
127
+ *
128
+ * @param red
129
+ * @param green
130
+ * @param blue
131
+ * @param alpha
132
+ */
133
+ clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;
134
+ /**
135
+ * ```
136
+ * gl["enable"|"disable"](gl.SCISSOR_TEST);
137
+ * ```
138
+ * @param enable
139
+ */
140
+ scissorTest(enable: boolean): void;
141
+ /**
142
+ * ```
143
+ * gl.scissor(x, y, width, height);
144
+ * ```
145
+ *
146
+ * @param x
147
+ * @param y
148
+ * @param width
149
+ * @param height
150
+ */
151
+ scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
152
+ /**
153
+ * ```
154
+ * gl["enable"|"disable"](gl.BLEND);
155
+ * ```
156
+ *
157
+ * @param blend
158
+ * @returns
159
+ */
160
+ setBlend(blend: boolean): void;
161
+ /**
162
+ * ```
163
+ * gl.blendFunc(src, dst);
164
+ * ```
165
+ *
166
+ * @param src
167
+ * @param dst
168
+ */
169
+ blendFunc(src: GLenum, dst: GLenum): void;
170
+ /**
171
+ * ```
172
+ * createBuffer();
173
+ * ```
174
+ *
175
+ * @returns
176
+ */
177
+ createBuffer(): WebGLBuffer | null;
178
+ /**
179
+ * ```
180
+ * gl.clear(gl.COLOR_BUFFER_BIT);
181
+ * ```
182
+ *
183
+ * @remarks
184
+ * **WebGL Difference**: Clear mask is always `gl.COLOR_BUFFER_BIT`
185
+ */
186
+ clear(): void;
187
+ /**
188
+ * ```
189
+ * gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
190
+ * gl.bufferData(gl.ARRAY_BUFFER, data, usage);
191
+ * ```
192
+ *
193
+ * @remarks
194
+ * **WebGL Combo**: `gl.bindBuffer` and `gl.bufferData` are combined into one function.
195
+ *
196
+ * @param buffer
197
+ * @param data
198
+ * @param usage
199
+ */
200
+ arrayBufferData(buffer: WebGLBuffer | null, data: ArrayBufferView, usage: GLenum): void;
201
+ /**
202
+ * ```
203
+ * gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
204
+ * gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, usage);
205
+ * ```
206
+ * @remarks
207
+ * **WebGL Combo**: `gl.bindBuffer` and `gl.bufferData` are combined into one function.
208
+ *
209
+ * @param buffer
210
+ * @param data
211
+ * @param usage
212
+ */
213
+ elementArrayBufferData(buffer: WebGLBuffer | null, data: ArrayBufferView, usage: GLenum): void;
214
+ /**
215
+ * ```
216
+ * gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
217
+ * gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
218
+ * ```
219
+ *
220
+ * @remarks
221
+ * **WebGL Combo**: `gl.bindBuffer` and `gl.vertexAttribPointer` are combined into one function.
222
+ *
223
+ * @param buffer
224
+ * @param index
225
+ * @param size
226
+ * @param type
227
+ * @param normalized
228
+ * @param stride
229
+ * @param offset
230
+ */
231
+ vertexAttribPointer(buffer: WebGLBuffer, index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;
232
+ /**
233
+ * ```
234
+ * gl.useProgram(program);
235
+ * ```
236
+ *
237
+ * @param program
238
+ * @returns
239
+ */
240
+ useProgram(program: WebGLProgram | null): void;
241
+ setUniform<T extends keyof UniformMethodMap>(type: T, location: WebGLUniformLocation, ...args: UniformMethodMap[T]): void;
242
+ /**
243
+ * ```
244
+ * gl.getParameter(pname);
245
+ * ```
246
+ *
247
+ * @param pname
248
+ * @returns
249
+ */
250
+ getParameter(pname: GLenum): any;
251
+ /**
252
+ * ```
253
+ * gl.drawElements(mode, count, type, offset);
254
+ * ```
255
+ *
256
+ * @param mode
257
+ * @param count
258
+ * @param type
259
+ * @param offset
260
+ */
261
+ drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;
262
+ /**
263
+ * ```
264
+ * gl.drawArrays(mode, first, count);
265
+ * ```
266
+ *
267
+ * @param name
268
+ * @returns
269
+ */
270
+ getExtension(name: string): any;
271
+ /**
272
+ * ```
273
+ * gl.createVertexArray();
274
+ * ```
275
+ *
276
+ * @returns
277
+ */
278
+ createVertexArray(): WebGLVertexArrayObject | null;
279
+ /**
280
+ * ```
281
+ * gl.bindVertexArray(vertexArray);
282
+ * ```
283
+ *
284
+ * @param vertexArray
285
+ */
286
+ bindVertexArray(vertexArray: WebGLVertexArrayObject | null): void;
287
+ /**
288
+ * ```
289
+ * gl.getAttribLocation(program, name);
290
+ * ```
291
+ *
292
+ * @param program
293
+ * @param name
294
+ * @returns
295
+ */
296
+ getAttribLocation(program: WebGLProgram, name: string): number;
297
+ /**
298
+ * ```
299
+ * gl.getUniformLocation(program, name);
300
+ * ```
301
+ *
302
+ * @param program
303
+ * @param name
304
+ * @returns
305
+ */
306
+ getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;
307
+ /**
308
+ * ```
309
+ * gl.enableVertexAttribArray(index);
310
+ * ```
311
+ *
312
+ * @param index
313
+ */
314
+ enableVertexAttribArray(index: number): void;
315
+ /**
316
+ * ```
317
+ * gl.disableVertexAttribArray(index);
318
+ * ```
319
+ *
320
+ * @param index
321
+ */
322
+ disableVertexAttribArray(index: number): void;
323
+ /**
324
+ * ```
325
+ * gl.createShader(type);
326
+ * ```
327
+ *
328
+ * @param type
329
+ * @returns
330
+ */
331
+ createShader(type: number): WebGLShader | null;
332
+ /**
333
+ * ```
334
+ * gl.compileShader(shader);
335
+ * ```
336
+ *
337
+ * @param shader
338
+ * @returns
339
+ */
340
+ compileShader(shader: WebGLShader): void;
341
+ /**
342
+ * ```
343
+ * gl.attachShader(program, shader);
344
+ * ```
345
+ *
346
+ * @param program
347
+ * @param shader
348
+ */
349
+ attachShader(program: WebGLProgram, shader: WebGLShader): void;
350
+ /**
351
+ * ```
352
+ * gl.linkProgram(program);
353
+ * ```
354
+ *
355
+ * @param program
356
+ */
357
+ linkProgram(program: WebGLProgram): void;
358
+ /**
359
+ * ```
360
+ * gl.deleteProgram(shader);
361
+ * ```
362
+ *
363
+ * @param shader
364
+ */
365
+ deleteProgram(shader: WebGLProgram): void;
366
+ /**
367
+ * ```
368
+ * gl.getShaderParameter(shader, pname);
369
+ * ```
370
+ *
371
+ * @param shader
372
+ * @param pname
373
+ */
374
+ getShaderParameter(shader: WebGLShader, pname: GLenum): any;
375
+ /**
376
+ * ```
377
+ * gl.getShaderInfoLog(shader);
378
+ * ```
379
+ *
380
+ * @param shader
381
+ */
382
+ getShaderInfoLog(shader: WebGLShader): string | null;
383
+ /**
384
+ * ```
385
+ * gl.createProgram();
386
+ * ```
387
+ *
388
+ * @returns
389
+ */
390
+ createProgram(): WebGLProgram | null;
391
+ /**
392
+ * ```
393
+ * gl.getProgramParameter(program, pname);
394
+ * ```
395
+ *
396
+ * @param program
397
+ * @param pname
398
+ * @returns
399
+ */
400
+ getProgramParameter(program: WebGLProgram, pname: GLenum): any;
401
+ }
402
+ type IsUniformMethod<MethodName, MethodType> = MethodName extends `uniform${string}` ? MethodType extends (location: WebGLUniformLocation | null, ...args: any[]) => void ? true : false : false;
403
+ export type UniformMethodMap = {
404
+ [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;
405
+ };
406
+ /**
407
+ *
408
+ *
409
+ * @param a
410
+ * @param b
411
+ * @returns
412
+ */
413
+ export declare function compareArrays<T>(a: T[], b: T[]): boolean;
414
+ export {};