@lightningjs/renderer 0.7.1 → 0.7.3

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 (215) hide show
  1. package/COPYING +1 -0
  2. package/LICENSE +202 -202
  3. package/NOTICE +3 -3
  4. package/README.md +221 -221
  5. package/dist/exports/main-api.d.ts +1 -0
  6. package/dist/src/common/CommonTypes.d.ts +7 -0
  7. package/dist/src/core/CoreShaderManager.d.ts +13 -6
  8. package/dist/src/core/CoreShaderManager.js +6 -6
  9. package/dist/src/core/CoreShaderManager.js.map +1 -1
  10. package/dist/src/core/Stage.d.ts +2 -1
  11. package/dist/src/core/Stage.js +4 -0
  12. package/dist/src/core/Stage.js.map +1 -1
  13. package/dist/src/core/animations/CoreAnimation.js +3 -0
  14. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  15. package/dist/src/core/animations/CoreAnimationController.d.ts +8 -0
  16. package/dist/src/core/animations/CoreAnimationController.js +26 -0
  17. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  18. package/dist/src/core/lib/ImageWorker.js +21 -21
  19. package/dist/src/core/lib/WebGlContextWrapper.d.ts +9 -0
  20. package/dist/src/core/lib/WebGlContextWrapper.js +12 -0
  21. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  22. package/dist/src/core/lib/textureCompression.d.ts +16 -0
  23. package/dist/src/core/lib/textureCompression.js +129 -0
  24. package/dist/src/core/lib/textureCompression.js.map +1 -0
  25. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +12 -0
  26. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  27. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +47 -47
  28. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  29. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  30. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  31. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +49 -49
  32. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  33. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +5 -5
  34. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  35. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  36. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  37. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  38. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  39. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  40. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +31 -31
  41. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +13 -13
  42. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  43. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  44. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +4 -0
  45. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +11 -0
  46. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  47. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -1
  48. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +10 -1
  49. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  50. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +21 -7
  51. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  52. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  53. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +2 -1
  54. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  55. package/dist/src/core/textures/ImageTexture.js +5 -0
  56. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  57. package/dist/src/core/textures/Texture.d.ts +28 -1
  58. package/dist/src/core/textures/Texture.js.map +1 -1
  59. package/dist/src/main-api/ICoreDriver.d.ts +2 -1
  60. package/dist/src/main-api/Inspector.d.ts +21 -0
  61. package/dist/src/main-api/Inspector.js +302 -0
  62. package/dist/src/main-api/Inspector.js.map +1 -0
  63. package/dist/src/main-api/RendererMain.d.ts +12 -0
  64. package/dist/src/main-api/RendererMain.js +19 -1
  65. package/dist/src/main-api/RendererMain.js.map +1 -1
  66. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +2 -1
  67. package/dist/src/render-drivers/main/MainCoreDriver.js +7 -1
  68. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  69. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +2 -1
  70. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +7 -0
  71. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  72. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +9 -1
  73. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
  74. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  75. package/exports/core-api.ts +102 -102
  76. package/exports/main-api.ts +60 -51
  77. package/exports/utils.ts +41 -41
  78. package/package.json +5 -3
  79. package/scripts/please-use-pnpm.js +13 -0
  80. package/src/common/CommonTypes.ts +113 -105
  81. package/src/common/EventEmitter.ts +77 -77
  82. package/src/common/IAnimationController.ts +29 -29
  83. package/src/core/CoreExtension.ts +32 -32
  84. package/src/core/CoreNode.ts +926 -926
  85. package/src/core/CoreShaderManager.ts +243 -210
  86. package/src/core/CoreTextNode.ts +391 -391
  87. package/src/core/CoreTextureManager.ts +326 -326
  88. package/src/core/Stage.ts +354 -342
  89. package/src/core/animations/AnimationManager.ts +38 -38
  90. package/src/core/animations/CoreAnimation.ts +181 -177
  91. package/src/core/animations/CoreAnimationController.ts +148 -117
  92. package/src/core/lib/ContextSpy.ts +41 -41
  93. package/src/core/lib/ImageWorker.ts +124 -124
  94. package/src/core/lib/Matrix3d.ts +290 -290
  95. package/src/core/lib/WebGlContextWrapper.ts +992 -965
  96. package/src/core/lib/textureCompression.ts +152 -0
  97. package/src/core/lib/utils.ts +241 -241
  98. package/src/core/platform.ts +46 -46
  99. package/src/core/renderers/CoreContextTexture.ts +30 -30
  100. package/src/core/renderers/CoreRenderOp.ts +22 -22
  101. package/src/core/renderers/CoreRenderer.ts +63 -63
  102. package/src/core/renderers/CoreShader.ts +41 -41
  103. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +37 -37
  104. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +231 -211
  105. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +107 -107
  106. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +520 -520
  107. package/src/core/renderers/webgl/WebGlCoreShader.ts +337 -337
  108. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  109. package/src/core/renderers/webgl/internal/RendererUtils.ts +131 -131
  110. package/src/core/renderers/webgl/internal/ShaderUtils.ts +136 -136
  111. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  112. package/src/core/renderers/webgl/shaders/DefaultShader.ts +95 -95
  113. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
  114. package/src/core/renderers/webgl/shaders/DynamicShader.ts +474 -474
  115. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +161 -161
  116. package/src/core/renderers/webgl/shaders/SdfShader.ts +174 -174
  117. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
  118. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +86 -86
  119. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
  120. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
  121. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
  122. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +33 -33
  123. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +135 -135
  124. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +145 -145
  125. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
  126. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +176 -176
  127. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +159 -159
  128. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +186 -186
  129. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +121 -121
  130. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +114 -114
  131. package/src/core/text-rendering/TextTextureRendererUtils.ts +189 -189
  132. package/src/core/text-rendering/TrFontManager.ts +96 -96
  133. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +141 -127
  134. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  135. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -165
  136. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +169 -166
  137. package/src/core/text-rendering/font-face-types/TrFontFace.ts +105 -105
  138. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +77 -77
  139. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +751 -738
  140. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +741 -707
  141. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +775 -777
  142. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  143. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  144. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  145. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  146. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +84 -84
  147. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  148. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  149. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +393 -392
  150. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -46
  151. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +51 -51
  152. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  153. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  154. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  155. package/src/core/text-rendering/renderers/TextRenderer.ts +504 -504
  156. package/src/core/textures/ColorTexture.ts +86 -86
  157. package/src/core/textures/ImageTexture.ts +133 -124
  158. package/src/core/textures/NoiseTexture.ts +96 -96
  159. package/src/core/textures/SubTexture.ts +143 -143
  160. package/src/core/textures/Texture.ts +218 -186
  161. package/src/core/utils.ts +224 -224
  162. package/src/env.d.ts +7 -7
  163. package/src/main-api/ICoreDriver.ts +66 -61
  164. package/src/main-api/INode.ts +470 -470
  165. package/src/main-api/Inspector.ts +432 -0
  166. package/src/main-api/RendererMain.ts +649 -610
  167. package/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.ts +45 -45
  168. package/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.ts +154 -154
  169. package/src/main-api/texture-usage-trackers/TextureUsageTracker.ts +54 -54
  170. package/src/render-drivers/main/MainCoreDriver.ts +148 -133
  171. package/src/render-drivers/main/MainOnlyNode.ts +453 -453
  172. package/src/render-drivers/main/MainOnlyTextNode.ts +261 -261
  173. package/src/render-drivers/threadx/NodeStruct.ts +300 -300
  174. package/src/render-drivers/threadx/SharedNode.ts +97 -97
  175. package/src/render-drivers/threadx/TextNodeStruct.ts +211 -211
  176. package/src/render-drivers/threadx/ThreadXCoreDriver.ts +285 -273
  177. package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +99 -99
  178. package/src/render-drivers/threadx/ThreadXMainNode.ts +178 -178
  179. package/src/render-drivers/threadx/ThreadXMainTextNode.ts +85 -85
  180. package/src/render-drivers/threadx/ThreadXRendererMessage.ts +110 -97
  181. package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +238 -238
  182. package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +149 -149
  183. package/src/render-drivers/threadx/worker/renderer.ts +151 -151
  184. package/src/render-drivers/utils.ts +57 -57
  185. package/src/utils.ts +207 -207
  186. package/dist/src/core/lib/WebGlContext.d.ts +0 -414
  187. package/dist/src/core/lib/WebGlContext.js +0 -640
  188. package/dist/src/core/lib/WebGlContext.js.map +0 -1
  189. package/dist/src/core/scene/Scene.d.ts +0 -59
  190. package/dist/src/core/scene/Scene.js +0 -106
  191. package/dist/src/core/scene/Scene.js.map +0 -1
  192. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +0 -8
  193. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +0 -29
  194. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +0 -1
  195. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +0 -19
  196. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +0 -84
  197. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +0 -1
  198. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +0 -8
  199. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +0 -40
  200. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +0 -1
  201. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +0 -2
  202. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +0 -41
  203. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +0 -1
  204. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +0 -1
  205. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +0 -4
  206. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +0 -1
  207. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +0 -1
  208. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +0 -2
  209. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +0 -1
  210. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  211. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  212. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  213. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +0 -9
  214. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +0 -32
  215. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +0 -1
@@ -1,414 +0,0 @@
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 {};