@lightningjs/renderer 3.0.2 → 3.0.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 (97) hide show
  1. package/README.md +56 -196
  2. package/dist/src/core/CoreNode.js +25 -4
  3. package/dist/src/core/CoreNode.js.map +1 -1
  4. package/dist/src/core/CoreTextNode.d.ts +9 -2
  5. package/dist/src/core/CoreTextNode.js +32 -11
  6. package/dist/src/core/CoreTextNode.js.map +1 -1
  7. package/dist/src/core/CoreTextureManager.d.ts +8 -0
  8. package/dist/src/core/CoreTextureManager.js +13 -1
  9. package/dist/src/core/CoreTextureManager.js.map +1 -1
  10. package/dist/src/core/Stage.d.ts +8 -0
  11. package/dist/src/core/Stage.js +23 -0
  12. package/dist/src/core/Stage.js.map +1 -1
  13. package/dist/src/core/TextureMemoryManager.d.ts +8 -13
  14. package/dist/src/core/TextureMemoryManager.js +22 -27
  15. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  16. package/dist/src/core/lib/ImageWorker.d.ts +2 -2
  17. package/dist/src/core/lib/ImageWorker.js +31 -12
  18. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  19. package/dist/src/core/lib/WebGlContextWrapper.d.ts +105 -56
  20. package/dist/src/core/lib/WebGlContextWrapper.js +164 -158
  21. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  22. package/dist/src/core/lib/textureCompression.js +19 -10
  23. package/dist/src/core/lib/textureCompression.js.map +1 -1
  24. package/dist/src/core/lib/validateImageBitmap.d.ts +2 -1
  25. package/dist/src/core/lib/validateImageBitmap.js +4 -4
  26. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  27. package/dist/src/core/platform.js +2 -2
  28. package/dist/src/core/platform.js.map +1 -1
  29. package/dist/src/core/platforms/Platform.d.ts +4 -0
  30. package/dist/src/core/platforms/Platform.js.map +1 -1
  31. package/dist/src/core/platforms/web/WebPlatform.d.ts +2 -0
  32. package/dist/src/core/platforms/web/WebPlatform.js +13 -0
  33. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
  34. package/dist/src/core/renderers/CoreRenderer.d.ts +6 -0
  35. package/dist/src/core/renderers/CoreRenderer.js +8 -0
  36. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  37. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +1 -0
  38. package/dist/src/core/renderers/canvas/CanvasRenderer.js +5 -0
  39. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  40. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +45 -0
  41. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +127 -0
  42. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
  43. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +2 -0
  44. package/dist/src/core/renderers/webgl/WebGlRenderer.js +30 -22
  45. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  46. package/dist/src/core/text-rendering/CanvasFont.d.ts +14 -0
  47. package/dist/src/core/text-rendering/CanvasFont.js +120 -0
  48. package/dist/src/core/text-rendering/CanvasFont.js.map +1 -0
  49. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +1 -2
  50. package/dist/src/core/text-rendering/CanvasTextRenderer.js +11 -19
  51. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
  52. package/dist/src/core/text-rendering/CoreFont.d.ts +33 -0
  53. package/dist/src/core/text-rendering/CoreFont.js +48 -0
  54. package/dist/src/core/text-rendering/CoreFont.js.map +1 -0
  55. package/dist/src/core/text-rendering/FontManager.d.ts +11 -0
  56. package/dist/src/core/text-rendering/FontManager.js +41 -0
  57. package/dist/src/core/text-rendering/FontManager.js.map +1 -0
  58. package/dist/src/core/text-rendering/SdfFont.d.ts +29 -0
  59. package/dist/src/core/text-rendering/SdfFont.js +142 -0
  60. package/dist/src/core/text-rendering/SdfFont.js.map +1 -0
  61. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +2 -2
  62. package/dist/src/core/text-rendering/SdfTextRenderer.js +141 -132
  63. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
  64. package/dist/src/core/text-rendering/TextGenerator.d.ts +10 -0
  65. package/dist/src/core/text-rendering/TextGenerator.js +36 -0
  66. package/dist/src/core/text-rendering/TextGenerator.js.map +1 -0
  67. package/dist/src/core/text-rendering/TextRenderer.d.ts +26 -20
  68. package/dist/src/core/text-rendering/Utils.d.ts +2 -0
  69. package/dist/src/core/text-rendering/Utils.js +3 -0
  70. package/dist/src/core/text-rendering/Utils.js.map +1 -1
  71. package/dist/src/main-api/Renderer.d.ts +14 -0
  72. package/dist/src/main-api/Renderer.js +29 -3
  73. package/dist/src/main-api/Renderer.js.map +1 -1
  74. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  75. package/package.json +2 -1
  76. package/src/core/CoreNode.ts +29 -4
  77. package/src/core/CoreTextNode.test.ts +237 -0
  78. package/src/core/CoreTextNode.ts +53 -33
  79. package/src/core/CoreTextureManager.ts +14 -2
  80. package/src/core/Stage.ts +29 -0
  81. package/src/core/TextureMemoryManager.test.ts +134 -0
  82. package/src/core/TextureMemoryManager.ts +23 -30
  83. package/src/core/platforms/Platform.ts +5 -0
  84. package/src/core/platforms/web/WebPlatform.ts +13 -0
  85. package/src/core/renderers/CoreRenderer.ts +10 -0
  86. package/src/core/renderers/canvas/CanvasRenderer.ts +6 -0
  87. package/src/core/renderers/webgl/WebGlRenderer.rtt.test.ts +551 -0
  88. package/src/core/renderers/webgl/WebGlRenderer.ts +38 -28
  89. package/src/core/text-rendering/CanvasTextRenderer.ts +13 -41
  90. package/src/core/text-rendering/SdfTextRenderer.ts +166 -163
  91. package/src/core/text-rendering/TextRenderer.ts +23 -21
  92. package/src/core/text-rendering/Utils.ts +5 -1
  93. package/src/main-api/Renderer.test.ts +153 -0
  94. package/src/main-api/Renderer.ts +33 -3
  95. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.d.ts +0 -1
  96. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js +0 -2
  97. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js.map +0 -1
@@ -40,7 +40,7 @@ function createImageWorker() {
40
40
  xhr.onload = function () {
41
41
  // On most devices like WebOS and Tizen, the file protocol returns 0 while http(s) protocol returns 200
42
42
  if (xhr.status !== 200 && xhr.status !== 0) {
43
- return reject(new Error('Failed to load image: ' + xhr.statusText));
43
+ return reject(new Error(`Image loading failed. HTTP status code: ${xhr.status || 'N/A'}. URL: ${src}`));
44
44
  }
45
45
  var blob = xhr.response;
46
46
  var withAlphaChannel = premultiplyAlpha !== undefined
@@ -124,17 +124,20 @@ export class ImageWorkerManager {
124
124
  imageWorkersEnabled = true;
125
125
  messageManager = {};
126
126
  workers = [];
127
- workerIndex = 0;
127
+ workerLoad = [];
128
128
  nextId = 0;
129
129
  constructor(numImageWorkers, createImageBitmapSupport) {
130
130
  this.workers = this.createWorkers(numImageWorkers, createImageBitmapSupport);
131
- this.workers.forEach((worker) => {
132
- worker.onmessage = this.handleMessage.bind(this);
131
+ this.workers.forEach((worker, index) => {
132
+ worker.onmessage = (event) => this.handleMessage(event, index);
133
133
  });
134
134
  }
135
- handleMessage(event) {
135
+ handleMessage(event, workerIndex) {
136
136
  const { id, data, error } = event.data;
137
137
  const msg = this.messageManager[id];
138
+ if (this.workerLoad[workerIndex]) {
139
+ this.workerLoad[workerIndex]--;
140
+ }
138
141
  if (msg) {
139
142
  const [resolve, reject] = msg;
140
143
  delete this.messageManager[id];
@@ -164,13 +167,26 @@ export class ImageWorkerManager {
164
167
  const workers = [];
165
168
  for (let i = 0; i < numWorkers; i++) {
166
169
  workers.push(new Worker(blobURL));
170
+ this.workerLoad.push(0);
167
171
  }
168
172
  return workers;
169
173
  }
170
- getNextWorker() {
171
- const worker = this.workers[this.workerIndex];
172
- this.workerIndex = (this.workerIndex + 1) % this.workers.length;
173
- return worker;
174
+ getNextWorkerIndex() {
175
+ if (this.workers.length === 0)
176
+ return -1;
177
+ let minLoad = 99;
178
+ let workerIndex = 0;
179
+ for (let i = 0; i < this.workers.length; i++) {
180
+ const load = this.workerLoad[i] || 0;
181
+ if (load === 0) {
182
+ return i;
183
+ }
184
+ if (load < minLoad) {
185
+ minLoad = load;
186
+ workerIndex = i;
187
+ }
188
+ }
189
+ return workerIndex;
174
190
  }
175
191
  getImage(src, premultiplyAlpha, sx, sy, sw, sh) {
176
192
  return new Promise((resolve, reject) => {
@@ -178,9 +194,12 @@ export class ImageWorkerManager {
178
194
  if (this.workers) {
179
195
  const id = this.nextId++;
180
196
  this.messageManager[id] = [resolve, reject];
181
- const nextWorker = this.getNextWorker();
182
- if (nextWorker) {
183
- nextWorker.postMessage({
197
+ const nextWorkerIndex = this.getNextWorkerIndex();
198
+ if (nextWorkerIndex !== -1) {
199
+ const worker = this.workers[nextWorkerIndex];
200
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
201
+ this.workerLoad[nextWorkerIndex]++;
202
+ worker.postMessage({
184
203
  id,
185
204
  src: src,
186
205
  premultiplyAlpha,
@@ -1 +1 @@
1
- {"version":3,"file":"ImageWorker.js","sourceRoot":"","sources":["../../../../src/core/lib/ImageWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageWorker.js","sourceRoot":"","sources":["../../../../src/core/lib/ImageWorker.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Vec2, Vec3, Vec4 } from '../renderers/webgl/internal/ShaderUtils.js';
1
2
  /**
2
3
  * Optimized WebGL Context Wrapper
3
4
  *
@@ -35,41 +36,42 @@ export declare class WebGlContextWrapper {
35
36
  private boundArrayBuffer;
36
37
  private boundElementArrayBuffer;
37
38
  private curProgram;
38
- readonly canvas: HTMLCanvasElement | OffscreenCanvas;
39
- readonly MAX_RENDERBUFFER_SIZE: 34024;
40
- readonly MAX_TEXTURE_SIZE: 3379;
41
- readonly MAX_VIEWPORT_DIMS: 3386;
42
- readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660;
43
- readonly MAX_TEXTURE_IMAGE_UNITS: 34930;
44
- readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661;
45
- readonly MAX_VERTEX_ATTRIBS: 34921;
46
- readonly MAX_VARYING_VECTORS: 36348;
47
- readonly MAX_VERTEX_UNIFORM_VECTORS: 36347;
48
- readonly MAX_FRAGMENT_UNIFORM_VECTORS: 36349;
49
- readonly TEXTURE_MAG_FILTER: 10240;
50
- readonly TEXTURE_MIN_FILTER: 10241;
51
- readonly TEXTURE_WRAP_S: 10242;
52
- readonly TEXTURE_WRAP_T: 10243;
53
- readonly LINEAR: 9729;
54
- readonly LINEAR_MIPMAP_LINEAR: 9987;
55
- readonly CLAMP_TO_EDGE: 33071;
56
- readonly RGB: 6407;
57
- readonly RGBA: 6408;
58
- readonly UNSIGNED_BYTE: 5121;
59
- readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441;
60
- readonly UNPACK_FLIP_Y_WEBGL: 37440;
61
- readonly FLOAT: 5126;
62
- readonly TRIANGLES: 4;
63
- readonly UNSIGNED_SHORT: 5123;
64
- readonly ONE: 1;
65
- readonly ONE_MINUS_SRC_ALPHA: 771;
66
- readonly VERTEX_SHADER: 35633;
67
- readonly FRAGMENT_SHADER: 35632;
68
- readonly STATIC_DRAW: 35044;
69
- readonly COMPILE_STATUS: 35713;
70
- readonly LINK_STATUS: 35714;
71
- readonly DYNAMIC_DRAW: 35048;
72
- readonly COLOR_ATTACHMENT0: 36064;
39
+ private curUniformLocations;
40
+ readonly canvas: any;
41
+ readonly MAX_RENDERBUFFER_SIZE: any;
42
+ readonly MAX_TEXTURE_SIZE: any;
43
+ readonly MAX_VIEWPORT_DIMS: any;
44
+ readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: any;
45
+ readonly MAX_TEXTURE_IMAGE_UNITS: any;
46
+ readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: any;
47
+ readonly MAX_VERTEX_ATTRIBS: any;
48
+ readonly MAX_VARYING_VECTORS: any;
49
+ readonly MAX_VERTEX_UNIFORM_VECTORS: any;
50
+ readonly MAX_FRAGMENT_UNIFORM_VECTORS: any;
51
+ readonly TEXTURE_MAG_FILTER: any;
52
+ readonly TEXTURE_MIN_FILTER: any;
53
+ readonly TEXTURE_WRAP_S: any;
54
+ readonly TEXTURE_WRAP_T: any;
55
+ readonly LINEAR: any;
56
+ readonly LINEAR_MIPMAP_LINEAR: any;
57
+ readonly CLAMP_TO_EDGE: any;
58
+ readonly RGB: any;
59
+ readonly RGBA: any;
60
+ readonly UNSIGNED_BYTE: any;
61
+ readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: any;
62
+ readonly UNPACK_FLIP_Y_WEBGL: any;
63
+ readonly FLOAT: any;
64
+ readonly TRIANGLES: any;
65
+ readonly UNSIGNED_SHORT: any;
66
+ readonly ONE: any;
67
+ readonly ONE_MINUS_SRC_ALPHA: any;
68
+ readonly VERTEX_SHADER: any;
69
+ readonly FRAGMENT_SHADER: any;
70
+ readonly STATIC_DRAW: any;
71
+ readonly COMPILE_STATUS: any;
72
+ readonly LINK_STATUS: any;
73
+ readonly DYNAMIC_DRAW: any;
74
+ readonly COLOR_ATTACHMENT0: any;
73
75
  readonly INVALID_ENUM: number;
74
76
  readonly INVALID_OPERATION: number;
75
77
  constructor(gl: WebGLRenderingContext | WebGL2RenderingContext);
@@ -350,35 +352,35 @@ export declare class WebGlContextWrapper {
350
352
  * @param program
351
353
  * @returns
352
354
  */
353
- useProgram(program: WebGLProgram | null): void;
355
+ useProgram(program: WebGLProgram | null, uniformLocations: Record<string, WebGLUniformLocation>): void;
354
356
  /**
355
357
  * Sets the value of a single float uniform variable.
356
358
  *
357
359
  * @param location - The location of the uniform variable.
358
360
  * @param v0 - The value to set.
359
361
  */
360
- uniform1f(location: WebGLUniformLocation | null, v0: number): void;
362
+ uniform1f(location: string, v0: number): void;
361
363
  /**
362
364
  * Sets the value of a float array uniform variable.
363
365
  *
364
366
  * @param location - The location of the uniform variable.
365
367
  * @param value - The array of values to set.
366
368
  */
367
- uniform1fv(location: WebGLUniformLocation | null, value: Float32Array | number[]): void;
369
+ uniform1fv(location: string, value: Float32Array): void;
368
370
  /**
369
371
  * Sets the value of a single integer uniform variable.
370
372
  *
371
373
  * @param location - The location of the uniform variable.
372
374
  * @param v0 - The value to set.
373
375
  */
374
- uniform1i(location: WebGLUniformLocation | null, v0: number): void;
376
+ uniform1i(location: string, v0: number): void;
375
377
  /**
376
378
  * Sets the value of an integer array uniform variable.
377
379
  *
378
380
  * @param location - The location of the uniform variable.
379
381
  * @param value - The array of values to set.
380
382
  */
381
- uniform1iv(location: WebGLUniformLocation | null, value: Int32Array | number[]): void;
383
+ uniform1iv(location: string, value: Int32Array): void;
382
384
  /**
383
385
  * Sets the value of a vec2 uniform variable.
384
386
  *
@@ -386,14 +388,21 @@ export declare class WebGlContextWrapper {
386
388
  * @param v0 - The first component of the vector.
387
389
  * @param v1 - The second component of the vector.
388
390
  */
389
- uniform2f(location: WebGLUniformLocation | null, v0: number, v1: number): void;
391
+ uniform2f(location: string, v0: number, v1: number): void;
392
+ /**
393
+ * Sets the value of a vec3 uniform variable.
394
+ *
395
+ * @param location - The location of the uniform variable.
396
+ * @param v - array of 4 numbers.
397
+ */
398
+ uniform2fa(location: string, value: Vec2): void;
390
399
  /**
391
400
  * Sets the value of a vec2 array uniform variable.
392
401
  *
393
402
  * @param location - The location of the uniform variable.
394
403
  * @param value - The array of vec2 values to set.
395
404
  */
396
- uniform2fv(location: WebGLUniformLocation | null, value: Float32Array | number[]): void;
405
+ uniform2fv(location: string, value: Float32Array): void;
397
406
  /**
398
407
  * Sets the value of a ivec2 uniform variable.
399
408
  *
@@ -401,14 +410,14 @@ export declare class WebGlContextWrapper {
401
410
  * @param v0 - The first component of the vector.
402
411
  * @param v1 - The second component of the vector.
403
412
  */
404
- uniform2i(location: WebGLUniformLocation | null, v0: number, v1: number): void;
413
+ uniform2i(location: string, v0: number, v1: number): void;
405
414
  /**
406
415
  * Sets the value of an ivec2 array uniform variable.
407
416
  *
408
417
  * @param location - The location of the uniform variable.
409
418
  * @param value - The array of ivec2 values to set.
410
419
  */
411
- uniform2iv(location: WebGLUniformLocation | null, value: Int32Array | number[]): void;
420
+ uniform2iv(location: string, value: Int32Array): void;
412
421
  /**
413
422
  * Sets the value of a vec3 uniform variable.
414
423
  *
@@ -417,14 +426,21 @@ export declare class WebGlContextWrapper {
417
426
  * @param v1 - The second component of the vector.
418
427
  * @param v2 - The third component of the vector.
419
428
  */
420
- uniform3f(location: WebGLUniformLocation | null, v0: number, v1: number, v2: number): void;
429
+ uniform3f(location: string, v0: number, v1: number, v2: number): void;
430
+ /**
431
+ * Sets the value of a vec3 uniform variable.
432
+ *
433
+ * @param location - The location of the uniform variable.
434
+ * @param v - array of 4 numbers.
435
+ */
436
+ uniform3fa(location: string, value: Vec3): void;
421
437
  /**
422
438
  * Sets the value of a vec3 array uniform variable.
423
439
  *
424
440
  * @param location - The location of the uniform variable.
425
441
  * @param value - The array of vec3 values to set.
426
442
  */
427
- uniform3fv(location: WebGLUniformLocation | null, value: Float32Array | number[]): void;
443
+ uniform3fv(location: string, value: Float32Array): void;
428
444
  /**
429
445
  * Sets the value of a ivec3 uniform variable.
430
446
  *
@@ -433,14 +449,14 @@ export declare class WebGlContextWrapper {
433
449
  * @param v1 - The second component of the vector.
434
450
  * @param v2 - The third component of the vector.
435
451
  */
436
- uniform3i(location: WebGLUniformLocation | null, v0: number, v1: number, v2: number): void;
452
+ uniform3i(location: string, v0: number, v1: number, v2: number): void;
437
453
  /**
438
454
  * Sets the value of an ivec3 array uniform variable.
439
455
  *
440
456
  * @param location - The location of the uniform variable.
441
457
  * @param value - The array of ivec3 values to set.
442
458
  */
443
- uniform3iv(location: WebGLUniformLocation | null, value: Int32Array | number[]): void;
459
+ uniform3iv(location: string, value: Int32Array): void;
444
460
  /**
445
461
  * Sets the value of a vec4 uniform variable.
446
462
  *
@@ -450,14 +466,21 @@ export declare class WebGlContextWrapper {
450
466
  * @param v2 - The third component of the vector.
451
467
  * @param v3 - The fourth component of the vector.
452
468
  */
453
- uniform4f(location: WebGLUniformLocation | null, v0: number, v1: number, v2: number, v3: number): void;
469
+ uniform4f(location: string, v0: number, v1: number, v2: number, v3: number): void;
470
+ /**
471
+ * Sets the value of a vec4 uniform variable.
472
+ *
473
+ * @param location - The location of the uniform variable.
474
+ * @param v - array of 4 numbers.
475
+ */
476
+ uniform4fa(location: string, value: Vec4): void;
454
477
  /**
455
478
  * Sets the value of a vec4 array uniform variable.
456
479
  *
457
480
  * @param location - The location of the uniform variable.
458
481
  * @param value - The array of vec4 values to set.
459
482
  */
460
- uniform4fv(location: WebGLUniformLocation | null, value: Float32Array | number[]): void;
483
+ uniform4fv(location: string, value: Float32Array): void;
461
484
  /**
462
485
  * Sets the value of a ivec4 uniform variable.
463
486
  *
@@ -467,14 +490,14 @@ export declare class WebGlContextWrapper {
467
490
  * @param v2 - The third component of the vector.
468
491
  * @param v3 - The fourth component of the vector.
469
492
  */
470
- uniform4i(location: WebGLUniformLocation | null, v0: number, v1: number, v2: number, v3: number): void;
493
+ uniform4i(location: string, v0: number, v1: number, v2: number, v3: number): void;
471
494
  /**
472
495
  * Sets the value of an ivec4 array uniform variable.
473
496
  *
474
497
  * @param location - The location of the uniform variable.
475
498
  * @param value - The array of ivec4 values to set.
476
499
  */
477
- uniform4iv(location: WebGLUniformLocation | null, value: Int32Array | number[]): void;
500
+ uniform4iv(location: string, value: Int32Array): void;
478
501
  /**
479
502
  * Sets the value of a mat2 uniform variable.
480
503
  *
@@ -482,19 +505,19 @@ export declare class WebGlContextWrapper {
482
505
  * @param transpose - Whether to transpose the matrix.
483
506
  * @param value - The array of mat2 values to set.
484
507
  */
485
- uniformMatrix2fv(location: WebGLUniformLocation | null, value: Float32Array | number[]): void;
508
+ uniformMatrix2fv(location: string, value: Float32Array): void;
486
509
  /**
487
510
  * Sets the value of a mat2 uniform variable.
488
511
  * @param location - The location of the uniform variable.
489
512
  * @param value - The array of mat2 values to set.
490
513
  */
491
- uniformMatrix3fv(location: WebGLUniformLocation | null, value: Float32Array | number[]): void;
514
+ uniformMatrix3fv(location: string, value: Float32Array): void;
492
515
  /**
493
516
  * Sets the value of a mat4 uniform variable.
494
517
  * @param location - The location of the uniform variable.
495
518
  * @param value - The array of mat4 values to set.
496
519
  */
497
- uniformMatrix4fv(location: WebGLUniformLocation | null, value: Float32Array | number[]): void;
520
+ uniformMatrix4fv(location: string, value: Float32Array): void;
498
521
  /**
499
522
  * ```
500
523
  * gl.getParameter(pname);
@@ -515,6 +538,16 @@ export declare class WebGlContextWrapper {
515
538
  * @param offset
516
539
  */
517
540
  drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;
541
+ /**
542
+ * ```
543
+ * gl.drawArrays(mode, first, count);
544
+ * ```
545
+ *
546
+ * @param mode
547
+ * @param first
548
+ * @param count
549
+ */
550
+ drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;
518
551
  /**
519
552
  * ```
520
553
  * gl.drawArrays(mode, first, count);
@@ -539,7 +572,7 @@ export declare class WebGlContextWrapper {
539
572
  *
540
573
  * @returns
541
574
  */
542
- createVertexArray(): WebGLVertexArrayObject;
575
+ createVertexArray(): WebGLVertexArrayObject | undefined;
543
576
  /**
544
577
  * ```
545
578
  * gl.bindVertexArray(vertexArray);
@@ -688,6 +721,22 @@ export declare class WebGlContextWrapper {
688
721
  * @param shader
689
722
  */
690
723
  deleteShader(shader: WebGLShader): void;
724
+ /**
725
+ * ```
726
+ * gl.deleteBuffer(buffer);
727
+ * ```
728
+ *
729
+ * @param buffer - The buffer to delete
730
+ */
731
+ deleteBuffer(buffer: WebGLBuffer): void;
732
+ /**
733
+ * ```
734
+ * gl.deleteVertexArray(vertexArray);
735
+ * ```
736
+ *
737
+ * @param vertexArray - The vertex array object to delete
738
+ */
739
+ deleteVertexArray(vertexArray: WebGLVertexArrayObject): void;
691
740
  /**
692
741
  * Check for WebGL errors and return error information
693
742
  * @param operation Description of the operation for error reporting