@luma.gl/webgl 9.0.0-beta.6 → 9.0.0-beta.8

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/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +81 -84
  3. package/dist/adapter/converters/sampler-parameters.js +17 -17
  4. package/dist/adapter/converters/shader-formats.js +12 -12
  5. package/dist/adapter/converters/texture-formats.d.ts +10 -8
  6. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  7. package/dist/adapter/converters/texture-formats.js +175 -168
  8. package/dist/adapter/converters/vertex-formats.js +20 -20
  9. package/dist/adapter/device-helpers/webgl-device-features.d.ts +2 -1
  10. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
  11. package/dist/adapter/device-helpers/webgl-device-features.js +14 -2
  12. package/dist/adapter/device-helpers/webgl-device-info.js +5 -5
  13. package/dist/adapter/device-helpers/webgl-device-limits.js +10 -10
  14. package/dist/adapter/helpers/decode-webgl-types.js +45 -45
  15. package/dist/adapter/helpers/get-shader-layout.js +29 -29
  16. package/dist/adapter/helpers/set-uniform.js +40 -40
  17. package/dist/adapter/helpers/webgl-topology-utils.js +38 -38
  18. package/dist/adapter/objects/webgl-renderbuffer.js +6 -6
  19. package/dist/adapter/objects/webgl-resource.js +1 -2
  20. package/dist/adapter/resources/webgl-buffer.js +14 -14
  21. package/dist/adapter/resources/webgl-command-buffer.js +25 -25
  22. package/dist/adapter/resources/webgl-external-texture.js +3 -3
  23. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -4
  24. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  25. package/dist/adapter/resources/webgl-framebuffer.js +41 -36
  26. package/dist/adapter/resources/webgl-query-set.js +6 -6
  27. package/dist/adapter/resources/webgl-render-pass.js +5 -5
  28. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  29. package/dist/adapter/resources/webgl-render-pipeline.js +19 -13
  30. package/dist/adapter/resources/webgl-sampler.js +2 -2
  31. package/dist/adapter/resources/webgl-shader.js +4 -4
  32. package/dist/adapter/resources/webgl-texture.d.ts +2 -1
  33. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  34. package/dist/adapter/resources/webgl-texture.js +29 -27
  35. package/dist/adapter/resources/webgl-transform-feedback.js +8 -8
  36. package/dist/adapter/resources/webgl-vertex-array.d.ts +1 -1
  37. package/dist/adapter/resources/webgl-vertex-array.js +5 -5
  38. package/dist/adapter/webgl-device.d.ts +6 -3
  39. package/dist/adapter/webgl-device.d.ts.map +1 -1
  40. package/dist/adapter/webgl-device.js +22 -17
  41. package/dist/classic/accessor.js +4 -4
  42. package/dist/classic/clear.js +2 -2
  43. package/dist/classic/copy-and-blit.js +15 -16
  44. package/dist/classic/format-utils.d.ts +2 -2
  45. package/dist/classic/format-utils.js +14 -14
  46. package/dist/classic/typed-array-utils.js +18 -18
  47. package/dist/context/parameters/unified-parameter-api.d.ts +3 -4
  48. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  49. package/dist/context/parameters/unified-parameter-api.js +4 -9
  50. package/dist/context/parameters/webgl-parameter-tables.d.ts +2 -13
  51. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  52. package/dist/context/parameters/webgl-parameter-tables.js +292 -298
  53. package/dist/context/state-tracker/with-parameters.d.ts +1 -2
  54. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  55. package/dist/context/state-tracker/with-parameters.js +2 -5
  56. package/dist/dist.dev.js +3796 -5522
  57. package/dist/dist.min.js +10 -0
  58. package/dist/index.cjs +1253 -1188
  59. package/dist/index.cjs.map +4 -4
  60. package/dist/index.d.ts +2 -2
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +1 -1
  63. package/package.json +6 -7
  64. package/src/.DS_Store +0 -0
  65. package/src/adapter/.DS_Store +0 -0
  66. package/src/adapter/converters/device-parameters.ts +9 -11
  67. package/src/adapter/converters/texture-formats.ts +64 -61
  68. package/src/adapter/device-helpers/webgl-device-features.ts +22 -2
  69. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  70. package/src/adapter/objects/webgl-resource.ts +1 -1
  71. package/src/adapter/resources/webgl-external-texture.ts +3 -3
  72. package/src/adapter/resources/webgl-framebuffer.ts +29 -26
  73. package/src/adapter/resources/webgl-render-pass.ts +3 -3
  74. package/src/adapter/resources/webgl-render-pipeline.ts +13 -6
  75. package/src/adapter/resources/webgl-texture.ts +7 -3
  76. package/src/adapter/webgl-device.ts +24 -19
  77. package/src/classic/clear.ts +2 -2
  78. package/src/context/.DS_Store +0 -0
  79. package/src/context/parameters/unified-parameter-api.ts +4 -16
  80. package/src/context/state-tracker/with-parameters.ts +2 -7
  81. package/src/index.ts +4 -4
  82. package/dist/adapter/device-helpers/device-features.d.ts +0 -6
  83. package/dist/adapter/device-helpers/device-features.d.ts.map +0 -1
  84. package/dist/adapter/device-helpers/device-features.js +0 -65
  85. package/dist/adapter/device-helpers/device-limits.d.ts +0 -50
  86. package/dist/adapter/device-helpers/device-limits.d.ts.map +0 -1
  87. package/dist/adapter/device-helpers/device-limits.js +0 -92
  88. package/dist/adapter/device-helpers/get-device-info.d.ts +0 -4
  89. package/dist/adapter/device-helpers/get-device-info.d.ts.map +0 -1
  90. package/dist/adapter/device-helpers/get-device-info.js +0 -87
  91. package/dist/context/context/context-data.d.ts +0 -14
  92. package/dist/context/context/context-data.d.ts.map +0 -1
  93. package/dist/context/context/context-data.js +0 -33
  94. package/dist/context/context/create-browser-context.d.ts +0 -35
  95. package/dist/context/context/create-browser-context.d.ts.map +0 -1
  96. package/dist/context/context/create-browser-context.js +0 -66
  97. package/dist.min.js +0 -19
@@ -39,11 +39,11 @@ function _copyBufferToBuffer(device, options) {
39
39
  const destination = cast(options.destination);
40
40
  // {In WebGL2 we can p}erform the copy on the GPU
41
41
  // Use GL.COPY_READ_BUFFER+GL.COPY_WRITE_BUFFER avoid disturbing other targets and locking type
42
- device.gl.bindBuffer(GL.COPY_READ_BUFFER, source.handle);
43
- device.gl.bindBuffer(GL.COPY_WRITE_BUFFER, destination.handle);
44
- device.gl.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, options.sourceOffset ?? 0, options.destinationOffset ?? 0, options.size);
45
- device.gl.bindBuffer(GL.COPY_READ_BUFFER, null);
46
- device.gl.bindBuffer(GL.COPY_WRITE_BUFFER, null);
42
+ device.gl.bindBuffer(36662, source.handle);
43
+ device.gl.bindBuffer(36663, destination.handle);
44
+ device.gl.copyBufferSubData(36662, 36663, options.sourceOffset ?? 0, options.destinationOffset ?? 0, options.size);
45
+ device.gl.bindBuffer(36662, null);
46
+ device.gl.bindBuffer(36663, null);
47
47
  }
48
48
  /**
49
49
  * Copies data from a Buffer object into a Texture object
@@ -109,13 +109,13 @@ function _copyTextureToBuffer(device, options) {
109
109
  // const byteLength = byteOffset + sourceWidth * sourceHeight * components * byteCount;
110
110
  // target = device.createBuffer({byteLength});
111
111
  // }
112
- device.gl.bindBuffer(GL.PIXEL_PACK_BUFFER, webglBuffer.handle);
113
- device.gl.bindFramebuffer(GL.FRAMEBUFFER, framebuffer.handle);
112
+ device.gl.bindBuffer(35051, webglBuffer.handle);
113
+ device.gl.bindFramebuffer(36160, framebuffer.handle);
114
114
  device.gl.readPixels(origin[0], origin[1], sourceWidth, sourceHeight, sourceFormat, sourceType, byteOffset);
115
115
  }
116
116
  finally {
117
- device.gl.bindBuffer(GL.PIXEL_PACK_BUFFER, null);
118
- device.gl.bindFramebuffer(GL.FRAMEBUFFER, null);
117
+ device.gl.bindBuffer(35051, null);
118
+ device.gl.bindFramebuffer(36160, null);
119
119
  if (destroyFramebuffer) {
120
120
  framebuffer.destroy();
121
121
  }
@@ -166,7 +166,7 @@ function _copyTextureToTexture(device, options) {
166
166
  // depthOrArrayLayers = 0
167
167
  } = options;
168
168
  const destinationMipmaplevel = 0;
169
- const destinationInternalFormat = GL.RGBA;
169
+ const destinationInternalFormat = 6408;
170
170
  const { framebuffer, destroyFramebuffer } = getFramebuffer(source);
171
171
  const [sourceX, sourceY] = origin;
172
172
  const isSubCopy = false;
@@ -176,7 +176,7 @@ function _copyTextureToTexture(device, options) {
176
176
  // destinationX = destinationX || 0;
177
177
  // destinationY = destinationY || 0;
178
178
  // destinationZ = destinationZ || 0;
179
- device.gl.bindFramebuffer(GL.FRAMEBUFFER, framebuffer.handle);
179
+ device.gl.bindFramebuffer(36160, framebuffer.handle);
180
180
  // TODO - support gl.readBuffer (WebGL2 only)
181
181
  // const prevBuffer = gl.readBuffer(attachment);
182
182
  let texture = null;
@@ -240,18 +240,18 @@ function _copyTextureToTexture(device, options) {
240
240
  // Returns number of components in a specific readPixels WebGL format
241
241
  export function glFormatToComponents(format) {
242
242
  switch (format) {
243
- case GL.ALPHA:
244
- case GL.R32F:
245
- case GL.RED:
243
+ case 6406:
244
+ case 33326:
245
+ case 6403:
246
246
  return 1;
247
- case GL.RG32F:
248
- case GL.RG:
247
+ case 33328:
248
+ case 33319:
249
249
  return 2;
250
- case GL.RGB:
251
- case GL.RGB32F:
250
+ case 6407:
251
+ case 34837:
252
252
  return 3;
253
- case GL.RGBA:
254
- case GL.RGBA32F:
253
+ case 6408:
254
+ case 34836:
255
255
  return 4;
256
256
  // TODO: Add support for additional WebGL2 formats
257
257
  default:
@@ -261,13 +261,13 @@ export function glFormatToComponents(format) {
261
261
  // Return byte count for given readPixels WebGL type
262
262
  export function glTypeToBytes(type) {
263
263
  switch (type) {
264
- case GL.UNSIGNED_BYTE:
264
+ case 5121:
265
265
  return 1;
266
- case GL.UNSIGNED_SHORT_5_6_5:
267
- case GL.UNSIGNED_SHORT_4_4_4_4:
268
- case GL.UNSIGNED_SHORT_5_5_5_1:
266
+ case 33635:
267
+ case 32819:
268
+ case 32820:
269
269
  return 2;
270
- case GL.FLOAT:
270
+ case 5126:
271
271
  return 4;
272
272
  // TODO: Add support for additional WebGL2 types
273
273
  default:
@@ -52,12 +52,12 @@ export class WEBGLExternalTexture extends WEBGLTexture {
52
52
  }
53
53
 
54
54
  // eslint-disable-next-line max-statements
55
- constructor(device: Device | WebGL2RenderingContext, props: TextureProps) {
56
- super(WebGLDevice.attach(device), {id: uid('texture'), ...props});
55
+ constructor(device: Device , props: TextureProps) {
56
+ super(device as WebGLDevice, {id: uid('texture'), ...props});
57
57
 
58
58
  this.glTarget = getWebGLTextureTarget(props);
59
59
 
60
- this.device = WebGLDevice.attach(device);
60
+ this.device = device as WebGLDevice;
61
61
  this.gl = this.device.gl;
62
62
  this.gl2 = this.device.gl2;
63
63
  this.handle = this.props.handle || this.gl.createTexture();
@@ -4,8 +4,7 @@ import { GL } from '@luma.gl/constants';
4
4
  import { WebGLDevice } from "../webgl-device.js";
5
5
  import { WEBGLTexture } from "./webgl-texture.js";
6
6
  import { WEBGLTextureView } from "./webgl-texture-view.js";
7
- import { WEBGLRenderbuffer } from "../objects/webgl-renderbuffer.js";
8
- export type Attachment = WEBGLTextureView | WEBGLTexture | WEBGLRenderbuffer;
7
+ export type Attachment = WEBGLTextureView | WEBGLTexture;
9
8
  /** luma.gl Framebuffer, WebGL implementation */
10
9
  export declare class WEBGLFramebuffer extends Framebuffer {
11
10
  device: WebGLDevice;
@@ -22,8 +21,7 @@ export declare class WEBGLFramebuffer extends Framebuffer {
22
21
  */
23
22
  protected resizeAttachments(width: number, height: number): this;
24
23
  /** Attach one attachment */
25
- protected _attachOne(attachmentPoint: GL, attachment: Attachment): WEBGLTexture | WEBGLRenderbuffer;
26
- protected _attachWEBGLRenderbuffer(attachment: GL, renderbuffer: WEBGLRenderbuffer): void;
24
+ protected _attachOne(attachmentPoint: GL, attachment: Attachment): WEBGLTexture;
27
25
  /**
28
26
  * @param attachment
29
27
  * @param texture
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-framebuffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-framebuffer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AACnE,OAAO,EAAC,WAAW,EAAE,OAAO,EAAS,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAC5C,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,gBAAgB,EAAC,gCAA6B;AACtD,OAAO,EAAC,iBAAiB,EAAC,yCAAsC;AAGhE,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAE7E,iDAAiD;AACjD,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,EAAE,WAAW,CAAC;IACpB,EAAE,EAAE,sBAAsB,CAAC;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IAEzB,IAAI,OAAO,wCAEV;gBAEW,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB;IAkDxD,+CAA+C;IACtC,OAAO,IAAI,IAAI;IAUxB,mGAAmG;cAChF,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAW5E;;OAEG;cACgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA2BzE,4BAA4B;IAC5B,SAAS,CAAC,UAAU,CAClB,eAAe,EAAE,EAAE,EACnB,UAAU,EAAE,UAAU,GACrB,YAAY,GAAG,iBAAiB;IAwBnC,SAAS,CAAC,wBAAwB,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,iBAAiB,GAAG,IAAI;IASzF;;;;;OAKG;IACH,SAAS,CAAC,cAAc,CACtB,UAAU,EAAE,EAAE,EACd,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,IAAI;CA2BR"}
1
+ {"version":3,"file":"webgl-framebuffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-framebuffer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AACnE,OAAO,EAAC,WAAW,EAAE,OAAO,EAAS,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAC5C,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,gBAAgB,EAAC,gCAA6B;AAMtD,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAEzD,iDAAiD;AACjD,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,EAAE,WAAW,CAAC;IACpB,EAAE,EAAE,sBAAsB,CAAC;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IAEzB,IAAI,OAAO,wCAEV;gBAEW,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB;IAkDxD,+CAA+C;IACtC,OAAO,IAAI,IAAI;IAUxB,mGAAmG;cAChF,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAW5E;;OAEG;cACgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA2BzE,4BAA4B;IAC5B,SAAS,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,GAAG,YAAY;IAqC/E;;;;;OAKG;IACH,SAAS,CAAC,cAAc,CACtB,UAAU,EAAE,EAAE,EACd,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,IAAI;CA2BR"}
@@ -5,7 +5,6 @@ import { Framebuffer, assert } from '@luma.gl/core';
5
5
  import { GL } from '@luma.gl/constants';
6
6
  import { WEBGLTexture } from "./webgl-texture.js";
7
7
  import { WEBGLTextureView } from "./webgl-texture-view.js";
8
- import { WEBGLRenderbuffer } from "../objects/webgl-renderbuffer.js";
9
8
  import { getDepthStencilAttachmentWebGL } from "../converters/texture-formats.js";
10
9
  /** luma.gl Framebuffer, WebGL implementation */
11
10
  export class WEBGLFramebuffer extends Framebuffer {
@@ -29,11 +28,11 @@ export class WEBGLFramebuffer extends Framebuffer {
29
28
  // Auto create textures for attachments if needed
30
29
  this.autoCreateAttachmentTextures();
31
30
  /** Attach from a map of attachments */
32
- this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
31
+ this.gl.bindFramebuffer(36160, this.handle);
33
32
  // Walk the attachments
34
33
  for (let i = 0; i < this.colorAttachments.length; ++i) {
35
34
  const attachment = this.colorAttachments[i];
36
- const attachmentPoint = GL.COLOR_ATTACHMENT0 + i;
35
+ const attachmentPoint = 36064 + i;
37
36
  if (attachment) {
38
37
  this._attachOne(attachmentPoint, attachment);
39
38
  }
@@ -44,12 +43,12 @@ export class WEBGLFramebuffer extends Framebuffer {
44
43
  /** Check the status */
45
44
  // @ts-expect-error
46
45
  if (props.check !== false) {
47
- const status = this.gl.checkFramebufferStatus(GL.FRAMEBUFFER);
48
- if (status !== GL.FRAMEBUFFER_COMPLETE) {
46
+ const status = this.gl.checkFramebufferStatus(36160);
47
+ if (status !== 36053) {
49
48
  throw new Error(`Framebuffer ${_getFrameBufferStatus(status)}`);
50
49
  }
51
50
  }
52
- this.gl.bindFramebuffer(GL.FRAMEBUFFER, null);
51
+ this.gl.bindFramebuffer(36160, null);
53
52
  }
54
53
  }
55
54
  /** destroys any auto created resources etc. */
@@ -63,13 +62,13 @@ export class WEBGLFramebuffer extends Framebuffer {
63
62
  // PRIVATE
64
63
  /** In WebGL we must use renderbuffers for depth/stencil attachments (unless we have extensions) */
65
64
  createDepthStencilTexture(format) {
66
- return new WEBGLRenderbuffer(this.device, {
67
- id: `${this.id}-depth-stencil`, // TODO misleading if not depth and stencil?
65
+ // return new WEBGLRenderbuffer(this.device, {
66
+ return new WEBGLTexture(this.device, {
67
+ id: `${this.id}-depth-stencil`,
68
68
  format,
69
- // dataFormat: GL.DEPTH_STENCIL,
70
- // type: GL.UNSIGNED_INT_24_8,
71
69
  width: this.width,
72
- height: this.height
70
+ height: this.height,
71
+ mipmaps: false
73
72
  });
74
73
  }
75
74
  /**
@@ -100,29 +99,35 @@ export class WEBGLFramebuffer extends Framebuffer {
100
99
  }
101
100
  /** Attach one attachment */
102
101
  _attachOne(attachmentPoint, attachment) {
103
- if (attachment instanceof WEBGLRenderbuffer) {
104
- this._attachWEBGLRenderbuffer(attachmentPoint, attachment);
105
- return attachment;
106
- }
107
- else if (Array.isArray(attachment)) {
102
+ // if (attachment instanceof WEBGLRenderbuffer) {
103
+ // this._attachWEBGLRenderbuffer(attachmentPoint, attachment);
104
+ // return attachment;
105
+ // }
106
+ if (Array.isArray(attachment)) {
108
107
  const [texture, layer = 0, level = 0] = attachment;
109
108
  this._attachTexture(attachmentPoint, texture, layer, level);
110
109
  return texture;
111
110
  }
112
- else if (attachment instanceof WEBGLTexture) {
111
+ if (attachment instanceof WEBGLTexture) {
113
112
  this._attachTexture(attachmentPoint, attachment, 0, 0);
114
113
  return attachment;
115
114
  }
116
- else if (attachment instanceof WEBGLTextureView) {
115
+ if (attachment instanceof WEBGLTextureView) {
117
116
  const textureView = attachment;
118
117
  this._attachTexture(attachmentPoint, textureView.texture, textureView.props.baseMipLevel, textureView.props.baseArrayLayer);
119
118
  return attachment.texture;
120
119
  }
121
120
  throw new Error('attach');
122
121
  }
123
- _attachWEBGLRenderbuffer(attachment, renderbuffer) {
124
- this.gl.framebufferRenderbuffer(GL.FRAMEBUFFER, attachment, GL.RENDERBUFFER, renderbuffer.handle);
125
- }
122
+ // TODO - we do not seem to need render buffers in WebGL 2
123
+ // protected _attachWEBGLRenderbuffer(attachment: GL, renderbuffer: WEBGLRenderbuffer): void {
124
+ // this.gl.framebufferRenderbuffer(
125
+ // GL.FRAMEBUFFER,
126
+ // attachment,
127
+ // GL.RENDERBUFFER,
128
+ // renderbuffer.handle
129
+ // );
130
+ // }
126
131
  /**
127
132
  * @param attachment
128
133
  * @param texture
@@ -133,17 +138,17 @@ export class WEBGLFramebuffer extends Framebuffer {
133
138
  const { gl } = this.device;
134
139
  gl.bindTexture(texture.target, texture.handle);
135
140
  switch (texture.target) {
136
- case GL.TEXTURE_2D_ARRAY:
137
- case GL.TEXTURE_3D:
138
- gl.framebufferTextureLayer(GL.FRAMEBUFFER, attachment, texture.target, level, layer);
141
+ case 35866:
142
+ case 32879:
143
+ gl.framebufferTextureLayer(36160, attachment, texture.target, level, layer);
139
144
  break;
140
- case GL.TEXTURE_CUBE_MAP:
145
+ case 34067:
141
146
  // layer must be a cubemap face (or if index, converted to cube map face)
142
147
  const face = mapIndexToCubeMapFace(layer);
143
- gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, face, texture.handle, level);
148
+ gl.framebufferTexture2D(36160, attachment, face, texture.handle, level);
144
149
  break;
145
- case GL.TEXTURE_2D:
146
- gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, texture.handle, level);
150
+ case 3553:
151
+ gl.framebufferTexture2D(36160, attachment, 3553, texture.handle, level);
147
152
  break;
148
153
  default:
149
154
  assert(false, 'Illegal texture type');
@@ -156,26 +161,26 @@ export class WEBGLFramebuffer extends Framebuffer {
156
161
  function mapIndexToCubeMapFace(layer) {
157
162
  // TEXTURE_CUBE_MAP_POSITIVE_X is a big value (0x8515)
158
163
  // if smaller assume layer is index, otherwise assume it is already a cube map face constant
159
- return layer < GL.TEXTURE_CUBE_MAP_POSITIVE_X
160
- ? layer + GL.TEXTURE_CUBE_MAP_POSITIVE_X
164
+ return layer < 34069
165
+ ? layer + 34069
161
166
  : layer;
162
167
  }
163
168
  // Helper METHODS
164
169
  // Get a string describing the framebuffer error if installed
165
170
  function _getFrameBufferStatus(status) {
166
171
  switch (status) {
167
- case GL.FRAMEBUFFER_COMPLETE:
172
+ case 36053:
168
173
  return 'success';
169
- case GL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
174
+ case 36054:
170
175
  return 'Mismatched attachments';
171
- case GL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
176
+ case 36055:
172
177
  return 'No attachments';
173
- case GL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:
178
+ case 36057:
174
179
  return 'Height/width mismatch';
175
- case GL.FRAMEBUFFER_UNSUPPORTED:
180
+ case 36061:
176
181
  return 'Unsupported or split attachments';
177
182
  // WebGL2
178
- case GL.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:
183
+ case 36182:
179
184
  return 'Samples mismatch';
180
185
  // OVR_multiview2 extension
181
186
  // case GL.FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: return 'baseViewIndex mismatch';
@@ -33,21 +33,21 @@ export class WEBGLQuerySet extends QuerySet {
33
33
  * GPU instruction stream.
34
34
  */
35
35
  beginTimestampQuery() {
36
- return this._begin(GL.TIME_ELAPSED_EXT);
36
+ return this._begin(35007);
37
37
  }
38
38
  endTimestampQuery() {
39
39
  this._end();
40
40
  }
41
41
  // Shortcut for occlusion queries
42
42
  beginOcclusionQuery(options) {
43
- return this._begin(options?.conservative ? GL.ANY_SAMPLES_PASSED_CONSERVATIVE : GL.ANY_SAMPLES_PASSED);
43
+ return this._begin(options?.conservative ? 36202 : 35887);
44
44
  }
45
45
  endOcclusionQuery() {
46
46
  this._end();
47
47
  }
48
48
  // Shortcut for transformFeedbackQuery
49
49
  beginTransformFeedbackQuery() {
50
- return this._begin(GL.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN);
50
+ return this._begin(35976);
51
51
  }
52
52
  endTransformFeedbackQuery() {
53
53
  this._end();
@@ -91,7 +91,7 @@ export class WEBGLQuerySet extends QuerySet {
91
91
  if (!this._queryPending) {
92
92
  return false;
93
93
  }
94
- const resultAvailable = this.device.gl.getQueryParameter(this.handle, GL.QUERY_RESULT_AVAILABLE);
94
+ const resultAvailable = this.device.gl.getQueryParameter(this.handle, 34919);
95
95
  if (resultAvailable) {
96
96
  this._queryPending = false;
97
97
  }
@@ -99,11 +99,11 @@ export class WEBGLQuerySet extends QuerySet {
99
99
  }
100
100
  // Timing query is disjoint, i.e. results are invalid
101
101
  isTimerDisjoint() {
102
- return this.device.gl.getParameter(GL.GPU_DISJOINT_EXT);
102
+ return this.device.gl.getParameter(36795);
103
103
  }
104
104
  // Returns query result.
105
105
  getResult() {
106
- return this.device.gl.getQueryParameter(this.handle, GL.QUERY_RESULT);
106
+ return this.device.gl.getQueryParameter(this.handle, 34918);
107
107
  }
108
108
  // Returns the query result, converted to milliseconds to match JavaScript conventions.
109
109
  getTimerMilliseconds() {
@@ -27,7 +27,7 @@ export class WEBGLRenderPass extends RenderPass {
27
27
  end() {
28
28
  popContextState(this.device.gl);
29
29
  if (this.props.framebuffer) {
30
- setGLParameters(this.device, { framebuffer: null });
30
+ setGLParameters(this.device.gl, { framebuffer: null });
31
31
  }
32
32
  // should add commands to CommandEncoder.
33
33
  }
@@ -50,7 +50,7 @@ export class WEBGLRenderPass extends RenderPass {
50
50
  glParameters.depthMask = !this.props.depthReadOnly;
51
51
  }
52
52
  glParameters.stencilMask = this.props.stencilReadOnly ? 0 : 1;
53
- glParameters[GL.RASTERIZER_DISCARD] = this.props.discard;
53
+ glParameters[35977] = this.props.discard;
54
54
  // Map the four renderpass parameters to WebGL parameters
55
55
  if (parameters.viewport) {
56
56
  // WebGPU viewports are 6 coordinates (X, Y, Z)
@@ -75,10 +75,10 @@ export class WEBGLRenderPass extends RenderPass {
75
75
  console.warn('RenderPassParameters.stencilReference not yet implemented in WebGL');
76
76
  // parameters.stencilFunc = [func, ref, mask];
77
77
  // Does this work?
78
- parameters[GL.STENCIL_REF] = parameters.stencilReference;
78
+ parameters[2967] = parameters.stencilReference;
79
79
  }
80
80
  this.glParameters = glParameters;
81
- setGLParameters(this.device, glParameters);
81
+ setGLParameters(this.device.gl, glParameters);
82
82
  }
83
83
  beginOcclusionQuery(queryIndex) {
84
84
  const webglQuerySet = this.props.occlusionQuerySet;
@@ -109,7 +109,7 @@ export class WEBGLRenderPass extends RenderPass {
109
109
  }
110
110
  if (clearMask !== 0) {
111
111
  // Temporarily set any clear "colors" and call clear
112
- withGLParameters(this.device, glParameters, () => {
112
+ withGLParameters(this.device.gl, glParameters, () => {
113
113
  this.device.gl.clear(clearMask);
114
114
  });
115
115
  // TODO - clear multiple color attachments
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAsC,MAAM,eAAe,CAAC;AAUlF,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAK3C,OAAO,EAAC,sBAAsB,EAAC,sCAAmC;AAKlE,oCAAoC;AACpC,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,yDAAyD;IACzD,MAAM,EAAE,WAAW,CAAC;IACpB,yCAAyC;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,oBAAoB;IACpB,EAAE,EAAE,WAAW,CAAC;IAChB,sBAAsB;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,mEAAmE;IACnE,kBAAkB,EAAE,YAAY,CAAC;IAEjC,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAM;IAC5C,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACvC,qBAAqB;IACrB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAEjC,aAAa,EAAE,MAAM,CAAK;IAC1B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAM;gBAEnC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB;IAyClD,OAAO,IAAI,IAAI;IAQxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAuDpD;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,wBAAwB;QACxB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;KAC5C,GAAG,OAAO;IAyFF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;cAkBhD,YAAY;IA2B5B,wFAAwF;IACxF,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY;IAmB9D;;;;OAIG;IACH,cAAc,IAAI,SAAS,GAAG,SAAS,GAAG,YAAY;IAmBtD,6DAA6D;IACvD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3C;;;;OAIG;IACH,sBAAsB;IAatB,iDAAiD;IACjD,cAAc;IAyFd;;;OAGG;IACH,cAAc;CASf"}
1
+ {"version":3,"file":"webgl-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAsC,MAAM,eAAe,CAAC;AAUlF,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAK3C,OAAO,EAAC,sBAAsB,EAAC,sCAAmC;AAKlE,oCAAoC;AACpC,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,yDAAyD;IACzD,MAAM,EAAE,WAAW,CAAC;IACpB,yCAAyC;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,oBAAoB;IACpB,EAAE,EAAE,WAAW,CAAC;IAChB,sBAAsB;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,mEAAmE;IACnE,kBAAkB,EAAE,YAAY,CAAC;IAEjC,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAM;IAC5C,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACvC,qBAAqB;IACrB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAEjC,aAAa,EAAE,MAAM,CAAK;IAC1B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAM;gBAEnC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB;IAyClD,OAAO,IAAI,IAAI;IAQxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAuDpD;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,wBAAwB;QACxB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;KAC5C,GAAG,OAAO;IAgGF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;cAkBhD,YAAY;IA2B5B,wFAAwF;IACxF,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY;IAmB9D;;;;OAIG;IACH,cAAc,IAAI,SAAS,GAAG,SAAS,GAAG,YAAY;IAmBtD,6DAA6D;IACvD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3C;;;;OAIG;IACH,sBAAsB;IAatB,iDAAiD;IACjD,cAAc;IAyFd;;;OAGG;IACH,cAAc;CASf"}
@@ -46,7 +46,7 @@ export class WEBGLRenderPipeline extends RenderPipeline {
46
46
  // assert(this.fs.stage === 'fragment');
47
47
  // Setup varyings if supplied
48
48
  // @ts-expect-error WebGL only
49
- const { varyings, bufferMode = GL.SEPARATE_ATTRIBS } = props;
49
+ const { varyings, bufferMode = 35981 } = props;
50
50
  if (varyings && varyings.length > 0) {
51
51
  this.varyings = varyings;
52
52
  this.device.gl.transformFeedbackVaryings(this.handle, varyings, bufferMode);
@@ -126,10 +126,6 @@ export class WEBGLRenderPipeline extends RenderPipeline {
126
126
  * This function unifies those ways into a single call using common parameters with sane defaults
127
127
  */
128
128
  draw(options) {
129
- // If we are using async linking, we need to wait until linking completes
130
- if (this.linkStatus !== 'success') {
131
- return false;
132
- }
133
129
  const { renderPass, vertexArray, vertexCount,
134
130
  // indexCount,
135
131
  instanceCount, firstVertex = 0,
@@ -141,14 +137,24 @@ export class WEBGLRenderPipeline extends RenderPipeline {
141
137
  const isIndexed = Boolean(vertexArray.indexBuffer);
142
138
  const glIndexType = vertexArray.indexBuffer?.glIndexType;
143
139
  const isInstanced = Number(instanceCount) > 0;
140
+ // If we are using async linking, we need to wait until linking completes
141
+ if (this.linkStatus !== 'success') {
142
+ log.info(2, `RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)();
143
+ return false;
144
+ }
144
145
  // Avoid WebGL draw call when not rendering any data or values are incomplete
145
146
  // Note: async textures set as uniforms might still be loading.
146
147
  // Now that all uniforms have been updated, check if any texture
147
148
  // in the uniforms is not yet initialized, then we don't draw
148
149
  if (!this._areTexturesRenderable() || vertexCount === 0) {
149
- // (isInstanced && instanceCount === 0)
150
+ log.info(2, `RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)();
150
151
  return false;
151
152
  }
153
+ // (isInstanced && instanceCount === 0)
154
+ if (vertexCount === 0) {
155
+ log.info(2, `RenderPipeline:${this.id}.draw() aborted - no vertices to draw`)();
156
+ return true;
157
+ }
152
158
  this.device.gl.useProgram(this.handle);
153
159
  // Note: Rebinds constant attributes before each draw call
154
160
  vertexArray.bindBeforeRender(renderPass);
@@ -242,13 +248,13 @@ export class WEBGLRenderPipeline extends RenderPipeline {
242
248
  */
243
249
  _getLinkStatus() {
244
250
  const { gl } = this.device;
245
- const linked = gl.getProgramParameter(this.handle, gl.LINK_STATUS);
251
+ const linked = gl.getProgramParameter(this.handle, 35714);
246
252
  if (!linked) {
247
253
  this.linkStatus = 'error';
248
254
  return 'linking';
249
255
  }
250
256
  gl.validateProgram(this.handle);
251
- const validated = gl.getProgramParameter(this.handle, gl.VALIDATE_STATUS);
257
+ const validated = gl.getProgramParameter(this.handle, 35715);
252
258
  if (!validated) {
253
259
  this.linkStatus = 'error';
254
260
  return 'validation';
@@ -267,7 +273,7 @@ export class WEBGLRenderPipeline extends RenderPipeline {
267
273
  }
268
274
  const { gl } = this.device;
269
275
  for (;;) {
270
- const complete = gl.getProgramParameter(this.handle, GL.COMPLETION_STATUS_KHR);
276
+ const complete = gl.getProgramParameter(this.handle, 37297);
271
277
  if (complete) {
272
278
  return;
273
279
  }
@@ -310,16 +316,16 @@ export class WEBGLRenderPipeline extends RenderPipeline {
310
316
  // Set buffer
311
317
  const { name } = binding;
312
318
  const location = gl.getUniformBlockIndex(this.handle, name);
313
- if (location === GL.INVALID_INDEX) {
319
+ if (location === 4294967295) {
314
320
  throw new Error(`Invalid uniform block name ${name}`);
315
321
  }
316
322
  gl.uniformBlockBinding(this.handle, uniformBufferIndex, location);
317
323
  // console.debug(binding, location);
318
324
  if (value instanceof WEBGLBuffer) {
319
- gl.bindBufferBase(GL.UNIFORM_BUFFER, uniformBufferIndex, value.handle);
325
+ gl.bindBufferBase(35345, uniformBufferIndex, value.handle);
320
326
  }
321
327
  else {
322
- gl.bindBufferRange(GL.UNIFORM_BUFFER, uniformBufferIndex,
328
+ gl.bindBufferRange(35345, uniformBufferIndex,
323
329
  // @ts-expect-error
324
330
  value.buffer.handle,
325
331
  // @ts-expect-error
@@ -350,7 +356,7 @@ export class WEBGLRenderPipeline extends RenderPipeline {
350
356
  else {
351
357
  throw new Error('No texture');
352
358
  }
353
- gl.activeTexture(GL.TEXTURE0 + textureUnit);
359
+ gl.activeTexture(33984 + textureUnit);
354
360
  gl.bindTexture(texture.target, texture.handle);
355
361
  // gl.bindSampler(textureUnit, sampler.handle);
356
362
  textureUnit += 1;
@@ -37,8 +37,8 @@ export class WEBGLSampler extends Sampler {
37
37
  // For now, pick the float version for parameters specified as GLfloat.
38
38
  const param = Number(pname);
39
39
  switch (param) {
40
- case GL.TEXTURE_MIN_LOD:
41
- case GL.TEXTURE_MAX_LOD:
40
+ case 33082:
41
+ case 33083:
42
42
  this.device.gl.samplerParameterf(this.handle, param, value);
43
43
  break;
44
44
  default:
@@ -15,10 +15,10 @@ export class WEBGLShader extends Shader {
15
15
  this.device = device;
16
16
  switch (this.props.stage) {
17
17
  case 'vertex':
18
- this.handle = this.props.handle || this.device.gl.createShader(GL.VERTEX_SHADER);
18
+ this.handle = this.props.handle || this.device.gl.createShader(35633);
19
19
  break;
20
20
  case 'fragment':
21
- this.handle = this.props.handle || this.device.gl.createShader(GL.FRAGMENT_SHADER);
21
+ this.handle = this.props.handle || this.device.gl.createShader(35632);
22
22
  break;
23
23
  default:
24
24
  throw new Error(this.props.stage);
@@ -88,7 +88,7 @@ export class WEBGLShader extends Shader {
88
88
  }
89
89
  const { gl } = this.device;
90
90
  for (;;) {
91
- const complete = gl.getShaderParameter(this.handle, GL.COMPLETION_STATUS_KHR);
91
+ const complete = gl.getShaderParameter(this.handle, 37297);
92
92
  if (complete) {
93
93
  return;
94
94
  }
@@ -101,7 +101,7 @@ export class WEBGLShader extends Shader {
101
101
  * https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings
102
102
  */
103
103
  _getCompilationStatus() {
104
- this.compilationStatus = this.device.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS)
104
+ this.compilationStatus = this.device.gl.getShaderParameter(this.handle, 35713)
105
105
  ? 'success'
106
106
  : 'error';
107
107
  }
@@ -1,4 +1,4 @@
1
- import { Device, TextureProps, Sampler, SamplerProps, TypedArray } from '@luma.gl/core';
1
+ import { Device, TextureProps, TextureViewProps, Sampler, SamplerProps, TypedArray } from '@luma.gl/core';
2
2
  import { Texture } from '@luma.gl/core';
3
3
  import { GL, GLSamplerParameters } from '@luma.gl/constants';
4
4
  import { WebGLDevice } from "../webgl-device.js";
@@ -135,6 +135,7 @@ export declare class WEBGLTexture extends Texture<WEBGLTextureProps> {
135
135
  constructor(device: Device, props: WEBGLTextureProps);
136
136
  destroy(): void;
137
137
  toString(): string;
138
+ createView(props: TextureViewProps): WEBGLTextureView;
138
139
  initialize(props?: WEBGLTextureProps): this;
139
140
  initializeCube(props?: WEBGLTextureProps): this;
140
141
  setSampler(sampler?: Sampler | SamplerProps): this;
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgl-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"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"}